美文网首页iOS应用程序安全
iOS逆向----查看APP是否开启了完整的ASLR

iOS逆向----查看APP是否开启了完整的ASLR

作者: 捡书 | 来源:发表于2021-11-09 17:06 被阅读0次

    在iOS4.3中,苹果引入了地址空间布局随机化也就是ASLR。这个功能确保了内存中程序的结构和数据(library,framework,主程序,堆,栈以及内存映射文件)被加载到虚拟地址空间中不可预测的位置。这使得代码执行时的逆向更加困难(当然就现在的iOS逆向来说,只是多了一步算地址的操作),因为很多针对特定库的调用都要依赖于这些虚拟地址,还需要引用堆和栈上的数据。

    ASLR机制非常有效,但是应用程序必须构建一个位置独立的可执行程序(PIE),这就要求编辑器可以生成一堆机器代码,而这些代码的功能与其在内存中的位置无关。如果没有ASLR机制,那么可执行程序和栈上的数据在内存中的位置将保持不变,即便再重启手机后再加载程序,内存地址还是不变,这就可能导致自动化攻击。

    当然,现在的所有iOS程序均启用了ASLR机制,这个设置是默认的,就是这两个选项,默认值为No,也就是开启了地址随机化:


    image.png

    已经打包好的二进制文件可以使用otool工具进行查看(仅限于真机包):


    image.png

    可以看到这里在MH_MAGIC_64这一行的结尾,可以看到明显的PIE标志。

    相关文章

      网友评论

        本文标题:iOS逆向----查看APP是否开启了完整的ASLR

        本文链接:https://www.haomeiwen.com/subject/soxvzltx.html