首页
社区
课程
招聘
[求助]如何暴破DLL函数?
发表于: 2006-4-28 14:13 4787

[求助]如何暴破DLL函数?

2006-4-28 14:13
4787
某加密狗是通过调用一个DLL中的函数来检测是否有狗(返回值0有狗,否则无狗),请问怎样让这个函数来返回的值始终都是0呢?
该DLL检测出来的开发工具是C**,用w32dasm打开后可以清楚地看到输出函数。但是偶以前都是通过字符串找关键跳转来爆破,DLL还真不知从何下手。请教各位,我应该如何去操作呢?有没有类似的文章呢?

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
phy
2
为什么没人说说呢?
另外,如果我从主程序里看以了函数的调用参数及返回值,我可不可以用其它工具自己做一下dll来替换它呢?
2006-4-29 09:00
0
雪    币: 257
活跃值: (11)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
和EXE一样的吧,修改后再保存就可以了
2006-4-29 09:20
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
DLL当然只有通过导出函数来与EXE交换数据的,所以,从导出函数下手,定位到DLL的导出函数,然后直接修改后返回就好了
2006-4-29 09:46
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
phy
5
关键是修改EXE时,只是“有”、“无”的判断,很好改。但是DLL,要改它输出函数的返回值为固定值,即返回值与参数无关,我觉得无从下手。
2006-4-30 10:03
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
跟踪DLL,如它只有一个导出函数,那就看看在DLL中有没有根据不同的操作码(如找、读、写)而有不同的流程,如有,定位到需要希望返回值的流程中,在参数出栈时直接MOV,如没有不同的流程,只能在EXE中赋值了。
2006-4-30 10:28
0
雪    币: 313
活跃值: (440)
能力值: ( LV12,RANK:530 )
在线值:
发帖
回帖
粉丝
7
返回值是不是放EAX的啊,你把他函数的开头几句改为
XOR EAX,EAX
RETN*就好了
*代表压如参数个数x4
2006-4-30 11:03
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
最初由 4nil 发布
返回值是不是放EAX的啊,你把他函数的开头几句改为
XOR EAX,EAX
RETN*就好了
*代表压如参数个数x4


这样好象只是将标志改成总有狗了,但如果要判断狗内数据,最好是能将数据内置到DLL中,这样的DLL才能支持升级吧
2006-4-30 11:28
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
phy
9
呵呵,感谢楼上热心的兄弟们,我有思路了。
2006-4-30 16:51
0
游客
登录 | 注册 方可回帖
返回
//