-
-
[分享]iOS 第一题解题日志
-
发表于: 2015-10-18 21:09 2837
-
所用设备: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“
进入下一关
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
他的文章
- [原创]开源Console版iOS APP内存修改器 26907
- [分享]iOS 第三题解题思路 - 未尝试版 2601
- [分享]iOS 第二题解题日志 3124
- [分享]iOS 第一题解题日志 2838
- [原创]DOTA传奇中Lua防护部分破解 17585
谁下载
看原图
赞赏
雪币:
留言: