2022年《植物大战僵尸》游戏功能函数动态反汇编-分析 .pdf
1植物大战僵尸游戏功能函数动态反汇编- 分析作者:杨桂全QQ:1174968967(CoCol) 最近,一款叫 植物大战僵尸的游戏很是火热,本人也很喜欢,画质细腻、游戏模式多, 可以说是单机小游戏中的极品(至少我是这么认为的),嘿嘿 本人一直是“外挂”的痴迷者,同时也是嵌入式系统开发和电子电路设计的爱好者, 以下是笔者用动态反汇编工具反汇编出来的代码,并将跟踪到的功能函数代码 剪切 出,通过分析 代码功能、 加以注释 ,方便读 者理解。 以下 程序段完成游戏中 加太阳币及加钱币的功能 函数 ,具 体内容请参照以下代码中 注释。其中中的代码可以用来修改 游戏的 某些属性 ,当然修改其他代码也可以 。如果您 也是 位“外挂”爱好者,可以 根据 以下代码 写出属于自己 的植物大战僵尸游戏外挂,如果您 是位“老鸟” ,请飞过。-地址 - 机器码 -反汇编 - 004309D0 - 56 - push esi 004309D1 - 8b f0 - mov esi,eax 004309D3 - e8 f8 23 00 00 - call 00432dd0 004309D8 - 8b 46 58 - mov eax,esi+58 传送币类型号004309DB - 83 f8 04 - cmp eax,04 判断币的类型004309DE - 74 0f - je 004309ef 是 1 个普通太阳币(25)004309E0 - 83 f8 05 - cmp eax,05004309E3 - 74 05 - je 004309ea004309E5 - 83 f8 06 - cmp eax,06 004309E8 - 75 47 - jne 00430a31 是钱币004309EA - 83 f8 04 - cmp eax,04004309ED - 75 07 - jne 004309f6004309EF - b9 e8 03 00 00 - mov ecx,00000019 (ecx)=25 ,加 25 太阳币004309F4 - eb 18 - jmp 00430a0e 004309F6 - 83 f8 05 - cmp eax,05004309F9 - 75 05 - jne 00430a00 两种太阳币都不是,加0 太阳币004309FB - 8d 48 0a - lea ecx,eax+0a (ecx)=15 , 是 1 个小太阳币(15)004309FE - eb 0e - jmp 00430a0e 00430A00 - 33 c9 - xor ecx,ecx ecx 置 000430A02 - 83 f8 06 - cmp eax,06 00430A05 - 0f 95 c1 - setnc cl (eax)=6 时(cl)=1 00430A08 - 83 e9 01 - sub ecx,01 00430A0B - 83 e1 32 - and ecx,32 -处理加阳光币代码段- 00430A0E - 8b 46 04 - mov eax,esi+04 00430A11 - 01 88 60 55 00 00 - add eax+00005560,ecx 加阳光币00430A17 - 8b 88 60 55 00 00 - mov ecx,eax+00005560 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 3 页 - - - - - - - - - 200430A1D - 81 f9 06 27 00 00 - cmp ecx,00002706 最大太阳币为999000430A23 - 7e 78 - jle 00430a9d 跳出00430A25 - c7 80 60 55 00 00 06 27 00 00 - mov eax+00005560,00002706 写最大币值00430A2F - eb 6c - jmp 00430a9d 跳出-00430A31 - 83 f8 01 - cmp eax,01 判断钱币类型 (银币、金币 ) 00430A34 - 74 0f - je 00430a45是银币00430A36 - 83 f8 02 - cmp eax,02 同上00430A39 - 74 05 - je 00430a40是金币00430A3B - 83 f8 03 - cmp eax,03 同上00430A3E - 75 5d - jne 00430a9d 跳出00430A40 - 83 f8 01 - cmp eax,01 00430A43 - 75 07 - jne 00430a4c 00430A45 - ba 01 00 00 00 - mov edx,00000001 银币加 1*1000430A4A - eb 18 - jmp 00430a6400430A4C - 83 f8 02 - cmp eax,02 00430A4F - 75 05 - jne 00430a56 两种钱币都不是,加0 钱币00430A51 - 8d 50 03 - lea edx,eax+03 (edx)=5 金币加 5*1000430A54 - eb 0e - jmp 00430a6400430A56 - 33 d2 - xor edx,edx ecx 置 0 00430A58 - 83 f8 03 - cmp eax,03 00430A5B - 0f 95 c2 - setnc dl (eax)=3 时(cl)=1 00430A5E - 83 ea 01 - sub edx,01 00430A61 - 83 e2 64 - and edx,64 -处理加钱币代码段- 00430A64 - 8b 06 - mov eax,esi 传送钱币类型号00430A66 - 8b 80 2c 08 00 00 - mov eax,eax+0000082c 00430A6C - 01 40 28 - add eax+28,edx 加钱币00430A6F - 8b 48 28 - mov ecx,eax+28 00430A72 - 81 f9 9f 86 01 00 - cmp ecx,0001869f 最大钱币数为99999 00430A78 - 7e 09 - jle 00430a83 跳出00430A7A - c7 40 28 9f 86 01 00 - mov eax+28,0001869f 写最大钱币数00430A81 - eb 0b - jmp 00430a8e 跳出- 00430A83 - 85 c9 - test ecx,ecx 00430A85 - 7d 07 - jnl 00430a8e 00430A87 - c7 40 28 00 00 00 00 - mov eax+28,00000000 00430A8E - 83 7e 04 00 - cmp dword ptr esi+04,00 00430A92 - 74 09 - je 00430a9d00430A94 - 8b 46 04 - mov eax,esi+04 00430A97 - 01 90 a0 57 00 00 - add eax+000057a0,edx 00430A9D - 83 7e 58 03 - cmp dword ptr esi+58,0300430AA1 - 75 10 - jne 00430ab300430AA3 - 83 7e 04 00 - cmp dword ptr esi+04,00 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 3 页 - - - - - - - - - 300430AA7 - 74 0a - je 00430ab3 00430AA9 - 8b 76 04 - mov esi,esi+04 00430AAC - 83 86 a4 57 00 00 01 - add dword ptr esi+000057a4,01 00430AB3 - 5e - pop esi 00430AB4 - c3 - ret 子程序返回名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 3 页 - - - - - - - - -