首页
社区
课程
招聘
[求助].net程序用maxtocode混淆后能不能打内存补丁?
发表于: 2009-5-4 10:25 9975

[求助].net程序用maxtocode混淆后能不能打内存补丁?

2009-5-4 10:25
9975
一个.net程序用OD调试了几天(近一周)终于找到关键代码,可以爆破了。但是.net程序被混淆了,无法直接查找修改IL,解密出来的代码地址是动态的,能否用dup或inlineloader或keymaker做个loader,通过搜索解密后的代码打内存补丁?

另用maxtocode混淆后的程序用PEBrowseDBG调试时下的断点都不起作用?

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (16)
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
PEBrowseDBG 调试不稳定,试试 RE-Max
2009-5-4 11:14
0
雪    币: 234
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
要能修改IL代码,还是需要脱壳才可以.
2009-5-4 17:35
0
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
楼主已经说明了,是有壳的,无法直接查找修改IL,请楼主将文件上传上来看看,谢谢
2009-5-4 21:18
0
雪    币: 280
活跃值: (281)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
5
程序太大,5M多,不好传。实际是不是maxtocede加壳我也没有把握,只是在反编译时看到程序很多method无法正确反出来,长度为0,有这个词。所以我觉得是它加的壳。程序本身加密很简单,就是这个壳没办法搞定,也没有什么思路打内存补丁。
感觉程序运行时有个壳解密原程序的地方,并且不是一次解完,但是程序的每次新过程都会在这里解密,然后在另一处call [eax+***]解密后的代码执行,这两处是动态生成的,每次程序运行地址会变,但在一次中地址是固定的,我利用程序本身加密的漏洞(就是有提示注册失败的窗口,下断bp DestroyWindow,返回到call [eax+***]解密代码的地方,再下断,后面就可以在点注册时中断,然后跟进了。当然跟进后不一定是验证注册的地方,有时会再次回到这里,多调试几次才到关键代码。我也是跟了好几天才找到的,很需要耐心。我还没有完全理解调试技巧,不然可以写个OD调试的教程。
2009-5-5 19:29
0
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
你想达到什么效果?能提供下载吗?
2009-5-5 20:26
0
雪    币: 280
活跃值: (281)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
7
呵呵,是一个英语教学的软件,3张光盘,实在没办法提供。
主要是想:①找到破解的规律,在其它.net程序也可以借鉴的。比如怎样找到解密后的IL然后复制出来反编译,找到注册算法,或找到.net生成的Native代码跟踪调试。
          ②找到爆破点后(跟踪注册算法实在困难),如何打内存补丁。
2009-5-5 21:39
0
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
8
如果单纯是混淆的话,破解不会困难的,如果要跟踪注册码,你可以先使用反混淆工具反汇编出来【你要确认它什么工具的混淆】,如果你能读懂IL码,可以不使用混淆工具,然后复制关键代码,再新建vs【2005或2008】一个简单的例子,添加所需的控件,粘贴那些代码过,你就可以调试了,如果混淆到工具都不能反汇编的话,你就爆破,爆破不需要使用反混淆工具,只要有一点IL码基础就爆破它
2009-5-5 21:56
0
雪    币: 164
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
能用remax脱掉是最好的

如果不脱,直接内存补丁也是可以的
但是现在通用的内存补丁还没有见到可用于.net的
2009-5-5 21:56
0
雪    币: 716
活跃值: (162)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
10
.NET内存补丁也困扰了我好久
2009-5-5 22:26
0
雪    币: 331
活跃值: (56)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
11
可以挂在JIT上面patch
2009-5-6 01:42
0
雪    币: 280
活跃值: (281)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
12
如果是需要编程实现的我就没有办法了。除非有现成的例子稍作修改。
2009-5-6 07:35
0
雪    币: 104
活跃值: (68)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
加百力大牛搞过这个
2009-5-6 08:15
0
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
14
有成功例子?我认为,先退壳,反混淆
2009-5-6 08:54
0
雪    币: 225
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
同样的困惑,搜索全网未找到有效的案例,神啊,救救我吧
2009-9-21 09:00
0
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
函数地址如果时动态的话,就HOOK EE 或者JIT , 然后打补丁就行了。
2009-9-21 09:53
0
雪    币: 225
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
MAXTOCODE HOOK JIT 也不行的吧
2009-9-21 12:37
0
游客
登录 | 注册 方可回帖
返回
//