前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >C语言游戏外挂:一个简单的内存外挂

C语言游戏外挂:一个简单的内存外挂

作者头像
小林C语言
发布2019-06-10 22:47:29
发布2019-06-10 22:47:29
4.5K00
代码可运行
举报
运行总次数:0
代码可运行

版权申明:内容来源网络,版权归原创者所有。

通过 C 语言编写一个简单的外挂,通过 API 函数修改游戏数据,从而实现作弊功能

  • 对象分析
  • 要用的 API 函数简单介绍
  • 编写测试效果
  • 总体评价

对象分析

本次游戏对象为 Super Mario XP

没有更新所以可用任意版本 试玩发现人物血量最大为 10,心最大为 99,命最大为 99

要用的 API 函数简单介绍

HWND FindWindow(LPCTSTR IpClassName,LPCTSTR IpWindowName); 通过类名或窗口名查找,返回窗口句柄

DWORD GetWindowThreadProcessId(HWND hWnd,LPDWORD lpdwProcessId); 得到窗口句柄后通过 GetWindowThreadProcessId 这个函数来获得窗口所属进程 ID 和线程 ID

HANDLE OpenProcess(DWORD dwDesiredAccess,BOOL bInheritHandle,DWORD dwProcessId) 打开一个已存在的进程对象,并返回进程的句柄

bool WriteProcessMemory(HANDLE hProcess,LPVOID lpBaseAddress,LPVOID lpBuffer,DWORD nSize,LPDWORD lpNumberOfBytesWritten); 能写入某一进程的内存区域。入口区必须可以访问,否则操作将失败

编写测试效果

打开游戏

运行外挂

成功执行

代码语言:javascript
代码运行次数:0
运行
复制
//  01一个简单的内存外挂.cpp//  C/C++
#include <windows.h>#include <stdio.h>
int main() {    HWND h = ::FindWindow(NULL, "Super Mario XP");  //  寻找并打开进程    DWORD processid;    GetWindowThreadProcessId(h, &processid);    HANDLE hprocess = 0;    hprocess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, processid);
    if (hprocess == 0) {    //  对应处理        printf("打开进程失败!
");        return 1;    } else {        printf("打开进程成功!
");
        DWORD hp = 10;  //  要修改的游戏数据最大值           DWORD heart = 99;        DWORD life = 99;
        DWORD addr = 0x00428282;    //  通过CE找到的游戏数据地址        DWORD addr2 = 0x00428292;        DWORD addr3 = 0x004282a2;
        DWORD res = WriteProcessMemory(hprocess, (LPVOID)addr, &hp, 4, 0);  //  写入内存修改游戏数据        DWORD res2 = WriteProcessMemory(hprocess, (LPVOID)addr2, &heart, 4, 0);        DWORD res3 = WriteProcessMemory(hprocess, (LPVOID)addr3, &life, 4, 0);
        return 0;    }

代码可以左右移动哦!

总体评价

由于是简单外挂,没有 GDI 界面和失败对应处理,仅供入门学习交流

如果您觉得本篇文章对您有作用,请转发给更多的人,点一下好看就是对小编的最大支持!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-03-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 C语言入门到精通 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 版权申明:内容来源网络,版权归原创者所有。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档