Beispiel #1
0
 protected override void ScanForObfuscator()
 {
     staticStringInliner.UseUnknownArgs = true;
     arrayBlockState = new ArrayBlockState(module);
     arrayBlockState.Initialize(DeobfuscatedFile);
     stringDecrypter = new StringDecrypter(module);
     stringDecrypter.Find(DeobfuscatedFile);
     resourceResolver = new ResourceResolver(module, DeobfuscatedFile, this);
     resourceResolver.Find();
     assemblyResolver = new AssemblyResolver(module, DeobfuscatedFile, this);
     assemblyResolver.Find();
     obfuscatorName = DetectVersion();
 }
Beispiel #2
0
		protected override void ScanForObfuscator() {
			staticStringInliner.UseUnknownArgs = true;
			arrayBlockState = new ArrayBlockState(module);
			arrayBlockState.Initialize(DeobfuscatedFile);
			stringDecrypter = new StringDecrypter(module);
			stringDecrypter.Find(DeobfuscatedFile);
			resourceResolver = new ResourceResolver(module, DeobfuscatedFile, this);
			resourceResolver.Find();
			assemblyResolver = new AssemblyResolver(module, DeobfuscatedFile, this);
			assemblyResolver.Find();
			obfuscatorName = DetectVersion();
		}
 public ArrayBlockDeobfuscator(ArrayBlockState arrayBlockState)
 {
     this.arrayBlockState = arrayBlockState;
 }
        static bool IsLdelem(ArrayBlockState.FieldInfo info, Code code)
        {
            switch (info.elementType) {
            case ElementType.Boolean:
            case ElementType.I1:
            case ElementType.U1:
                return code == Code.Ldelem_I1 || code == Code.Ldelem_U1;

            case ElementType.Char:
            case ElementType.I2:
            case ElementType.U2:
                return code == Code.Ldelem_I2 || code == Code.Ldelem_U2;

            case ElementType.I4:
            case ElementType.U4:
                return code == Code.Ldelem_I4 || code == Code.Ldelem_U4;

            default:
                return false;
            }
        }
 public ArrayBlockDeobfuscator(ArrayBlockState arrayBlockState)
 {
     this.arrayBlockState = arrayBlockState;
 }