标题:
终于明白为什么会弹了
[打印本页]
作者:
砖家叫兽
时间:
2012-3-24 13:28
标题:
终于明白为什么会弹了
我用OD调用 GETDLGITEMTEXTA 这个API函数
直接强制指定了函数地址
那么 跟我版本不一样的操作系统 即使也是XP 一样找不到这个API正确地址
相较于这个第一段
http://www.xycq.net/forum/thread-246054-1-1.html
004D7C80 55 PUSH EBP
004D7C81 8BEC MOV EBP,ESP
004D7C83 51 PUSH ECX
004D7C84 81EC 00020000 SUB ESP,200
004D7C8A 8BCC MOV ECX,ESP
004D7C8C 51 PUSH ECX
004D7C8D 68 E87C4D00 PUSH Ekd5.004D7CE8 ; ASCII "USER32.DLL"
004D7C92 FF15 24614800 CALL DWORD PTR DS:[<&KERNEL32.LoadLibrar>; kernel32.LoadLibraryA
004D7C98 85C0 TEST EAX,EAX
004D7C9A 74 28 JE SHORT Ekd5.004D7CC4
004D7C9C 68 F47C4D00 PUSH Ekd5.004D7CF4 ; ASCII "GetDlgItemTextA"
004D7CA1 50 PUSH EAX
004D7CA2 FF15 FC614800 CALL DWORD PTR DS:[<&KERNEL32.GetProcAdd>; kernel32.GetProcAddress
004D7CA8 85C0 TEST EAX,EAX
004D7CAA 74 18 JE SHORT Ekd5.004D7CC4
004D7CAC A3 D07C4D00 MOV DWORD PTR DS:[4D7CD0],EAX
004D7CB1 C605 CA7C4D00 0>MOV BYTE PTR DS:[4D7CCA],1
004D7CB8 E8 E3120000 CALL Ekd5.004D8FA0
004D7CBD C605 CA7C4D00 0>MOV BYTE PTR DS:[4D7CCA],0
004D7CC4 8BE5 MOV ESP,EBP
004D7CC6 5D POP EBP
004D7CC7 C3 RETN
修改了这一段以后 搜索API函数地址 这样就可以适用于各系统了
区别比较明显的是加了一段
接下来 我会更新引擎在之前的帖子
http://www.xycq.net/forum/thread-247214-1-1.html
[
本帖最后由 砖家叫兽 于 2012-3-24 16:13 编辑
]
作者:
513633522
时间:
2012-3-24 21:57
难道新系统下不能玩 也是因为API位置的问题
作者:
粟裕战神
时间:
2012-4-7 07:30
不错啊
欢迎光临 轩辕春秋文化论坛 (http://xycq.org.cn/forum/)
Powered by Discuz! 5.0.0