2013-03-09 39 views
1

因此,我正在开发一个jailbrake调整工具,该工具在启动时挂接到特定的应用程序,以允许用户使用应用程序的游戏内mod,但到目前为止,我能够使其工作的唯一方法是使用禁用的ASLR应用程序。由于法律限制,我无法发布应用程序的ASLR禁用版本,因此我希望看到用于在不禁用ASLR的情况下计算应用程序内存位置的方法。我以前看过它,只是想知道是否有人知道如何重新创建它。如何计算应用程序在内存中的位置而不禁用ASLR?

+0

我假设这是一个需要越狱的应用程序? – 2013-03-09 18:50:20

+0

“在启动时与特定应用程序挂钩” - 也许如果您提到此应用程序的内容以及需要关注的应用程序,我们可以更轻松地为您提供帮助。 – 2013-03-09 18:51:39

+0

@RichardBrown这个调整在mobilesubstrate上运行,它只能通过越狱来使用。 – jocopa3 2013-03-09 18:52:39

回答

1

如果你已经成功地将你的调整(一个dylib)插入目标应用程序,那么你可以使用dyld函数来获得ASLR偏移量(虚拟内存地址幻灯片)。假设你想得到可执行文件的偏移量,下面是一个片段的例子:

for (uint32_t i = 0; i < _dyld_image_count(); i++) // enumerate all images (i.e. executables and libs) 
{ 
    const char *name = _dyld_get_image_name(i); // get full path of the image 
    NSString *path = [NSString stringWithFormat:@"%s", name]; 
    if ([path hasSuffix:@"MinecraftPocket"]) NSLog(@"slide = %0x0lx", _dyld_get_image_vmaddr_slide(i)); // log the vm slide 
} 

希望这有助于!

相关问题