文章标题】: 学用CE,打造不死悍匪
【文章作者】: stalker
【软件名称】: grand theft auto IV
【下载地址】: 自己搜索下载
【使用工具】: Cheat Engine&Ollydbg
【操作平台】: Windows XP SP2
【软件介绍】: 很老但是很不错的一款单机游戏
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
GTA是一个非常不错的单机游戏,虽然早就玩过,但无法上网的时候翻出来玩一玩还是很不错的。这次我们要在Cheat Engine的
帮助下打造一个“永远不挂”的悍匪。
运行游戏,然后切换出来启动CE(可以在这里下载http://www.websiteweather.com/downloads.php),打开gta-vc.exe,我们的目的是
永远活着,首先就要找到存储血量的内存地址。由于我们事先不知道存储血量的变量类型,所以value type选择all。如图所示
first scan结束之后,切换回到游戏,扔个炸弹在附近的地上(注意距离,不要一次把“自己”给弄死了),炸弹爆炸后残血了,记住当前
血量,再切换出来进行next scan,然后回到游戏,给自己来个阿司匹林(密码是aspirine)把血加满,再切换出来进行一次next scan就能
找到存储血量的内存单元了,在CE左边的列表框中双击该地址,将它添加到底部的列表中(在底部的列表中可以看到其类型为float),如图
接下来在底部的列表中右击该地址,选择find out what writes to this address
此时CE会弹出一个对话框This will attach the debugger of Cheat Engine to the current process.Continue?
大概的意思就是“这将会附加CE的调试器到当前进程,是否继续?”,选择yes就对了
现在需要切换回游戏,和上面一样再丢一次炸弹,然后切换出来,是否看到有结果了?
选中上图中的地址,然后点击右边的“Show disassembler”按钮
注意这三条指令,不熟悉浮点指令的朋友(比如我)可以参考http://www.pediy.com/tutorial/chap2/Chap2-4.htm
005267DE . D983 54030000 fld dword ptr [ebx+354] 005267E4 . D86424 6C fsub dword ptr [esp+6C] 005267E8 . D99B 54030000 fstp dword ptr [ebx+354]
切换回游戏,丢炸弹或者进行其他自残行为,是否发现血量不仅没有减少反而增加?
我们只需要将005267E5处的字节从64改为44就ok,下面就来写一个简单的loader
.386 .model flat,stdcall option casemap:none include \masm32\include\windows.inc include \masm32\include\user32.inc include \masm32\include\kernel32.inc includelib \masm32\lib\user32.lib includelib \masm32\lib\kernel32.lib .data? byteswritten dd ? .data dbNew db 44h szTargetName db "gta-vc.exe",0 szErrorCreate db "启动目标进程失败",0 Startup STARTUPINFO <> processinfo PROCESS_INFORMATION <> .code start: invoke CreateProcess,offset szTargetName,NULL,NULL,NULL,NULL,CREATE_SUSPENDED,NULL, NULL,offset Startup,offset processinfo mov ecx,eax jecxz @f invoke WriteProcessMemory,processinfo.hProcess,005267E5h,offset dbNew,1,byteswritten invoke ResumeThread,processinfo.hThread ret @@: invoke MessageBox,0,offset szErrorCreate,0,MB_OK or MB_ICONERROR ret end start
图为"我"与Vice City的非政府武装对峙
你是否想起鲁迅先生的一句话?
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!
2008年12月13日 17:45:01