1、子程序 __启动窗口_创建完毕进程ID =进程取ID(“War3.exe”).子程序 _按钮_修改金币_被单击.局部变量 一级偏移, 整数型.局部变量 基址, 整数型.局部变量 二级偏移, 整数型.局部变量 三级偏移, 整数型基址 =十六到十(“6F87C730”)。
2、一级偏移 =读内存整数型(进程ID, 基址)+十六到十(“C”)二级偏移 =读内存整数型(进程ID, 一级偏移)+十六到十(“14”)三级偏移 =读内存整数型(进程ID, 二级偏移)+十六到十(“78”)写内存整数型(进程ID, 三级偏移,到整数(编辑框_修改金币.内容))。
3、基址很好找的,用CE+OD可以快速找到,下面给出简单方法:用CE搜索英雄的力量或者敏捷属性地址(让英雄带个+力量或敏捷的装备)。
4、然后打开OD附加魔兽,Ctrl+G跳转到力量或者敏捷属性地址(多跳转几次),然后右键-断点-内存写入,返回游戏把+属性的装备丢掉OD里就会断下了。
5、单步步入(F7),按几次后会出现类似下面的:直接运行魔兽不通过任何工具或平台运行魔兽的话基址的开头都是6Fxxxxxx,xxxxxx就是基址了,6F不要。6F040770 56 push esi。
6、040771 8B35 E0E5AC6F mov esi, dword ptr [6FACE5E0]-------6FACE5E0就是资源基址War3AddressThisGame。6F040777 57 push edi,6F040778 8BF9 mov edi, ecx,6F04077A C1EF 1F shr edi, 1F-----------可以根据这个辨认,一般都是1F。