Reset resource data positions

This commit is contained in:
de4dot 2012-11-20 01:15:27 +01:00
parent d8e73e70e6
commit 4658e911a2
8 changed files with 9 additions and 0 deletions

View File

@ -29,6 +29,7 @@ namespace de4dot.code.deobfuscators.Agile_NET.vm {
IBinaryReader reader;
public CsvmDataReader(IBinaryReader reader) {
reader.Position = 0;
this.reader = reader;
}

View File

@ -128,6 +128,7 @@ namespace de4dot.code.deobfuscators.CodeVeil {
var data = bundleData.Data.ReadAllBytes();
var doc = new XmlDocument();
bundleXmlFile.Data.Position = 0;
doc.Load(XmlReader.Create(bundleXmlFile.Data.CreateStream()));
var manifest = doc.DocumentElement;
if (manifest.Name.ToLowerInvariant() != "manifest") {

View File

@ -217,6 +217,7 @@ namespace de4dot.code.deobfuscators.CodeWall {
void decryptAllAssemblies() {
if (assemblyResource == null)
return;
assemblyResource.Data.Position = 0;
var resourceSet = ResourceReader.read(resourceModule, assemblyResource.Data);
foreach (var resourceElement in resourceSet.ResourceElements) {
if (resourceElement.ResourceData.Code != ResourceTypeCode.ByteArray)

View File

@ -255,6 +255,7 @@ namespace de4dot.code.deobfuscators.CodeWall {
info.Magic2 = findMagic2(info.Method);
info.Magic3 = findMagic3(info.Method);
info.Reader = info.Resource.Data;
info.Reader.Position = 0;
}
}

View File

@ -108,6 +108,7 @@ namespace de4dot.code.deobfuscators.CryptoObfuscator {
return;
encryptedResource = CoUtils.getResource(module, DotNetUtils.getCodeStrings(decrypterType.FindStaticConstructor()));
encryptedResource.Data.Position = 0;
constantsData = resourceDecrypter.decrypt(encryptedResource.Data.CreateStream());
}

View File

@ -75,6 +75,7 @@ namespace de4dot.code.deobfuscators.CryptoObfuscator {
if (resource == null)
return null;
resource.Data.Position = 0;
DeobUtils.decryptAndAddResources(module, resource.Name.String, () => resourceDecrypter.decrypt(resource.Data.CreateStream()));
mergedIt = true;
return resource;

View File

@ -83,6 +83,7 @@ namespace de4dot.code.deobfuscators.ILProtector {
if (resource == null)
continue;
var reader = resource.Data;
reader.Position = 0;
if (!checkResourceV100(reader) &&
!checkResourceV105(reader))
continue;
@ -133,6 +134,7 @@ namespace de4dot.code.deobfuscators.ILProtector {
byte[] getMethodsData(EmbeddedResource resource) {
var reader = resource.Data;
reader.Position = 0;
reader.Position = startOffset;
if ((reader.ReadInt32() & 1) != 0)
return decompress(reader);

View File

@ -124,6 +124,7 @@ namespace de4dot.code.renamer {
void rename(TypeDef type, EmbeddedResource resource) {
newNames.Clear();
resource.Data.Position = 0;
var resourceSet = ResourceReader.read(module, resource.Data);
var renamed = new List<RenameInfo>();
foreach (var elem in resourceSet.ResourceElements) {