/// <summary> /// 案件文件被移除时,移除案件文件节点; /// </summary> /// <param name="evidence"></param> private void OnCaseEvidenceRemoved(ICaseEvidence evidence) { var treeService = MainTreeService.Current; if (treeService == null) { LoggerService.WriteCallerLine($"{nameof(treeService)} can't be null."); return; } var caseUnit = treeService.CurrentUnits.FirstOrDefault(); if (caseUnit == null) { LoggerService.WriteCallerLine($"{nameof(caseUnit)} can't be null."); return; } var evidenceUnit = caseUnit.Children.FirstOrDefault(p => p.TypeGuid == Contracts.Casing.Constants.TreeUnitType_CaseEvidence && p.GetInstance <ICaseEvidence>(Contracts.Casing.Constants.TreeUnitTag_CaseEvidence) == evidence); if (evidenceUnit == null) { LoggerService.WriteCallerLine($"{nameof(evidenceUnit)} can't be null."); return; } treeService.RemoveUnit(evidenceUnit); }
public void TestLoadCaseWithEvidences() { LoadCase(); _csEvidence = _csService.CurrentCase.CaseEvidences.FirstOrDefault(); Assert.IsNotNull(_csEvidence); AssertEvidenceMatched(); }
public static ICaseEvidence Show(ICaseEvidence caseFile) { var window = new ShowCaseFilePropertyWindow(caseFile); var res = window.ShowDialog(); if (res == true) { return(caseFile); //return window.CFile; } return(default(ICaseEvidence)); }
/// <summary> /// 获得案件文件相关节点; /// </summary> /// <typeparam name="TCaseFile">案件文件类型</typeparam> /// <param name="cFile">案件文件</param> /// <returns></returns> public ITreeUnit GetCaseFileUnit(ICaseEvidence cFile) { if (MainTreeService.Current == null) { return(null); } foreach (var theUnit in MainTreeService.Current.CurrentUnits) { //if (theUnit is CaseEvidenceUnit<TCaseFile> csUnit && csUnit.Evidence == cFile) { // return csUnit; //} } return(null); }
/// <summary> /// 在节点中加入证据项节点; /// </summary> /// <param name="evidence"></param> private void LoadEvidenceUnitToTree(ICaseEvidence evidence) { var treeService = MainTreeService.Current; if (treeService == null) { LoggerService.WriteCallerLine($"{nameof(treeService)} can't be null."); return; } var unit = TreeUnitFactory.CreateNew(Contracts.Casing.Constants.TreeUnitType_CaseEvidence); unit.Label = evidence.Name; unit.SetInstance(evidence, Contracts.Casing.Constants.TreeUnitTag_CaseEvidence); treeService.AddUnit(treeService.CurrentUnits.FirstOrDefault(), unit); }
/// <summary> /// 添加取证信息节点; /// </summary> /// <param name="cFile"></param> public void AddForensicUnit(ICaseEvidence cFile) { ITreeUnit fUnit = null; var caseService = ServiceProvider.Current.GetInstance <ICaseService>(); if (caseService == null) { LoggerService.Current?.WriteCallerLine($"{nameof(caseService)} can't be null!"); } ThreadInvoker.UIInvoke(() => { var tUnit = GetCaseFileUnit(cFile); if (tUnit != null) { fUnit = TreeUnitFactory.Current.CreateNew(Constants.ForensicInfoUnit); fUnit.Label = FindResourceString("ForensicInfo"); tUnit.Children.Add(fUnit); } }); }
/// <summary> /// 所移除证据项若为本地文件夹,则响应卸载处理; /// </summary> /// <param name="csEvidence"></param> private void OnCaseEvidenceRemoved(ICaseEvidence csEvidence) { if (csEvidence == null) { return; } if (!(csEvidence.EvidenceTypeGuids?.Contains(Constants.EvidenceType_LocalDir) ?? false)) { return; } //文件系统卸载文件; var units = FileSystemService.Current.MountedUnits.Where(p => p.GUID == csEvidence.EvidenceGUID).ToArray(); foreach (var unit in units) { FileSystemService.Current.UnMountFile(unit); } }
/// <summary> /// 得到取证信息节点; /// </summary> /// <param name="csFile"></param> /// <returns></returns> public ITreeUnit GetForensicInfoUnit(ICaseEvidence csFile) { var caseService = ServiceProvider.Current.GetInstance <ICaseService>(); if (caseService != null) { try { var csUnit = GetCaseFileUnit(csFile); //if (csUnit != null) { // if (csUnit.Evidence == csFile) { // return csUnit.Children.FirstOrDefault(p => // p is PinTreeUnit obUnit && obUnit.ContentId == CommonPinKindsDefinitions.ForensicInfo) as PinTreeUnit; // } //} } catch (Exception ex) { LoggerService.Current?.WriteCallerLine(ex.Message); } } return(null); }
public void ShowCaseFileProperty(ICaseEvidence csFile) { throw new NotImplementedException(); }
public ImgMountUnit(IImgMounter imgMounter, ICaseEvidence caseEvidence) { this.ImgMounter = imgMounter ?? throw new ArgumentNullException(nameof(imgMounter)); this.CaseEvidence = caseEvidence ?? throw new ArgumentNullException(nameof(caseEvidence)); }
public ShowCaseFilePropertyWindow(ICaseEvidence cFile) { InitializeComponent(); this.CFile = cFile ?? throw new ArgumentNullException(); var comma = ServiceProvider.Current?.GetInstance <ILanguageService>()?.FindResourceString("Comma"); var newLine = Environment.NewLine; //添加日期; DateAddedTxb.Text = $"{cFile.DateAdded.ToWDTimeString()}"; //报告相关; ReportTxb.Text = $"0"; ObjectTitleTxb.Text = CFile.Name; CmtTxb.Text = CFile.Comments; //if (CFile is Singularity.Interfaces.IHaveData<IFile> fCFile ) { // //大小; // SizeTxb.Text = $"{ByteSizeToSizeConverter.StaticInstance.Convert(fCFile.Data.Size)}"; // DesTxb.Text += $"{FindResourceString("TotalCapacity")}{comma}{fCFile.Data.Size}{FindResourceString("Byte")}" + // "=" + $"{ByteSizeToSizeConverter.StaticInstance.Convert(fCFile.Data.Size)}{Environment.NewLine}"; // if(fCFile.Data is Device device) { // DesTxb.Text += $"{FindResourceString("BytesPerSector")}{comma}{device.SecSize}" + newLine; // DesTxb.Text += $"{FindResourceString("SectorCount")}{comma}{device.Size / device.SecSize}" + newLine; // DesTxb.Text += $"{FindResourceString("PartitioningStyle")}{comma}{device.PartsType}{Environment.NewLine}"; // device.Children.ForEach(p => { // var part = p as Partition; // DesTxb.Text += $"{Environment.NewLine}{part.Name}{Environment.NewLine}"; // DesTxb.Text += $"{FindResourceString("Sectors")}{part.StartLBA / device.SecSize}-{part.EndLBA / device.SecSize}{Environment.NewLine}"; // }); // } // else if(fCFile.Data is Partition part) { // DesTxb.Text += $"{FindResourceString("FileSystem")}{comma}{part.FSType}" + newLine; // //DesTxb.Text += $"{FindResourceString("TotalCapacity")}{comma}{part.Size}" + newLine; // if (part is AndroidPartition) { // var adPart = part as AndroidPartition; // DesTxb.Text += $"{FindResourceString("SectorSize")}{comma}{adPart.SectorSize}" + newLine; // DesTxb.Text += $"{FindResourceString("ClusterSize")}{comma}{adPart.ClusterSize}" + newLine; // DesTxb.Text += $"{FindResourceString("BlockSize")}{comma}{adPart.BlockSize}" + newLine; // DesTxb.Text += $"{FindResourceString("FreeClusters")}{comma}{adPart.FreeBlockCount} = {adPart.FreeBlockCount * 100 / adPart.BlockCount} %{FindResourceString("Free")}" + newLine; // DesTxb.Text += $"{FindResourceString("ClusterCount")}{comma}{adPart.BlockCount}" + newLine; // DesTxb.Text += $"{FindResourceString("INodeCount")}{comma}{adPart.INodeCount}" + newLine; // DesTxb.Text += $"{FindResourceString("FreeINodeCount")}{comma}{adPart.FreeInodeCount}" + newLine; // DesTxb.Text += $"{FindResourceString("BlockPergroup")}{comma}{adPart.BlockPergroup}" + newLine; // DesTxb.Text += $"{FindResourceString("INodePergroup")}{comma}{adPart.InodePerGroup}" + newLine; // DesTxb.Text += $"{FindResourceString("INodeSize")}{comma}{adPart.INodeSize}" + newLine; // DesTxb.Text += $"{FindResourceString("LastMountTime")}{comma}{adPart.LastMountTime.ToWDTimeString()}" + newLine; // DesTxb.Text += $"{FindResourceString("LastWriteTime")}{comma}{adPart.LastWriteTime.ToWDTimeString()}"; // } // } //} InterDTxb.Text = cFile.InterLabel; }
public void ShowCaseEvidenceProperty(ICaseEvidence evidence) { ShowCaseFilePropertyMessageBox.Show(evidence); }
//证据项被加载完成时发生; private void OnEvidenceLoaded(ICaseEvidence evidence) { LoadEvidenceUnitToTree(evidence); }