美文网首页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

    在iOS4.3中,苹果引入了地址空间布局随机化也就是ASLR。这个功能确保了内存中程序的结构和数据(library...

  • iOS逆向开发(四)----LLDB,ASLR

    iOS逆向开发(四)----LLDB,ASLR 我们常常需要动态调试app,通过xcode安装的app都支持动态调...

  • IOS逆向_ASLR

    1. ASLR的简介; 2. 计算APP中一段代码的真实内存地址; 1. ASLR的简介; 1.1 ASL...

  • iOS逆向_ASLR

    ASLR Address Space Layout Randomization,地址空间布局随机化 是一种针对缓冲...

  • 工具篇

    必备工具 idapro:逆向工程师的生命 iOS App Signer:app重签名 MachOView:查看Ma...

  • iOS逆向工程之给App脱壳

    iOS逆向工程之给App脱壳 iOS逆向工程之给App脱壳

  • ios逆向-ASLR介绍

    前言 我们想要更好的了解函数在内存中的地址的话,或者想要逆向别人的应用的话,很有必要了解ASLR技术 介绍 Add...

  • iOS逆向工程(九):ASLR

    ASLR前言 以前我们用Xcode的LLDB指令打断点时,可以用方法名打断点,例如breakpoint set -...

  • iOS逆向工程(九):ASLR

    ASLR前言 以前我们用Xcode的LLDB指令打断点时,可以用方法名打断点,例如breakpoint set -...

  • 逆向

    脱壳monkeyDev IOS中使用SSH链接终端来检查IOS的应用完整性 钉钉逆向原理 第一步 下载企业APP第...

网友评论

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

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