From 01179242a7b2a57acbc21a6f078db5c5f04b938e Mon Sep 17 00:00:00 2001 From: de4dot Date: Fri, 23 May 2014 16:19:25 +0200 Subject: [PATCH] DotNetFile prop was removed from dnlib, update code --- .../Agile_NET/MethodsDecrypter.cs | 2 +- .../CodeVeil/MethodsDecrypter.cs | 2 +- .../CodeWall/MethodsDecrypter.cs | 2 +- .../MaxtoCode/MethodsDecrypter.cs | 4 +-- de4dot.code/deobfuscators/MyPEImage.cs | 26 +++++++++---------- .../dotNET_Reactor/v4/MethodsDecrypter.cs | 2 +- 6 files changed, 19 insertions(+), 19 deletions(-) diff --git a/de4dot.code/deobfuscators/Agile_NET/MethodsDecrypter.cs b/de4dot.code/deobfuscators/Agile_NET/MethodsDecrypter.cs index 3f0891e0..b07b3a8a 100644 --- a/de4dot.code/deobfuscators/Agile_NET/MethodsDecrypter.cs +++ b/de4dot.code/deobfuscators/Agile_NET/MethodsDecrypter.cs @@ -504,7 +504,7 @@ namespace de4dot.code.deobfuscators.Agile_NET { if (sigType == SigType.Unknown) return DecryptResult.NotEncrypted; - var methodDefTable = peImage.DotNetFile.MetaData.TablesStream.MethodTable; + var methodDefTable = peImage.MetaData.TablesStream.MethodTable; foreach (var version in GetCsHeaderVersions(codeHeaderOffset, methodDefTable)) { try { diff --git a/de4dot.code/deobfuscators/CodeVeil/MethodsDecrypter.cs b/de4dot.code/deobfuscators/CodeVeil/MethodsDecrypter.cs index 8beefbfd..a1590666 100644 --- a/de4dot.code/deobfuscators/CodeVeil/MethodsDecrypter.cs +++ b/de4dot.code/deobfuscators/CodeVeil/MethodsDecrypter.cs @@ -148,7 +148,7 @@ namespace de4dot.code.deobfuscators.CodeVeil { var methodsDataReader = MemoryImageStream.Create(methodsData); var fileDataReader = MemoryImageStream.Create(fileData); - var methodDef = peImage.DotNetFile.MetaData.TablesStream.MethodTable; + var methodDef = peImage.MetaData.TablesStream.MethodTable; for (uint rid = 1; rid <= methodDef.Rows; rid++) { var dm = new DumpedMethod(); diff --git a/de4dot.code/deobfuscators/CodeWall/MethodsDecrypter.cs b/de4dot.code/deobfuscators/CodeWall/MethodsDecrypter.cs index 1658b307..8c8b4333 100644 --- a/de4dot.code/deobfuscators/CodeWall/MethodsDecrypter.cs +++ b/de4dot.code/deobfuscators/CodeWall/MethodsDecrypter.cs @@ -71,7 +71,7 @@ namespace de4dot.code.deobfuscators.CodeWall { bool decrypted = false; - var methodDef = peImage.DotNetFile.MetaData.TablesStream.MethodTable; + var methodDef = peImage.MetaData.TablesStream.MethodTable; for (uint rid = 1; rid <= methodDef.Rows; rid++) { var dm = new DumpedMethod(); peImage.ReadMethodTableRowTo(dm, rid); diff --git a/de4dot.code/deobfuscators/MaxtoCode/MethodsDecrypter.cs b/de4dot.code/deobfuscators/MaxtoCode/MethodsDecrypter.cs index a3eedb04..6730b747 100644 --- a/de4dot.code/deobfuscators/MaxtoCode/MethodsDecrypter.cs +++ b/de4dot.code/deobfuscators/MaxtoCode/MethodsDecrypter.cs @@ -857,7 +857,7 @@ namespace de4dot.code.deobfuscators.MaxtoCode { var methodInfos = new MethodInfos(module, decrypterInfo.mainType, peImage, decrypterInfo.peHeader, decrypterInfo.mcKey); methodInfos.InitializeInfos(); - var methodDef = peImage.DotNetFile.MetaData.TablesStream.MethodTable; + var methodDef = peImage.MetaData.TablesStream.MethodTable; for (uint rid = 1; rid <= methodDef.Rows; rid++) { var dm = new DumpedMethod(); peImage.ReadMethodTableRowTo(dm, rid); @@ -916,7 +916,7 @@ namespace de4dot.code.deobfuscators.MaxtoCode { uint usHeapSize = peHeader.ReadUInt32(0x0E04) ^ mcKey.ReadUInt32(0x0082); if (usHeapRva == 0 || usHeapSize == 0) return; - var usHeap = peImage.DotNetFile.MetaData.USStream; + var usHeap = peImage.MetaData.USStream; if (usHeap.StartOffset == 0 || // Start offset is 0 if it's not present in the file peImage.RvaToOffset(usHeapRva) != (uint)usHeap.StartOffset || usHeapSize != (uint)(usHeap.EndOffset - usHeap.StartOffset)) { diff --git a/de4dot.code/deobfuscators/MyPEImage.cs b/de4dot.code/deobfuscators/MyPEImage.cs index a3661cea..a7b909b6 100644 --- a/de4dot.code/deobfuscators/MyPEImage.cs +++ b/de4dot.code/deobfuscators/MyPEImage.cs @@ -10,28 +10,28 @@ namespace de4dot.code.deobfuscators { IPEImage peImage; byte[] peImageData; IImageStream peStream; - DotNetFile dnFile; + IMetaData metaData; bool dnFileInitialized; ImageSectionHeader dotNetSection; bool ownPeImage; - public DotNetFile DotNetFile { + public IMetaData MetaData { get { if (dnFileInitialized) - return dnFile; + return metaData; dnFileInitialized = true; var dotNetDir = peImage.ImageNTHeaders.OptionalHeader.DataDirectories[14]; if (dotNetDir.VirtualAddress != 0 && dotNetDir.Size >= 0x48) { - dnFile = DotNetFile.Load(peImage, false); + metaData = MetaDataCreator.CreateMetaData(peImage, false); dotNetSection = FindSection(dotNetDir.VirtualAddress); } - return dnFile; + return metaData; } } public ImageCor20Header Cor20Header { - get { return DotNetFile.MetaData.ImageCor20Header; } + get { return MetaData.ImageCor20Header; } } public IBinaryReader Reader { @@ -91,7 +91,7 @@ namespace de4dot.code.deobfuscators { public void ReadMethodTableRowTo(DumpedMethod dm, uint rid) { dm.token = 0x06000000 + rid; - var row = DotNetFile.MetaData.TablesStream.ReadMethodRow(rid); + var row = MetaData.TablesStream.ReadMethodRow(rid); if (row == null) throw new ArgumentException("Invalid Method rid"); dm.mdRVA = row.RVA; @@ -186,14 +186,14 @@ namespace de4dot.code.deobfuscators { } public bool DotNetSafeWriteOffset(uint offset, byte[] data) { - if (DotNetFile != null) { + if (MetaData != null) { uint length = (uint)data.Length; if (!IsInside(dotNetSection, offset, length)) return false; - if (Intersect(offset, length, DotNetFile.MetaData.ImageCor20Header)) + if (Intersect(offset, length, MetaData.ImageCor20Header)) return false; - if (Intersect(offset, length, DotNetFile.MetaData.MetaDataHeader)) + if (Intersect(offset, length, MetaData.MetaDataHeader)) return false; } @@ -207,15 +207,15 @@ namespace de4dot.code.deobfuscators { public void Dispose() { if (ownPeImage) { - if (dnFile != null) - dnFile.Dispose(); + if (metaData != null) + metaData.Dispose(); if (peImage != null) peImage.Dispose(); } if (peStream != null) peStream.Dispose(); - dnFile = null; + metaData = null; peImage = null; peStream = null; } diff --git a/de4dot.code/deobfuscators/dotNET_Reactor/v4/MethodsDecrypter.cs b/de4dot.code/deobfuscators/dotNET_Reactor/v4/MethodsDecrypter.cs index b0801aa3..00d6dde3 100644 --- a/de4dot.code/deobfuscators/dotNET_Reactor/v4/MethodsDecrypter.cs +++ b/de4dot.code/deobfuscators/dotNET_Reactor/v4/MethodsDecrypter.cs @@ -185,7 +185,7 @@ namespace de4dot.code.deobfuscators.dotNET_Reactor.v4 { else { // DNR 4.0+ (jitter is hooked) - var methodDef = peImage.DotNetFile.MetaData.TablesStream.MethodTable; + var methodDef = peImage.MetaData.TablesStream.MethodTable; var rvaToIndex = new Dictionary((int)methodDef.Rows); uint offset = (uint)methodDef.StartOffset; for (int i = 0; i < methodDef.Rows; i++) {