首页
论坛
课程
招聘
[分享]iOS 第一题解题日志
2015-10-18 21:09 1765

[分享]iOS 第一题解题日志

2015-10-18 21:09
1765
所用设备:iPhone5 A1429,iOS7.0.4
所用工具:IDA Pro 6.8/GDB/WinHex/otool/lipo

安装好IPA后,导出level1

otool -hv level1
发现是一个fat binary,使用

lipo level1 -thin armv7 -output v7
剥离出v7版本的,拖到WinHex里去掉ASLR,方便后续用GDB调试

将v7版本的bin放回原处,运行。
点击界面中的“进入”按钮,弹出有“密码错误”提示的alertview,
接下来根据alertview常用的init selector字符串来寻找线索,即:
initWithTitle:message:delegate:cancelButtonTitle:otherButtonTitles:
,字符串在IDA的Strings window搜索一下,看到一个可疑的xref:

[ViewController onClick]+168
双击进入,直接F5一下
大致过一下F5的结果,流程非常明确
第一步:将正确的密码(已加密)解密5次,得到正确密码

第二步:将用户输入的密码和正确密码转换为char *进行比较
第三步:提示结果

由以上分析可得,在正确密码转换char *处下断点,即可得到通关密码。
切换到IDA View中,定位到该处:

记下断点地址__text:0000B7AE
在iPhone上运行GDB,shell px ax 得到pid,attach pid
b *0x0000B7AE
再次点击进入按钮,程序断下
输入
printf "%s\n", $r0
Sp4rkDr0idKit

至此得到通关口令”Sp4rkDr0idKit“

进入下一关

【公告】【iPhone 13、ipad、iWatch】11月15日中午12:00,看雪·众安 2021 KCTF秋季赛 正式开赛【攻击篇】!!!文末有惊喜~

上传的附件:
收藏
点赞0
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回