|
发表于 2024-1-16 18:40:41
|
显示全部楼层
北京市北京市
本帖最后由 同学麻烦让让 于 2024-1-16 18:47 编辑
这个jz不是分分钟就能找出来吗
简易游戏.exe+1F11 - 8B 1D 30B74A00 - mov ebx,[简易游戏.exe+AB730] { (03E6D708) }
这里4AB730里存放的就是一个数组,这句之后的ebx=03E6D708,接着下面的命令“简易游戏.exe+1F17 - E8 E8F0FFFF - call 简易游戏.exe+1004”这句是计算数组里的成员数(存放在ecx里)和第一个成员的起始地址(存放在ebx里),在只有一个数组成员的情况下算出的ebx=03E6D708+8=03E6D710,然后是
简易游戏.exe+1F5D - 8B 1B - mov ebx,[ebx]
这句之后的ebx=03E6D750,接着是“简易游戏.exe+1F5F - 83 C3 08 - add ebx,08 { 8 }”,算出的ebx=03E6D758,这个值也就是存放经验的地址,所以经验的地址是[[4AB730]+8+4*x-4]+8,x是角色的序号。
说到底其实就是建立了一个数组,每建立一个角色就增加一个成员,数组里的成员值偏移8的地方就是存放经验值的
|
|