游戏逆向— Bl0ckdev \_FPS—第二部分:模块 2 游戏作弊内部与外部的代码示例
原创
bl0ckdev
bl0ckdev
Esn技术社区
2026年7月6日 17:42
河南
在小说阅读器读本章
去阅读
安全编码与红队技术
简单的程序代码实例:
int hp = 1337; int main() { while (true) { hp--; printf(\"hp 现在是:%i\
\", hp); getchar(); } }
- 一个经典的程序示例,就是 每次我们按下回车键时都会降HP 值。
- 禁用了地址空间布局随机化(ASLR) ,这样基地址就不会改变。
- 用 Cheat Engine 查到 hp 的地址是 0x403018,是时候编写破解程序了。
内部作弊的代码示例:
编写一个简单的DLL:
BOOL WINAPI DllMain(HMODULE hModule, DWORD dwReason, LPVOID lpReserved) { int* ptr = (int*)0x400000+0x3018; // 0x400000 是基地址(未启用 ASLR,因此是静态的) *ptr = 999; return TRUE; }
注入后, hp 值将变为 999。
外部代码示例:
DWORD pid = 18844; HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid); // 我们需要进程句柄才能访问内存int hpValue = 999; WriteProcessMemory(hProc, (LPVOID)(0x400000 + 0x3018), &hpValue, sizeof(int), NULL);
在外部调用时,您需要获取进程句柄。为了简化代码,我将进程 ID 硬编码到了代码中。
以管理员身份运行此程序,它还会将 hp 值 更改为 999。
总结:
本文对应的是上一篇的 模块1 内部作弊和外部作弊的解释
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论