美文网首页C/C++学习交流程序员
C语言做一个的魂斗罗99命内存外挂,妈妈再也不用担心我通不了关

C语言做一个的魂斗罗99命内存外挂,妈妈再也不用担心我通不了关

作者: 工程狮一图 | 来源:发表于2019-04-01 22:25 被阅读31次

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

    编写测试效果

    打开游戏

    运行外挂

    成功执行

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

    // C/C++

    #include

    #include

    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

    ;

    }

    代码可以左右移动哦!

    学习从来不是一个人的事情,要有个相互监督的伙伴,工作需要学习C/C++或者为了入行、转行学习C/C++的伙伴可以私信回复小编“学习”领取全套免费C/C++学习资料、视频

    部分教程截图

    教程内容包括

    1.开发环境搭建

    2.C语言教程

    3.C++教程

    4.数据结构与算法

    5..Net全套教程

    6.C++Primer教程

    7.项目实操

    相关文章

      网友评论

        本文标题:C语言做一个的魂斗罗99命内存外挂,妈妈再也不用担心我通不了关

        本文链接:https://www.haomeiwen.com/subject/wbcibqtx.html