iOS 逆向工程步骤总结

最近对iOS逆向工程进行了些研究,由于iOS系统的封闭性,iOS的逆向研究需要使用到一些工具,包括Mac端与iOS客户端。本文对逆向App Store的应用的整个过程进行了一个总结,所有步骤参考于《iOS应用逆向工程》。

所有逆向工作的前提你需要有一台越狱的iOS设备,如何越狱设备可以使用太极越狱官网提供的工具。越狱完成后你可以通过cydia安装OpenSSH工具,这样你就可以通过ssh工具登录你的iOS设备了。有一点需要注意,刚越狱完成的手机有两个用户:root与mobile用户,其默认密码都是alpine,在越狱完成后首先的工作是修改这两个用户的密码。

登录iOS设备

通过前面在iOS设备上开通了SSH服务,你应该知道使用Terminal就可以登陆iOS设备了,iOS设备与Mac设备在同一个局域网内,你就可以通过ssh命令登陆root用户了。通过无线局域网调试设备可能会比较慢,或者在没有wifi的情况下就无法调试了。这时,你可以借助了usbmuxd工具,通过usb线直接连接iOS设备进行调试。注意,usbmuxd需要使用1.0.8版本,其目录下python-client有两个python文件:tcprelay.py与usbmux.py。只需要这两个文件即可,新版本好像只有C实现的工具,python工具只有在1.0.8版本上才有。其可以将本地端口映射到iOS设备端口。命令格式如下:./tcprelay.py -t 22:2222。该命令将iOS设备的22端映射到本机的2222端口了,ssh命令如下:ssh

root@127.0.0.1 -p 2222。

获取Apple Store可执行文件

逆向iOS应用的目的是对应用的工程结构、运行机制进行研究,首先你需要获取被分析应用的可执行文件,再结合一些反编译工具,像IDA、Hopper再进行深入研究。所有Apple Store上的应用都进行了加密,使用反编译工具无法直接进行分析,你需要先进行“砸壳”。你可以借助于clutch工具,你可以在网上下载完成后直接拷贝到iOS设备的/usr/bin目录下,添加可执行的权限。然后在iOS命令行下运行clutch –i,其会将所有从Apple Store安装的应用列举出来,如下图所示:

找到你需要分析的应用的下标,执行clutch –d X命令。如下图所示,最终生成“砸壳”后的应用。你可以将该应用拷贝到Mac电脑上,解压之后将可执行文件提取出来,再使用IDA工具进行分析。


反编译

由于现在iOS设备一般都是arm64芯片,而IDA一直没有找到免费的64位版本,所有目前可以使用hopper来代替。将之前拷贝出来的可执行文件使用hopper打开,如下图所示:


调试iOS设备

使用苹果公司提供的lldb与debugserver工具可以实现对iOS设备安装的应用进行调试。debugserver在iOS设备的/Developer/usr/bin目录下,需要对该可执行文件进行一些处理,可以对debugserver进行瘦身,只保留iOS设备对应的版本,然后给debugserver添加task_for_pid权限,从iosre网站上下载ent.xml文件,运行下面命令进行重签名,ldid –Sent.xml debugserver。再拷贝回iOS设备。

使用debugserver启动进程,debugserver –x backboard *:1234 /可执行文件路径,该命令将会启动可执行文件,等待来自1234端口进行连接调试。上面的命令是在iOS设备上运行的。从Apple Store下载的应用都会放在/private/var/mobile/Containers/Bundle/Application/目录下,你需要找到被分析应用的目录所在。此时可以借助ps命令来实现,将其它应用全部关闭,打开你需要分析的应用,运行ps -ef | grep Application命令,如果如下图所示,你将发现能找到你想要分析应用可执行文件的所有路径。

运行debugserver命令后,iOS设备将会等待来自Mac端的调试连接,在Mac上运行lldb命令,然后再运行process connect connect://127.0.0.1:1234命令,即可开始进行调试。注意,此处还借助了前面的usbmuxd工具将iOS设备的1234端口映射到了本地。

运行到此处后,可以在lldb工具中,运行ni命令,执行命令,直到加载可执行文件成功。目前执行到此处遇到一个问题,刚开始运行几个ni命令还能够加载可执行文件,但现在运行ni命令一直停留加载库的命令中,跳转不出来,还需要再研究一下。如果加载库成功了,即可以结合前面使用hopper分析可执行文件的结果,在感兴趣的位置打上断点进行深入分析。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,835评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,598评论 1 295
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,569评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,159评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,533评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,710评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,923评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,674评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,421评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,622评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,115评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,428评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,114评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,097评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,875评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,753评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,649评论 2 271

推荐阅读更多精彩内容

  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一种新的协议。它实...
    香橙柚子阅读 22,969评论 8 183
  • “不管前方是激流还是暗涌,我都要坚定地望着远方” 工作,可能让人每天都处于一路奔波之中,而一根若弦绷得太紧,总有一...
    李如宏阅读 730评论 0 2
  • 从前的日色慢,车、马、邮件都很慢,一生只够爱一个人。 喜欢木心的《从前慢》,也愿能在简书遇见同样喜欢慢生活的你。 ...
    l七卡l阅读 171评论 0 0
  • 产品中情感的作用 多数软件产品行业的从业者都是理工科或经济学背景,我们每天的工作却和研究人类情感的心理学有关。虽然...
    Simoncc阅读 995评论 0 2