首页
社区
课程
招聘
[求助]请教,如何用OD为程序添加一个API函数
发表于: 2014-8-3 14:48 4642

[求助]请教,如何用OD为程序添加一个API函数

2014-8-3 14:48
4642
如题,目的是要在图4红色位置使用一个user32.EnableWindow函数,但是直接如图2和图3的不能使用,汇编出错,而EnableWindow是个动态地址,每次打开会更新位置,使用call user32.EnableWindow保存后下次启动会出错,请教如何才能实现目的。
图1

图2

图3

图4

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 2161
活跃值: (750)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
2
loadlibrary
getprocaddress
call it
2014-8-3 15:23
0
雪    币: 233
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
有没有详细解释啊,大牛
2014-8-3 17:57
0
雪    币: 1632
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
用lordpe加一个不是也可以啊?
2014-8-3 18:26
0
雪    币: 233
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
添加了,然后怎么调用这个添加的地址呢
2014-8-3 18:33
0
雪    币: 1632
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
CTRL+N找到user32.EnableWindow,记下地址,然后call dowrd [地址]
2014-8-3 19:09
0
雪    币: 1632
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我靠,OD不是已经自带了user32.EnableWindow了啊???根本不用再添加。
OD1.1的调用方式:
call 004AF3E4

楼主是闹哪出。
2014-8-3 19:11
0
雪    币: 233
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
是这样,这个程序加壳了,实现代码的地址每次都是动态的,连第一个图的EnableWindow函数的指针地址每次都是变化的,所以无法直接调用。
现在我用了一个间接的方法,这段代码上方有个将ShowWindow函数保存到ESI,跟进通过计算与我要的函数偏移65A7,所以调用时这样用ESI-65A7,再call ESI,达到目的。而且保存后不管下次地址如何变化都可以成功,就是不知道换个系统会不会出错。
谢谢各位大牛的指导。
2014-8-3 19:50
0
雪    币: 1632
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
哦,理解错误了,我看成是给OD添加这个函数了,原来是其他程序。
解决了就好,你的这个思路是对的。
2014-8-4 08:40
0
雪    币: 233
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
2014-8-5 22:33
0
游客
登录 | 注册 方可回帖
返回