Beispiel #1
0
        void initDecrypters()
        {
            assemblyResolverInfo = new AssemblyResolverInfo(module, DeobfuscatedFile, this);
            assemblyResolverInfo.findTypes();
            resourceDecrypterInfo = new ResourceDecrypterInfo(module, assemblyResolverInfo.SimpleZipType, DeobfuscatedFile);
            resourceResolverInfo = new ResourceResolverInfo(module, DeobfuscatedFile, this, assemblyResolverInfo);
            resourceResolverInfo.findTypes();
            resourceDecrypter = new ResourceDecrypter(resourceDecrypterInfo);
            assemblyResolver = new AssemblyResolver(resourceDecrypter, assemblyResolverInfo);
            resourceResolver = new ResourceResolver(module, assemblyResolver, resourceResolverInfo);

            initStringDecrypterInfos();
            assemblyResolverInfo.findTypes();
            resourceResolverInfo.findTypes();

            addModuleCctorInitCallToBeRemoved(assemblyResolverInfo.CallResolverMethod);
            addModuleCctorInitCallToBeRemoved(resourceResolverInfo.CallResolverMethod);

            resourceDecrypterInfo.setSimpleZipType(getGlobalSimpleZipType(), DeobfuscatedFile);

            if (!decryptResources())
                throw new ApplicationException("Could not decrypt resources");

            dumpEmbeddedAssemblies();
        }
Beispiel #2
0
 public AssemblyResolver(ResourceDecrypter resourceDecrypter, AssemblyResolverInfo assemblyResolverInfo)
 {
     this.resourceDecrypter = resourceDecrypter;
     this.assemblyResolverInfo = assemblyResolverInfo;
 }
Beispiel #3
0
 byte[] decryptResource(AssemblyResolverInfo.EmbeddedAssemblyInfo info)
 {
     if (info.isCompressed)
         return resourceDecrypter.decrypt(info.resource);
     else
         return info.resource.GetResourceData();
 }
Beispiel #4
0
 public ResourceResolverInfo(ModuleDefinition module, ISimpleDeobfuscator simpleDeobfuscator, IDeobfuscator deob, AssemblyResolverInfo assemblyResolverInfo)
     : base(module, simpleDeobfuscator, deob)
 {
     this.assemblyResolverInfo = assemblyResolverInfo;
 }