所以我又回到Linux上玩,试图找到一个很好的替代ptrace来创建我自己的ReadProcessMemory函数来取代我以前喜欢的Windows。我试图做一些与/ proc/XXXX /目录(XXXX是进程ID)的内容玩弄。Linux进程文件包含什么内容?
目前我已经在Qt设计器中制作了一个应用程序,其中包含一个基本的图形用户界面和用户界面中包含的一些独特的字符串,所以希望当它发生在内存中时,它会非常明显。我在这个应用程序中存储的值都在本地声明的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来进行大学学习,所以为什么不在我的停机时间里尝试这样做呢? ?
你的问题有点混乱。为什么你想要一个*替代*到'ptrace'?你为什么认为你的GUI字符串被保存在其中一个库的内存区域中? (libtxc是MESA纹理压缩,而nouveau是NVIDIA的驱动程序,你的字符串并不存在。) – us2012
不明确的道歉。我会在这里回答,然后更新主帖。 我在寻找记忆,所以我可以有效地为游戏作弊,所以我需要了解游戏客户端的价值。在Windows ReadProcessMemory中完成这个工作。 – XtrmJosh
使用ptrace的不幸副作用是它冻结了客户的身体和功能,这意味着任何成功的事情都会非常困难和密集。如果我可以直接访问进程内存(纯粹是为了从中读取数据),它应该完全消除这种烦恼,并减少我必须做的“ptrace”调用的数量(尽管它们会调用我自己的ReadProcessMemory) 。 – XtrmJosh