【小学生都能看懂】修改游戏中的数值

仅供学习和交流,先上结论:

理论:

使用 Cheat Engine 查找进程中需要修改的数值,观察数值的变化确定数值的内存地址,通过代码改变内存地址的数值。

开搞

  • windows 基础类库 kernel32.dll 中提供了如下接口 【memoryapi.h】


  • 由于 c++ 比较阴间,我们把它翻译成c#

[DllImport("kernel32")]
extern static bool WriteProcessMemory(IntPtr hProcess, IntPtr lpAddress, IntPtr lpBuffer, int nSize, out int lpNumberOfBytesRead);
  • 在C#中使用不安全代码(unsafe关键字)来实现修改内存的动作,有手就行
static unsafe void Main(string[] args)
{
    var processAddr = Process
            .GetProcesses()
            .Where(x => x.MainWindowTitle.Contains("植物大战僵尸"))
            .First()
            .Handle;

    var lpAddr = new IntPtr(0x14964BF0);
    var buff = 10086;

    var result = WriteProcessMemory(
        processAddr ,
        lpAddr,
        new IntPtr(&buff),
        sizeof(int),
        out var lpNumberOfBytesRead
    );
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容