NET 测试估计dnSpy遇到检测
感觉正版没有检测可以动态调试,测试版却尴尬了{:301_971:}有兴趣的朋友可以玩玩,方便的话谈谈看法链接: https://pan.baidu.com/s/19SWgIcTGHAbl_hfSHaPjIA 提取码: hyqd
UserXCH 发表于 2019-9-8 13:37
在wwh1004的`JitUnpackerFramework`上稍作修改应该就可以了。
一个地方就是加载程序集的时候要创 ...
估计是卡在这点了,折腾两天,技术无法超越{:301_981:}24 public void Execute(JitUnpackerSettings settings) {
25 Module module;
26 void* moduleHandle;
27 ModuleDefMD moduleDef;
28 void*[] methodHandles;
29
30 PrepareAllMethods();
31 // 防止陷入编译死循环
32 module = Assembly.LoadFile(settings.AssemblyPath).ManifestModule;
33 if (RuntimeEnvironment.IsClr4x)
34 moduleHandle = (void*)(IntPtr)module.GetType().GetField("m_pData", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(module);
35 else
36 moduleHandle = (void*)(IntPtr)typeof(ModuleHandle).GetField("m_ptr", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(module.ModuleHandle);
37 moduleDef = ModuleDefMD.Load(settings.AssemblyPath);
38 methodHandles = LoadMethodHandles(module, moduleDef);
39 _unpacker = LoadedUnpackerDetectors.Detect(moduleDef).CreateUnpacker(new UnpackerContext(module, moduleDef, moduleHandle, methodHandles, settings));
40 Logger.Instance.LogInfo($"Detected {_unpacker.Name} Obfuscator ({Path.GetFullPath(settings.AssemblyPath)})");
41 Console.CursorVisible = false;
42 ExecuteImpl();
43 Console.CursorVisible = true;
44 SaveAs(PathInsertPostfix(settings.AssemblyPath, ".jupk"));
45 _unpacker.Context.ModuleDef.Dispose();
46 _unpacker.Context.DumpedModuleDef.Dispose();
47 Logger.Instance.LogInfo("Finished");
48 Logger.Instance.LogNewLine();
49 }
本帖最后由 XXTK 于 2019-9-15 07:46 编辑
UserXCH 发表于 2019-9-13 22:14
`Assembly.LoadFile`处是会出问题的。这样应该会提示:Cannot find managed image.
这个问题2.0的能脱,4.5就那样了无解,我有个程序双层壳的MaxToCode Dotfuscator,卡在这里跟你请教有没有办法
未处理的异常:System.Reflection.TargetInvocationException: 调用的目标发生了异常
。 ---> System.Reflection.TargetException: 对象与目标类型不匹配。
在 System.Reflection.RuntimeConstructorInfo.CheckConsistency(Object target)
在 System.Reflection.RuntimeConstructorInfo.Invoke(Object obj, BindingFlags i
nvokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
在 System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
在 JitTools.JitUnpacker.ExecuteImpl() 位置 F:\Users\126\Deskt
op\JitUnpacker-Framework-master\JitUnpacker\JitUnpacker.cs:行号 74
在 JitTools.JitUnpacker.Execute(JitUnpackerSettings settings) 位置 F:\Users\126\Desktop\JitUnpacker-Framework-master\JitUnpacker\JitUnpacker.
cs:行号 42
--- 内部异常堆栈跟踪的结尾 ---
在 System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] argum
ents, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle
typeOwner)
在 System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] argume
nts, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwn
er)
在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invoke
Attr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisib
ilityChecks)
在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invoke
Attr, Binder binder, Object[] parameters, CultureInfo culture)
在 System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
在 Tool.Loader.Loader.Execute(String[] args)
在 Tool.Loader.CLR20.x86.Program.Main(String[] args)
@UserXCH跟你请教一是怎么回事,加密后win7可以运行,dnSpy调试却不行 UserXCH 发表于 2019-9-8 13:14
首先我可以肯定的是:用dnSpy看不到代码。(你确定要调试?)
的确附加是可以的,(昨天试了一下)就搞不清楚怎么在dnSpy不能运行,本来想断点试一试,感觉机会也渺茫,请教一下可以从哪里入手 UserXCH 发表于 2019-9-13 22:14
`Assembly.LoadFile`处是会出问题的。这样应该会提示:Cannot find managed image.
把MDToken的一个值换成Method,再把Invoke(null, null)删掉可以跑起来,但没有效果 UserXCH 发表于 2019-9-14 21:59
额😓,你这是什么操作……
那个Invoke,是调用`.cctor()`的,不加载运行时怎么行。
说实话 ...
可以改变Token,当然真正问题出在哪里的确不清楚 UserXCH 发表于 2019-9-15 10:41
你为什么要改😣。ResolveMethod这个Token是模块静态构造函数的Token。
能说说你的理解吗?我 ...
我把它理解成了de4dot里MaxtoCode里面的MagicLo = 0x9A683B87 MagicHi = 0x928ECDA3 MagicLo = 0x1A731B13 MagicHi = 0x1723891F
今天分析证明dnlib.dll里MDToken不止一个可以自动切换,发个给你,有时间看看,测试版的没有多大意义,研究一下壳双层壳的MaxToCode Dotfuscator链接: https://pan.baidu.com/s/11uxr49sHoEGxPs2Qa4oAtw 提取码: mzvx
本帖最后由 XXTK 于 2019-9-15 16:32 编辑
UserXCH 发表于 2019-9-15 14:40
怕……不是这样的。以我拙劣的想象力,从来不会想到一起去,你是怎么把它混到一起的。
发给我对你没 ...
重新回答:lol
真是把老师给绕到了,{:1_921:}非常感谢你的细致回答,其实搞了几天基本明白“dnSpy在方法、类、字段等等上面的类似RID=XX Token=0x0XXXXXXX这种”
直接问一下这两处出问题是什么原因造成,
JitUnpacker的Framework版本:3.5
加密样本的Framework版本:2.0
Execute函数的代码:原版未改
提示的错误信息:信息如下
位置 F:\Users\126\Deskt
op\JitUnpacker-Framework-master\JitUnpacker\JitUnpacker.cs:行号 74
位置 F:\Users\126\Desktop\JitUnpacker-Framework-master\JitUnpacker\JitUnpacker.
cs:行号 42 UserXCH 发表于 2019-9-22 00:33
其实问题很早已经回答过了。无法加载静态构造函数。原因是MaxtoCode需要新进程。
尴尬,冒昧的问一下,是不是MaxtoCode的运行库的进程:lol
页:
[1]
2