iOS 逆向工程一 App Store 下载的 app 砸壳

PS: 后面写有一篇砸壳成 ipa 的,但是这篇也得看。要不然有些基础你不知道。
特别声明此文只是对以下博客的总结笔记:(这位博主写的很详细大家可以去他的博客看看)

参考博主: //www.greatytc.com/p/4da57be23275

原理:通过越狱手机将砸壳文件注入到要砸壳 app 的沙盒目录下面,然后执行砸壳程序。
开始之前准备要的工具:
1. 一台越狱的手机(在越狱机上Cydia上安装 openSSH 和 Cycript)[这里我用的是:iPhone 5c iOS 8.3]

oppenSSH: 这个是通过 Mac 终端连接越狱手机的文件
Cycript:这个能找到要砸壳 app 的沙盒文件路径(还有其他强大的用法可去Google)

2. dumpdecrypted 代码 ----这个是要注入app 的砸壳文件
3. class-dump 代码 ----这个是 Mac 终端对砸壳之后的 app 导出头文件使用的文件

步骤:四步

一、先把 dumpdecrypted 编译成动态库, 很简单:终端切换到下载到的文件夹下,make 回车就好了。
二、把砸壳文件复制到要砸壳 app 的沙盒路径

注意⚠️:(手机和电脑需要在同一网段,其实手机和 Mac 通过 USB 连接最好,或者通过网络共享也是可以的)
要输入密码的默认是:alpine (请记住这个密码,下面很多地方用到)

2.1 终端连接手机: ssh root@手机IP
例如:
Mac$ ssh root@192.168.8.12 
root@192.168.8.12's password: 
iPhone4:~ root# (此时表示连接手机成功)
2.2 找到要砸壳 app 的沙盒路径
手机上运行要砸壳的 app ,和杀掉所有不相关 app, 为了方便找到该 app
Mac 终端输入:ps -e 
例如:
iPhone4:~ root# ps -e 
  PID TTY           TIME CMD
 1556 ??         0:00.10 /usr/libexec/afc2d -S -L -d /
 1564 ??         0:03.07 /usr/libexec/deleted --idleExit
 1566 ??         0:00.15 /System/Library/PrivateFrameworks/GeoServices.framework/geod
 1568 ??         0:00.36 /usr/libexec/mobileassetd
 1570 ??         0:00.63 /System/Library/Frameworks/AssetsLibrary.framework/Support/assetsd
 1612 ??         0:00.37 sshd: root@ttys000 
 1622 ??         0:06.20 /var/mobile/Applications/B1215D4A-24B7-480F-B91D-8F5386B0211A/xxx.app/xxx
 1623 ??         0:00.10 /System/Library/Frameworks/UIKit.framework/Support/pasteboardd
 1613 ttys000    0:00.05 -sh
 1628 ttys000    0:00.01 ps -e
iPhone4:~ root#

注意⚠️:/var/mobile/ 开头的就是我们手机运行的 app 路径
2.3 使用Cycript 找到 app 的 Documents 目录路径,它很强大可进行很多牛逼的操作
⚠️ # xxx : 这是该 app 的名(不带.app)
iPhone4:~ root# cycript -p xxx   
cy# [[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]
#"file:///var/mobile/Applications/B1215D4A-24B7-480F-B91D-8F5386B0211A/Documents/"
cy#[control+D,来退出Cycript]
2.4 步骤二,最后一步,把砸壳文件复制到刚才得到的路径下面
Mac$ scp /Users/Mac/Desktop/dump/dumpdecrypted.dylib root@192.168.8.12:/var/mobile/Applications/B1215D4A-24B7-480F-B91D-8F5386B0211A/Documents/
root@192.168.8.12's password: 
dumpdecrypted.dylib                         100%   81KB  81.0KB/s   00:00    
Mac$
三、执行砸壳文件
iPhone4:~ root# cd /var/mobile/Applications/B1215D4A-24B7-480F-B91D-8F5386B0211A/Documents/
iPhone4:/var/mobile/Applications/B1215D4A-24B7-480F-B91D-8F5386B0211A/Documents root# DYLD_INSERT_LIBRARIES=dumpdecrypted_7.dylib /var/mobile/Applications/B1215D4A-24B7-480F-B91D-8F5386B0211A/xxx.app/xxx
mach-o decryption dumper

DISCLAIMER: This tool is only meant for security research purposes, not for application crackers.

[+] detected 32bit ARM binary in memory.
[+] offset to cryptid found: @0x4a4c(from 0x4000) = a4c
[+] Found encrypted data at address 00004000 of length 46284800 bytes - type 1.
[+] Opening /private/var/mobile/Applications/B1215D4A-24B7-480F-B91D-8F5386B0211A/QQ.app/QQ for reading.
[+] Reading header
[+] Detecting header type
[+] Executable is a FAT image - searching for right architecture
[+] Correct arch is at offset 16384 in the file
[+] Opening QQ.decrypted for writing.
[+] Copying the not encrypted start of the file
[+] Dumping the decrypted data into the file
[+] Copying the not encrypted remainder of the file
[+] Setting the LC_ENCRYPTION_INFO->cryptid to 0 at offset 4a4c
[+] Closing original file
[+] Closing dump file

然后接着执行:ls
发现该目录下有一个 xxx.decrypted 的文件,就是砸壳之后的文件,把它拷贝到 Mac 端
在 Mac 终端(非手机终端):
Mac$ scp  root@192.168.8.12:/var/mobile/Applications/B1215D4A-24B7-480F-B91D-8F5386B0211A/Documents/xxx.decrypted (Mac路径)
root@192.168.8.12's password: 
四、使用class-dump将文件解析
Mac$ cd /Users/damon/Desktop/test 
Mac:test Mac$ class-dump --arch armv7 xxx.decrypted > 123.m
Mac:test Mac$ 
得到的123.m文件就是我们需要的头文件
其他型号使用相对应的 4(armv7),4s(armv7),5(armv7),5s(arm64),6(arm64),6s(arm64)

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

推荐阅读更多精彩内容