吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3625|回复: 18
收起左侧

[新手问题] NET 测试估计dnSpy遇到检测

[复制链接]
XXTK 发表于 2019-9-7 16:29
感觉正版没有检测可以动态调试,测试版却尴尬了有兴趣的朋友可以玩玩,方便的话谈谈看法
链接: https://pan.baidu.com/s/19SWgIcTGHAbl_hfSHaPjIA 提取码: hyqd 3366.PNG

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| XXTK 发表于 2019-9-9 10:16
UserXCH 发表于 2019-9-8 13:37
[md]
在wwh1004的`JitUnpackerFramework`上稍作修改应该就可以了。
一个地方就是加载程序集的时候要创 ...

估计是卡在这点了,折腾两天,技术无法超越
[Asm] 纯文本查看 复制代码
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-14 20:03
本帖最后由 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)
 楼主| XXTK 发表于 2019-9-8 13:09
@UserXCH  跟你请教一是怎么回事,加密后win7可以运行,dnSpy调试却不行
 楼主| XXTK 发表于 2019-9-8 13:33
UserXCH 发表于 2019-9-8 13:14
[md]
首先我可以肯定的是:用dnSpy看不到代码。(你确定要调试?)

的确附加是可以的,(昨天试了一下)就搞不清楚怎么在dnSpy不能运行,本来想断点试一试,感觉机会也渺茫,请教一下可以从哪里入手
 楼主| XXTK 发表于 2019-9-14 20:08
UserXCH 发表于 2019-9-13 22:14

Assembly.LoadFile处是会出问题的。这样应该会提示:Cannot find managed image.


把MDToken的一个值换成Method,再把Invoke(null, null)删掉可以跑起来,但没有效果
 楼主| XXTK 发表于 2019-9-15 09:30
UserXCH 发表于 2019-9-14 21:59
[md]额😓,你这是什么操作……
那个Invoke,是调用`.cctor()`的,不加载运行时怎么行。
说实话 ...

可以改变Token,当然真正问题出在哪里的确不清楚
QQ图片20190915092447.png
 楼主| XXTK 发表于 2019-9-15 12:43
UserXCH 发表于 2019-9-15 10:41
[md]你为什么要改😣。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 15:38
本帖最后由 XXTK 于 2019-9-15 16:32 编辑

UserXCH 发表于 2019-9-15 14:40
[md]怕……不是这样的。以我拙劣的想象力,从来不会想到一起去,你是怎么把它混到一起的。
发给我对你没 ...


重新回答
真是把老师给绕到了,非常感谢你的细致回答,其实搞了几天基本明白“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
 楼主| XXTK 发表于 2019-9-22 10:46
UserXCH 发表于 2019-9-22 00:33

其实问题很早已经回答过了。无法加载静态构造函数。原因是MaxtoCode需要新进程。


尴尬,冒昧的问一下,是不是MaxtoCode的运行库的进程
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 16:36

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表