跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 为什么游戏修改器能修改其它程序的内存?
未分類
19 9 月 2020

为什么游戏修改器能修改其它程序的内存?

为什么游戏修改器能修改其它程序的内存?

資深大佬 : aiqier 4

操作系统不是使用虚拟地址空间管理每个进程的内存,每个进程的内存空间是独立的,其它进程访问不到的么,那为啥可以写游戏修改器,修改游戏程序的内存变量。

大佬有話說 (12)

  • 資深大佬 : CEBBCAT

    https://lmgtfy.app/?q=%E4%B8%BA%E4%BB%80%E4%B9%88%E6%B8%B8%E6%88%8F%E4%BF%AE%E6%94%B9%E5%99%A8%E8%83%BD%E4%BF%AE%E6%94%B9%E5%85%B6%E5%AE%83%E7%A8%8B%E5%BA%8F%E7%9A%84%E5%86%85%E5%AD%98%EF%BC%9F

  • 資深大佬 : kernelpanic

    操作系统提供了 API 呗…

  • 資深大佬 : lin07hui

    不是修改程序内存变量,是直接改写内存的内容(就像改硬盘内容)。
    找个制作游戏修改器教程看一下,或用一下这个 Cheat Engine 软件,就明了。

  • 資深大佬 : nightwitch

    操作系统提供支持啊,不然调试器怎么去看进程的变量。
    Linux 下去查
    pread
    pwrite

    Windows 下查
    OpenProcess
    ReadProcessMemory
    WriteProcessMemory

  • 資深大佬 : Huelse

    肯定是系统提供了支持呀,想想 VS 里的堆栈内存追踪,你又没往你程序里写这些,总不至于编译器自动给你加进去吧

  • 資深大佬 : reus

    操作系统除了有隔离,也能让其他进程访问进程内存,例如调试器就是独立的进程

  • 資深大佬 : thedrwu

    有权限可以直接读写,Read/WriteProcessMemory 。
    或者 DLL 直接挂到别的进程。

  • 資深大佬 : Nitroethane

    @nightwitch Linux 下是 ptrace 系统调用,不是 pread

  • 資深大佬 : crclz

    分 2 种,一种 External,另一种 Internal 。
    External 的,使用 WindowsAPI OpenProcess ReadProcessMemory WriteProcessMemory 来操作内存。
    Internal 的,通过 dll 注入,直接附着到目标进程,就像在自己家里面一样,例如可以直接`player->health = 5000;`

  • 資深大佬 : codehz

    @nightwitch pread pwrite 不是你想象的那个 p,直接读写应该是 /proc/xxx/mem,间接的可以 ptrace 进去读写

  • 資深大佬 : virusdefender

    你可以理解为 gdb 一样的东西

  • 資深大佬 : mazhan465

    除了直接读写指定进程内存,也可以通过替换动态链接库的方式 hook 进程,不过权限要求比较高

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具