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

admin 2017年3月24日12:43:40评论100 views字数 1534阅读5分6秒阅读模式

声明:本系列文章由网络转载,

          转载来源未知,

          版权属于原作者,特此声明。

注:由于代码手机端看有错位,推荐PC端浏览器查看。


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

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

  • 对象分析

  • 要用的 API 函数简单介绍

  • 编写测试效果

  • 总体评价

对象分析

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

本次游戏对象为 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); 能写入某一进程的内存区域。入口区必须可以访问,否则操作将失败

编写测试效果

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

打开游戏

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

运行外挂

 

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

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

成功执行

  1. //

  2. //  01一个简单的内存外挂.cpp

  3. //  C/C++

  4. //

  5. #include <windows.h>

  6. #include <stdio.h>

  7. int main() {

  8.    HWND h = ::FindWindow(NULL, "Super Mario XP");  //  寻找并打开进程

  9.    DWORD processid;

  10.    GetWindowThreadProcessId(h, &processid);

  11.    HANDLE hprocess = 0;

  12.    hprocess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, processid);

  13.    if (hprocess == 0) {    //  对应处理

  14.        printf("打开进程失败!n");

  15.        return 1;

  16.    } else {

  17.        printf("打开进程成功!n");

  18.        DWORD hp = 10;  //  要修改的游戏数据最大值  

  19.        DWORD heart = 99;

  20.        DWORD life = 99;

  21.        DWORD addr = 0x00428282;    //  通过CE找到的游戏数据地址

  22.        DWORD addr2 = 0x00428292;

  23.        DWORD addr3 = 0x004282a2;

  24.        DWORD res = WriteProcessMemory(hprocess, (LPVOID)addr, &hp, 4, 0);  //  写入内存修改游戏数据

  25.        DWORD res2 = WriteProcessMemory(hprocess, (LPVOID)addr2, &heart, 4, 0);

  26.        DWORD res3 = WriteProcessMemory(hprocess, (LPVOID)addr3, &life, 4, 0);

  27.        return 0;

  28.    }

  29. }

总体评价

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


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

inn0team是一个正在成长的安全团队
微信号:inn0team
C语言游戏外挂(一):一个简单的内存外挂
长按可关注我们


本文始发于微信公众号(inn0team):C语言游戏外挂(一):一个简单的内存外挂

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2017年3月24日12:43:40
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   C语言游戏外挂(一):一个简单的内存外挂https://cn-sec.com/archives/353187.html

发表评论

匿名网友 填写信息