2

所以我正在做一个越狱调整,它在启动时连接到一个特定的应用程序,以允许用户为应用程序使用游戏中的模块,但到目前为止,我能让它工作的唯一方法是使用禁用 ASLR 的应用程序。由于法律规定我无法发布禁用 ASLR 的应用程序版本,因此我想看看在不禁用 ASLR 的情况下计算应用程序内存位置的方法。我以前看过它,只是想知道是否有人知道如何重新创建它。

4

1 回答 1

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
}

希望这可以帮助!

于 2014-03-11T08:34:07.747 回答