首页
社区
课程
招聘
[讨论]dUP内存补丁(Loader)对.NET程序是否有效?
发表于: 2007-9-29 12:27 9727

[讨论]dUP内存补丁(Loader)对.NET程序是否有效?

2007-9-29 12:27
9727
手上有个.NET程序,有强名称,找到软件的弱点所在,在OD中下断,断下后修改JE为JNE(修改点不在主程序中,在程序目录下一个.NET写的DLL,通过OD调试,这个DLL每次加载的基址倒是相同的),再运行,程序正常运行了。
   最开始想到tankaiha的《给.net程序打内存补丁》,由于没IDE,最.NET编程不熟,也就放弃了,以后再学:)
    用Keymake做内存补丁,做出的补丁直接被杀毒工具给干掉了,也就没有试补丁对.NET程序是否有效。
   最后用dUP做了个内存补丁,运行内存补丁,有两次补丁成功,程序正常运行,其余补丁都没有运用成功,程序爆破失败。现在问题来了,问问各位大大,这个补丁不成功也就罢了,说明dUP做出的Loader对.NET程序无效,但他又成功过,这说明啥啊?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 3758
活跃值: (3337)
能力值: ( LV15,RANK:500 )
在线值:
发帖
回帖
粉丝
2
dup不要用位置偏移, 用Search & replace.
2007-9-29 21:48
0
雪    币: 1431
活跃值: (3856)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
自己确认了一下,我要补丁的dll在程序每次加载的时候,dll的基址不一样,一会是04800000,一会是04700000,一会是047D0000,倒是用OD加载的时候,dll的基址都为04800000,所以用位置偏移的方式是错误的。

但用Search & replace问题又出现了,我要patch程序的一个dll,而不是主程序,dUP补丁设置中选主程序吧,做出来的loader从400000h又不能Search到dll中需要补丁的代码(如果dll基址=04800000,补丁代码在04884EAF处),dUP补丁设置中直接选dll吧,做出来的loader又不能用,loader总不能直接运行dll吧。

dUP做loader能补丁dll么?
2007-9-30 09:10
0
雪    币: 3758
活跃值: (3337)
能力值: ( LV15,RANK:500 )
在线值:
发帖
回帖
粉丝
4
od的loaddll加载的时候, 绝大多数时候dll都会按照链接时基址装入, 不会触发重定位, 而主程序运行中加载了大量的相同基址的dll, 位置被占用时候都会发生重定位的.
od的search&replace支持延迟装入的, 不过能不能在dll用还真的没试过.
你不如重新签名的好.
什么软件还是说出来看看吧, 或许可以搞定强名的
2007-9-30 16:53
0
雪    币: 261
活跃值: (75)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
把他强名去了,直接破解吧!
dup 好像不能对 DLL 用 Loader!
2007-9-30 19:03
0
雪    币: 1431
活跃值: (3856)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
在需要打补丁的.net程序中,要修改的代码前有call系统函数setjmp,为setjmp打个补丁解决问题。
这个方法比去强名还管用:)
2007-10-3 14:32
0
雪    币: 225
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
方向感 你好!

能详细介绍一下具体补丁过程吗,我也遇到和你完全一样的问题,但只找到了call ***_setjmp3,将它nop掉还是出错
2008-1-25 10:23
0
游客
登录 | 注册 方可回帖
返回
//