能力值:
( LV2,RANK:10 )
|
-
-
2 楼
bp GetWindowLong
写在左下的方框里。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
大哥,那是下断点哦,我说是调用GetWindowLong这个函数,来得到消息处理函数地址,也就是查看调用后EAX的值,关键是如果程序中没有调用GetWindowLong,那么怎么办?
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
不知道~~~~
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
如果程序没有调用GetWindowLong这个函数的话 那么那个程序里面也就不会显示有GetWindowLong这个函数
如果有的话 就肯定最少有一处调用了这个函数
|
能力值:
( 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]
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
正如大菜一号所说,但是我怎么在程序中插入:
puxh xxxxxx// iIndex
puxh xxxxxx// hWnd
call dword ptr[401111] 呢?
而且如果能插入,那我不如直接
call XXXXXX//XXXXXX为GetWindowLong的入口地址在od中可以找到~~~
问题的关键在于怎么插入代码,调用GetWindowLong这个函数~~~
|
能力值:
( LV9,RANK:850 )
|
-
-
8 楼
你要怎么插入都ok呀
程序一般最后都有一片的全0,那个地方就可以调用这个,如果你不是要改原程序的功能的话
用OD载入后直接在全0的地方调用这个函数,新建eip就可以执行了
如果要每次程序运行都自己调用一次这个函数的话可以处理窗口初始化消息时进行补丁.其他的都类似,不知道你打算做什么呢.
|
|
|