所以我又开始玩 Linux,试图找到一个好的替代 ptrace 的方法来创建我自己的 ReadProcessMemory 函数来替换我曾经在 Windows 上喜欢的那个。我正在尝试玩弄 /proc/XXXX/ 目录的内容(XXXX 是进程 ID)。
目前我已经在 Qt 设计器中创建了一个应用程序,其中包含一个基本的 GUI 和一些在 UI 中保存的独特字符串,因此希望当/如果我碰巧在内存中找到它们时它会非常明显。我在此应用程序中存储的值都在本地声明的 std::string 变量中,以及传递给 UI 以进行显示。
谁能建议每个文件包含什么?目前我在地图文件中,它似乎是一个句柄列表或对物理内存地址的引用......?这是一个片段:
7fffe137a000-7fffe137b000 r--p 00031000 08:01 4463612 /usr/lib/x86_64-linux-gnu/libtxc_dxtn_s2tc.so.0.0.0
7fffe137b000-7fffe137c000 rw-p 00032000 08:01 4463612 /usr/lib/x86_64-linux-gnu/libtxc_dxtn_s2tc.so.0.0.0
7fffe137c000-7fffe1381000 r-xp 00000000 08:01 4462728 /usr/lib/x86_64-linux-gnu/libdrm_nouveau.so.2.0.0
7fffe1381000-7fffe1580000 ---p 00005000 08:01 4462728 /usr/lib/x86_64-linux-gnu/libdrm_nouveau.so.2.0.0
不完全确定这些库是什么,但我假设它们是操作系统的核心组件,并且我通过它们的物理地址访问它们,以便我可以通过 Xfce 前端正确集成。
那么,某处是否有文件内容列表?或者是否有人碰巧知道文件中的确切内容?或者更好的是,哪个文件包含我正在寻找的值,存储在内存中?
我不喜欢 ptrace 的原因是它冻结了我正在尝试使用的游戏的 UI 和工作人员。我已经考虑了很长一段时间的解决方法,只是还没有尝试实现任何东西,而且目前我不得不在大学学习中使用 Linux,所以为什么不在我的空闲时间也尝试这样做?