iOS逆向dumpdecrypted的使用

iOS逆向之dumpdecrypted的使用

dumpdecrypted使用:

dumpdecrypted 是个出色的app脱壳开源工具,它的原理是:将应用程序运行起来(iOS系统会先解密程序再启动),然后将内存中的解密结果dump写入文件中,得到一个新的可执行程序。

1.下载与安装:

下载地址:

https://github.com/stefanesser/dumpdecrypted/archive/master.zip

编译安装:

在终端中进入到刚刚下载解压的目录。可以发现如下文件:

Shuangquan:RevertProject Wade$ cd dumpdecrypted-master

Shuangquan:dumpdecrypted-master Wade$ ls

Makefile        README          dumpdecrypted.c

Shuangquan:dumpdecrypted-master Wade$

直接make, 就可以生成dumpdecrypted.dylib文件了

- 常见问题

①错误

xcrun --sdk iphoneos --find gcc -Os -Wimplicit -isysroot xcrun --sdk iphoneos --show-sdk-path -Fxcrun --sdk iphoneos --show-sdk-path/System/Library/Frameworks -Fxcrun --sdk iphoneos --show-sdk-path/System/Library/PrivateFrameworks -arch armv7 -arch armv7s -arch arm64 -c -o dumpdecrypted.o dumpdecrypted.c/bin/sh: /Applications/Xcode: No such file or directorymake: *** [dumpdecrypted.o] Error 127

说明是Xcode 路径有问题

需要执行 xcode-select 设置Xcode的路径

Shuangquan:Desktop Wade$ sudo xcode-select -p

/Applications/Xcode.app/Contents/Developer

Shuangquan:Desktop Wade$ sudo xcode-select -p

Password:***

/Applications/Xcode.app/Contents/Developer

Shuangquan:Desktop Wade$ sudo xcode-select -r

Password:***

Shuangquan:Desktop Wade$ sudo xcode-select -p

/Applications/Xcode.app/Contents/Developer

② 一般SDK是向下兼容的,如果保证SDK版本与越狱设备的版本一致或者高于越狱设备版本,使用xcrun --sdk iphoneos --show-sdk-path查看SDK版本。如下:SDK版本是8.3,设备是iOS 8.1

Shuangquan:Desktop Wade$ xcrun --sdk iphoneos --show-sdk-path

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk

2.砸壳:

- 为设备安装ssh服务,可以ssh登陆设备

在越狱设备中用Cydia搜索OpenSSH,安装改软件,安装完成后, 在OpenSSH软件中有 OpenSSH Access How-To,可以查看登陆选项。一般使用ssh命令登陆设备:

/Users/Wade/Documents/workspace/sample/ios_sample

Shuangquan:ios_sample Wade$ ssh root@192.168.199.203

root@192.168.199.203's password:

iPhone:~ root# ls

Library Media

iPhone:~ root#

- 将生成的dumpdecrypted.dylib拷贝到设备目录,可以用scp命令或其他工具

Shuangquan:dumpdecrypted-master Wade$ ls

Makefile README dumpdecrypted.c dumpdecrypted.dylib dumpdecrypted.o

Shuangquan:dumpdecrypted-master Wade$ scp ./dumpdecrypted.dylib root@192.168.199.203:/User

root@192.168.199.203's password:

dumpdecrypted.dylib 100% 193KB 192.9KB/s 00:00

Shuangquan:dumpdecrypted-master Wade$

- 查找目标文件

登陆越狱设备后,利用cycript查找目标App路径, 在设备中运行目标App(要运行),然后利用(ps -e | grep 目标App)命令查找路径和进程ID。

使用(cycript -p 进程ID)进入目标App 执行环境, 利用 [[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]获取目标App的Document路径。

为什么需要目标App的Document路径,因为只有在Document路径,目标App才有读写权限。这样目标App的App路径和Document路径都获取到了。例如获取Twitter的路径。

Shuangquan:ios_sample Wade$ ssh root@192.168.199.203

root@192.168.199.203's password:

iPhone:~ root# ls

Library Media

iPhone:~ root# ps -e | grep Twitter

666 ?? 0:06.75 /var/mobile/Containers/Bundle/Application/905D5843-B934-4130-9954-77CEEF255A0A/Twitter.app/Twitter

671 ttys001 0:00.01 grep Twitter

iPhone:~ root# cycript -p 666

cy# [[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]

"file:///var/mobile/Containers/Data/Application/313C96FB-151A-45F2-A642-E139963751C5/Documents/"

cy#

- 砸壳

将dumpdecrypted.dylib拷贝到目标文件的Document目录,例如砸壳Twitter,确定Document路径有dumpdecrypted.dylib文件

Shuangquan:ios_sample Wade$ ssh root@192.168.199.203

root@192.168.199.203's password:

iPhone:~ root# ls

Library Media

iPhone:~ root# cd /var/mobile/Containers/Data/Application/313C96FB-151A-45F2-A642-E139963751C5/Documents/

iPhone:/var/mobile/Containers/Data/Application/313C96FB-151A-45F2-A642-E139963751C5/Documents root# ls

com.atebits.tweetie.application-important-state

com.atebits.tweetie.application-state

com.atebits.tweetie.authorizationmanager

com.atebits.tweetie.authorizationmanagerTFNAuthorizationManagerData.data

com.atebits.tweetie.authorizationmanagerTFNAuthorizationManagerRequestCounts.data

com.atebits.tweetie.configuration

com.atebits.tweetie.sentinel

com.twitter.TFSFeatureSwitches.config

dumpdecrypted.dylib

iPhone:/var/mobile/Containers/Data/Application/313C96FB-151A-45F2-A642-E139963751C5/Documents root#

然后执行 (DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib 目标App)

iPhone:/var/mobile/Containers/Data/Application/313C96FB-151A-45F2-A642-E139963751C5/Documents root# DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/mobile/Containers/Bundle/Application/905D5843-B934-4130-9954-77CEEF255A0A/Twitter.app/Twitter

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: @0x24a90(from 0x24000) = a90

[+] Found encrypted data at address 00004000 of length 17432576 bytes - type 1.

[+] Opening /private/var/mobile/Containers/Bundle/Application/905D5843-B934-4130-9954-77CEEF255A0A/Twitter.app/Twitter 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 Twitter.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 4a90

[+] Closing original file

[+] Closing dump file

iPhone:/var/mobile/Containers/Data/Application/313C96FB-151A-45F2-A642-E139963751C5/Documents root#

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

推荐阅读更多精彩内容