首页
社区
课程
招聘
[旧帖] 怎么在ollydbg插入API函数? 0.00雪花
发表于: 2008-5-28 18:58 4835

[旧帖] 怎么在ollydbg插入API函数? 0.00雪花

2008-5-28 18:58
4835
在ollydbg中,知道一个窗口的句柄,怎么用GetWindowLong这个函数得到窗口的消息处理函数,经常听大虾说插GetWindowLong得到窗口消息处理函数地址,但偶就是不知道具体的怎么搞??哪位大虾能具体和我说说~~~,

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
bp GetWindowLong

写在左下的方框里。
2008-5-28 19:08
0
雪    币: 210
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
大哥,那是下断点哦,我说是调用GetWindowLong这个函数,来得到消息处理函数地址,也就是查看调用后EAX的值,关键是如果程序中没有调用GetWindowLong,那么怎么办?
2008-5-28 19:14
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
不知道~~~~
2008-5-28 19:40
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
如果程序没有调用GetWindowLong这个函数的话 那么那个程序里面也就不会显示有GetWindowLong这个函数

如果有的话 就肯定最少有一处调用了这个函数
2008-5-28 20:03
0
雪    币: 424
活跃值: (10)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
6
如果没有调用的话可以用lordPE自行添加这个函数,这个函数位于user32.dll

lordPE编辑器载入程序->目录->输入表那一列的"...."->右键菜单"添加导入表"->输入user32.dll和GetWindowLongA->右边的'+'
之后在列表框最后可以看到那个刚添加的导入表和导入函数,点击之后下面的列表框有函数的信息,最左边的FirtThunk就是所需的值,记下保存即可,
比如这个值是00001111,OD中一般exe程序的imagebase+11111,exe应用程序的ImageBase一般都是0x00400000,有不同的可用LordPE看镜像基址.
在OD中就可以这么调用刚才导入的GetWindowLongA函数
puxh xxxxxx// iIndex
puxh xxxxxx// hWnd
call dword ptr[401111]
2008-5-28 21:02
0
雪    币: 210
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
正如大菜一号所说,但是我怎么在程序中插入:
puxh xxxxxx// iIndex
puxh xxxxxx// hWnd
call dword ptr[401111] 呢?
而且如果能插入,那我不如直接
call XXXXXX//XXXXXX为GetWindowLong的入口地址在od中可以找到~~~
问题的关键在于怎么插入代码,调用GetWindowLong这个函数~~~
2008-5-28 22:20
0
雪    币: 424
活跃值: (10)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
8
你要怎么插入都ok呀
程序一般最后都有一片的全0,那个地方就可以调用这个,如果你不是要改原程序的功能的话
用OD载入后直接在全0的地方调用这个函数,新建eip就可以执行了

如果要每次程序运行都自己调用一次这个函数的话可以处理窗口初始化消息时进行补丁.其他的都类似,不知道你打算做什么呢.
2008-5-28 22:46
0
游客
登录 | 注册 方可回帖
返回
//