gpt4 book ai didi

c++ - 如何在 Os X 上用 C++ 获取模块的基地址

转载 作者:行者123 更新时间:2023-11-30 04:17:39 26 4
gpt4 key购买 nike

我一直在尝试在 Os X 上用 C++ 读/写另一个进程的内存。

我一直遇到的问题是我得到了一个指针(例如 server.dylib+0x123AB),但我似乎无法在 C++ 中找到动态获取 server.dylib 的内存地址/基地址的方法。是否有任何推荐的方法来尝试找到它。这可能是我的技能水平,但我发现尝试修补 OsX 上的内存一直是一场艰苦的斗争(周围的文档很少)。

如有任何建议,我们将不胜感激。

最佳答案

梅林的回答有些不准确。 ASLR 并不是要阻止您在运行时获取地址——而是要防止您依赖 FIXED 地址(即代码注入(inject)时)。如果你已经可以执行代码,你肯定可以获得地址(哎呀,GDB 可以,你为什么不能?)

DYLD 公开了一个非常丰富的 API(和 dyld_images.h),使您能够轻松地从进程内部或外部获取加载到进程地址空间中的所有图像的列表。您还可以获得 "slide",这是使用的 ASLR 偏移量。然而,这是假设您已经在该机器上运行代码 - 即它在注入(inject)代码时不起作用。

关于c++ - 如何在 Os X 上用 C++ 获取模块的基地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16974589/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com