[英]How to get a base address of a module in C++ on Os X
我一直在尝试在OS X上用C ++读取/写入另一个进程的内存。
我一直遇到的问题是我得到了一个指针(例如server.dylib + 0x123AB),但是我似乎找不到一种在c ++中动态获取server.dylib的内存地址/基地址的方法。 是否有建议尝试找到它的任何方法。 这可能是我的技能水平,但我发现尝试在OsX上修改内存是一项艰巨的任务(周围的文档很少)。
任何意见,将不胜感激。
梅林的答案有些不准确。 ASLR并不意味着阻止你获得在运行时的地址 - 它的意思,以防止你依靠固定地址(即当代码注入)。 如果你已经可以执行代码,你绝对可以得到地址(赫克,GDB呢,你为什么不能?)
dyld的暴露了非常丰富的API(和dyld_images.h),使您能够轻松地获得无论是从过程中或在它之外加载到进程的地址空间中的所有图像的列表。 您还可以得到“滑”,这是ASLR使用的偏移。 这一点,但是,假设你已经在这台机器上运行的代码 - 即注入代码的时候,它不会工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.