C 语言编程程序学习植物大战僵尸游戏外挂:从基址读取数据

C 语言编程程序学习植物大战僵尸游戏外挂:从基址读取数据_第1张图片

通过 C 语言编写一个外挂,通过 API 函数获取游戏数据,从而实现作弊功能

对象分析

要用的 API 函数简单介绍

编写测试效果

总体评价

对象分析

C 语言编程程序学习植物大战僵尸游戏外挂:从基址读取数据_第2张图片

本次游戏对象为 Plants vs. Zombies1.0.0.1051 汉化第一版

试玩发现主要数据有阳光、金钱,其中金钱最小以 10 为单位,因此数据应以 “显示钱数 / 10” 保存

通过 CE 确定阳光和金钱的基址计算公式

[[[006A9EC0]+768]+5560] = sun 

[[[006A9F38]+82C]+28] = money 

故所求基址为 006A9EC0 和 006A9F38,利用偏移即可得出数据

要用的 API 函数简单介绍

HWND ReadProcessMemory(HANDLE hProcess, LPCVOID lpBaseAddress, LPVOID lpBuffer, DWORD nSize, LPDWORD lpNumberOfBytesRead); 根据进程句柄读入该进程的某个内存空间 lpBaseAddress 的 nSize 字节,并写入缓冲区 lpBuffer,多次计算基址和偏移即可

编写测试效果

C 语言编程程序学习植物大战僵尸游戏外挂:从基址读取数据_第3张图片

打开游戏

C 语言编程程序学习植物大战僵尸游戏外挂:从基址读取数据_第4张图片

运行外挂 (截图前修改过钱数值)成功读取出阳光和金钱的数据,如再使用写入内存将所想要的值写入即达到修改功能

C 语言编程程序学习植物大战僵尸游戏外挂:从基址读取数据_第5张图片

修改成功

C 语言编程程序学习植物大战僵尸游戏外挂:从基址读取数据_第6张图片
C 语言编程程序学习植物大战僵尸游戏外挂:从基址读取数据_第7张图片
C 语言编程程序学习植物大战僵尸游戏外挂:从基址读取数据_第8张图片

你可能感兴趣的:(C 语言编程程序学习植物大战僵尸游戏外挂:从基址读取数据)