小编ric*_*hie的帖子

在iOS应用中运行未签名的代码以测试越狱

我需要一种稳定的方法来尝试在iOS设备上运行未签名的可执行文件,以便测试设备是否已越狱(即允许运行未签名的代码).

我写了一个小的可执行文件,基本上什么也没做.

int main(int argc, char *argv[]) {
    return 23;
}
Run Code Online (Sandbox Code Playgroud)

我已经在iOS设备上成功编译并运行(Jailbroken都没有).

然后,我将此可执行文件添加到App捆绑包,并将该应用程序部署到iOS设备.

这导致设备上的可执行文件的只读版本.我试图chmod这个文件给它执行权限,但这失败了,所以我把它复制到应用程序的tmp目录,在那里我能够chmod具有可执行权限.

其他问题建议使用execve来调用可执行文件,但是这将用新的进程替换正在运行的进程,这会终止应用程序.Fork()总是失败,所以这不是一个选项.System()需要一个shell,并且可以在没有shell的情况下进行越狱,这仍然允许未签名的代码运行,所以这样就可以了.Popen()分叉,这样就行不通了.

有趣的是,根据我的发现,在普通设备上调用execv我的可执行文件会导致"不允许操作"错误,而在越狱设备上调用它会导致"权限被拒绝"错误.仅此一项适用于越狱检测,除非发生允许执行execv越狱的情况,然后应用程序将立即崩溃,因为它的进程将被替换.

根据这一点,iBooks执行越狱检测,但它似乎使用fairplayd二进制来执行它的execve调用.

有没有人对运行可执行文件或使用fairplayd有任何建议?

jailbreak ios

6
推荐指数
1
解决办法
2308
查看次数

标签 统计

ios ×1

jailbreak ×1