Reset resource data positions
This commit is contained in:
parent
d8e73e70e6
commit
4658e911a2
|
@ -29,6 +29,7 @@ namespace de4dot.code.deobfuscators.Agile_NET.vm {
|
||||||
IBinaryReader reader;
|
IBinaryReader reader;
|
||||||
|
|
||||||
public CsvmDataReader(IBinaryReader reader) {
|
public CsvmDataReader(IBinaryReader reader) {
|
||||||
|
reader.Position = 0;
|
||||||
this.reader = reader;
|
this.reader = reader;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -128,6 +128,7 @@ namespace de4dot.code.deobfuscators.CodeVeil {
|
||||||
var data = bundleData.Data.ReadAllBytes();
|
var data = bundleData.Data.ReadAllBytes();
|
||||||
|
|
||||||
var doc = new XmlDocument();
|
var doc = new XmlDocument();
|
||||||
|
bundleXmlFile.Data.Position = 0;
|
||||||
doc.Load(XmlReader.Create(bundleXmlFile.Data.CreateStream()));
|
doc.Load(XmlReader.Create(bundleXmlFile.Data.CreateStream()));
|
||||||
var manifest = doc.DocumentElement;
|
var manifest = doc.DocumentElement;
|
||||||
if (manifest.Name.ToLowerInvariant() != "manifest") {
|
if (manifest.Name.ToLowerInvariant() != "manifest") {
|
||||||
|
|
|
@ -217,6 +217,7 @@ namespace de4dot.code.deobfuscators.CodeWall {
|
||||||
void decryptAllAssemblies() {
|
void decryptAllAssemblies() {
|
||||||
if (assemblyResource == null)
|
if (assemblyResource == null)
|
||||||
return;
|
return;
|
||||||
|
assemblyResource.Data.Position = 0;
|
||||||
var resourceSet = ResourceReader.read(resourceModule, assemblyResource.Data);
|
var resourceSet = ResourceReader.read(resourceModule, assemblyResource.Data);
|
||||||
foreach (var resourceElement in resourceSet.ResourceElements) {
|
foreach (var resourceElement in resourceSet.ResourceElements) {
|
||||||
if (resourceElement.ResourceData.Code != ResourceTypeCode.ByteArray)
|
if (resourceElement.ResourceData.Code != ResourceTypeCode.ByteArray)
|
||||||
|
|
|
@ -255,6 +255,7 @@ namespace de4dot.code.deobfuscators.CodeWall {
|
||||||
info.Magic2 = findMagic2(info.Method);
|
info.Magic2 = findMagic2(info.Method);
|
||||||
info.Magic3 = findMagic3(info.Method);
|
info.Magic3 = findMagic3(info.Method);
|
||||||
info.Reader = info.Resource.Data;
|
info.Reader = info.Resource.Data;
|
||||||
|
info.Reader.Position = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -108,6 +108,7 @@ namespace de4dot.code.deobfuscators.CryptoObfuscator {
|
||||||
return;
|
return;
|
||||||
|
|
||||||
encryptedResource = CoUtils.getResource(module, DotNetUtils.getCodeStrings(decrypterType.FindStaticConstructor()));
|
encryptedResource = CoUtils.getResource(module, DotNetUtils.getCodeStrings(decrypterType.FindStaticConstructor()));
|
||||||
|
encryptedResource.Data.Position = 0;
|
||||||
constantsData = resourceDecrypter.decrypt(encryptedResource.Data.CreateStream());
|
constantsData = resourceDecrypter.decrypt(encryptedResource.Data.CreateStream());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -75,6 +75,7 @@ namespace de4dot.code.deobfuscators.CryptoObfuscator {
|
||||||
if (resource == null)
|
if (resource == null)
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
|
resource.Data.Position = 0;
|
||||||
DeobUtils.decryptAndAddResources(module, resource.Name.String, () => resourceDecrypter.decrypt(resource.Data.CreateStream()));
|
DeobUtils.decryptAndAddResources(module, resource.Name.String, () => resourceDecrypter.decrypt(resource.Data.CreateStream()));
|
||||||
mergedIt = true;
|
mergedIt = true;
|
||||||
return resource;
|
return resource;
|
||||||
|
|
|
@ -83,6 +83,7 @@ namespace de4dot.code.deobfuscators.ILProtector {
|
||||||
if (resource == null)
|
if (resource == null)
|
||||||
continue;
|
continue;
|
||||||
var reader = resource.Data;
|
var reader = resource.Data;
|
||||||
|
reader.Position = 0;
|
||||||
if (!checkResourceV100(reader) &&
|
if (!checkResourceV100(reader) &&
|
||||||
!checkResourceV105(reader))
|
!checkResourceV105(reader))
|
||||||
continue;
|
continue;
|
||||||
|
@ -133,6 +134,7 @@ namespace de4dot.code.deobfuscators.ILProtector {
|
||||||
|
|
||||||
byte[] getMethodsData(EmbeddedResource resource) {
|
byte[] getMethodsData(EmbeddedResource resource) {
|
||||||
var reader = resource.Data;
|
var reader = resource.Data;
|
||||||
|
reader.Position = 0;
|
||||||
reader.Position = startOffset;
|
reader.Position = startOffset;
|
||||||
if ((reader.ReadInt32() & 1) != 0)
|
if ((reader.ReadInt32() & 1) != 0)
|
||||||
return decompress(reader);
|
return decompress(reader);
|
||||||
|
|
|
@ -124,6 +124,7 @@ namespace de4dot.code.renamer {
|
||||||
|
|
||||||
void rename(TypeDef type, EmbeddedResource resource) {
|
void rename(TypeDef type, EmbeddedResource resource) {
|
||||||
newNames.Clear();
|
newNames.Clear();
|
||||||
|
resource.Data.Position = 0;
|
||||||
var resourceSet = ResourceReader.read(module, resource.Data);
|
var resourceSet = ResourceReader.read(module, resource.Data);
|
||||||
var renamed = new List<RenameInfo>();
|
var renamed = new List<RenameInfo>();
|
||||||
foreach (var elem in resourceSet.ResourceElements) {
|
foreach (var elem in resourceSet.ResourceElements) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user