能力值:
( LV2,RANK:10 )
|
-
-
2 楼
对了,如果我在运行到上面程序第一行的时候,修改EAX的值为我需要修改的文字地址,然后运行,最后程序显示的就是我需要的标题文字了。。但我不想把程序改掉,大家有什么好的方法啊赐教一下。谢谢你们
|
能力值:
( LV4,RANK:50 )
|
-
-
3 楼
setwindowtext
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
已经搞定了,谢谢楼上的。
我的方法是在调用CallWindowProcA之前跟踪传入的参数的地址,然后发现下面的代码:
00459E3C |. 8D45 F8 lea eax, dword ptr ss:[ebp-8] //是标题前半部分地址,最后修改为mov edx,00459FAC,机器码为BA AC9F4500
00459E3F |. BA 989F4500 mov edx, 111.00459F98 //是标题的后半部分地址
00459E44 |. E8 D3ACFAFF call 111.00404B1C //调用分支程序把两半部分文字合并起来
00459E49 |. 8B55 F8 mov edx, dword ptr ss:[ebp-8] //把合并后文字的地址赋值给EDX
00459E4E |. E8 35ECFDFF call 111.00438A88 //调用CallWindowProcA
这样我把这段代码很简单的改为mov edx,我的文字地址,多余的nop掉,运行OK
|
|
|