-
-
[分享]iOS 第一题解题日志
-
2015-10-18 21:09 2740
-
所用设备: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“
进入下一关
所用工具: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“
进入下一关
[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。
赞赏
他的文章
谁下载
看原图