注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

碳基体

http://weibo.com/tanjiti

 
 
 
 
 

日志

 
 

去处iOS应用的ASLR功能(即PIE flag)  

2013-05-30 20:59:20|  分类: iOS app security |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
曾在《ASLR》中介绍了address space layout random的部分功能,如main可执行文件地址随机化。(ASLR具体可参照wiki介绍)iOS 4.3开始在预装的iOS应用中部分开启ASLR功能。而本文以iOS 5.1.1上的用户自安装应用为例,介绍如何去处掉ASLR。

首先,ssh到iOS设备中,使用otool命令查看任意mach-o可执行文件头的flag,本文以Facebook应用为例,可以看到开启了PIE,PIE的特性就是ASLR

dani-2:Downloads leedani$ ssh root@10.1.xx.xx(iOS设备的ip地址)
root@10.1.35.74's password:

danimato-iPod:~ root# cd /private/var/mobile/Applications/B313FF38-2CCD-4CA8-8422-7E4E01B43A19/Facebook.app/

danimato-iPod:/private/var/mobile/Applications/B313FF38-2CCD-4CA8-8422-7E4E01B43A19/Facebook.app root# otool -hV Facebook
Facebook:
Mach header
magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
MH_MAGIC ARM 9 0x00 EXECUTE 46 5100 NOUNDEFS DYLDLINK TWOLEVEL WEAK_DEFINES BINDS_TO_WEAK PIE


接下来,我们使用removePIE,来使得ASLR实效,即关闭PIE,首先将removePIE拷贝到iOS设备中(removePIE源码

dani-2:Downloads leedani$ scp removePIE root@10.1.xx.xx(iOS设备的ip地址):/tmp/
root@10.1.35.74's password:
removePIE 100% 23KB 22.7KB/s 00:00

然后将存放在iOS设备/tmp目录下的removePIE拷贝到待去处ASLR功能的mach-o可执行文件所在的文件夹下,以Facebook应用为例

dani-2:Downloads leedani$ ssh root@10.1.xx.xx(iOS设备的ip地址)
root@10.1.35.74's password:

danimato-iPod:~ root# cp /tmp/removePIE /private/var/mobile/Applications/B313FF38-2CCD-4CA8-8422-7E4E01B43A19/Facebook.app/

danimato-iPod:~ root# cd /private/var/mobile/Applications/B313FF38-2CCD-4CA8-8422-7E4E01B43A19/Facebook.app/


运行removePIE,格式为./removePIE <mach-o可执行文件名>,注意removePIE不能使用可执行文件的全路径作为参数

danimato-iPod:/private/var/mobile/Applications/B313FF38-2CCD-4CA8-8422-7E4E01B43A19/Facebook.app root# ./removePIE Facebook
loading header

backing up application binary...

binary backed up to: Facebook.bak

mach_header: cefaedfe0c00000009000000020000002e000000ec13000085802100
original flags: 85802100
Disabling ASLR/PIE ...
new flags: 85800100
ASLR has been disabled for Facebook


最后,我们检查去处后的结果,可以看到没有了PIE flag

danimato-iPod:/private/var/mobile/Applications/B313FF38-2CCD-4CA8-8422-7E4E01B43A19/Facebook.app root# otool -hV Facebook
Facebook:
Mach header
magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
MH_MAGIC ARM 9 0x00 EXECUTE 46 5100 NOUNDEFS DYLDLINK TWOLEVEL WEAK_DEFINES BINDS_TO_WEAK


参考:
http://www.securitylearn.net/2013/05/23/disable-aslr-on-ios-applications/?utm_source=rss&utm_medium=rss&utm_campaign=disable-aslr-on-ios-applications
http://www.peterfillmore.com/2013/01/removepie-tool-for-disabling-aslr-on.html
https://github.com/peterfillmore/removePIE
  评论这张
 
阅读(2065)| 评论(0)
推荐

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017