zoukankan      html  css  js  c++  java
  • 一个C语言外挂程序

    • 首先建立一个控制台应用程序
    • 引入Windows.h库函数
    • MessageBoxA(句柄--通常是0,提示框内容,提示框标题,按钮)
    #include <Windows.h>
    int main()
    {
        MessageBoxA(0, "喜欢陈培昌", "我想说", MB_OK);
        return 0;
    }
    运行效果

    • 一个注入程序的编写步骤

    通常DLL类型才能注入,而不是exe我们要做两件事

    1. 添加库函数_declspec(dllexport)
    2. 把文件属性配置生成更改为DLL

    应用场景:

    1. 一些网络游戏在读取进度过程中,赞助企业用C语言实现面板打广告,DLL完成后,可以通过DLL注入工具注入到相关进程
    2. 修改游戏运行过程中的相关参数----如加血
    • 以某款知名网络游戏为例,在改游戏运行至 某一环节中,通过软件工具cheatengine获取到高射炮备用单数75发,为了提高对敌机的毁伤率,需要增加备用弹药数量,则步骤如下
    1. 通过工具cheatengine获取到存放弹药数的内存地址,cheatengine中地址和值的对应表示关系为 0x1CE0DF40 75
    2. 写代码,把相关内存地址的值改为500
    #include <Windows.h>
    __declspec(dllexport)
    int main() { int *p = (int*) 0x1CE0DF40; *p=500; }
    #效率更高的方案,自动检测弹药基数,并作弹药补给
    #include <Windows.h> void main() { int *p = (int *) 0x1CE0DF40; while(1) { if(*p<100) { *p=500; } sleep(1000);#对于对抗烈度不高的游戏,每1秒钟做一次检查就可以了。 } }

     总结:

    对于任何想改变程序运行时值的需求,C语言的外挂唯堪重任

  • 相关阅读:
    querySelectorAll和getElementsByClassName获取元素的区别
    移动端的点透事件
    formidable处理node.js的post请求
    Node中流的概念
    关于Node.js中的路径问题
    前端设计模式——原型模式
    JavaScript中的循环和闭包
    为什么给函数表达式添加函数名
    作为一个初学者如何简单地理解闭包
    JS的with关键字到底是什么?
  • 原文地址:https://www.cnblogs.com/saintdingspage/p/10166349.html
Copyright © 2011-2022 走看看