在iOS 8砸壳的时候,里怎么定位App的Documents目录?

现在xxx-xxx-xxx这一段不一样了…比如在1 路径中确定了要砸的文件的路径
进入2 路径放文件的时候xxx-xxx-xxx 和1的xxx-xxx-xxx不一样…找不到路径啊…

  1. /var/mobile/Containers/Bundle/Applications/xxx-xxx-xxx/xxx.app/
  2. /var/mobile/Containers/Data/Application/xxx-xxx-xxx/Documents/

:sad:

1 个赞

摘自《iOS应用逆向工程(第2版)》:

首先用ps命令定位待砸壳的可执行文件:
在iOS 8中,StoreApp全部位于/var/mobile/Containers/下,其中可执行文件位于/var/mobile/Containers/Bundle/Application/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/Target.app/下。我们不知道X是什么,肉眼定位需要手工遍历所有目录,劳民伤财,但一个简单的小技巧就可以省时省力:首先在iOS中关掉所有StoreApp,然后打开Target,接着ssh到iOS上,打印出所有进程:

snakeninnysiMac:~ snakeninny$ ssh root@iOSIP
FunMaker-5:~ root# ps -e
  PID TTY           TIME CMD
    1 ??         3:28.32 /sbin/launchd
……
5717 ??         0:00.21 /System/Library/PrivateFrameworks/MediaServices.framework/Support/mediaartworkd
 5905 ??         0:00.20 sshd: root@ttys000 
 5909 ??         0:01.86 /var/mobile/Containers/Bundle/Application/03B61840-2349-4559-B28E-0E2C6541F879/TargetApp.app/TargetApp
 5911 ??         0:00.07 /System/Library/Frameworks/UIKit.framework/Support/pasteboardd
 5907 ttys000    0:00.03 -sh
 5913 ttys000    0:00.01 ps –e

因为iOS上只打开了一个StoreApp,所以唯一的那个含有“/var/mobile/Containers/Bundle/Application/”字样的结果就是TargetApp可执行文件的全路径。

接着用Cycript找出TargetApp的Documents目录路径:
StoreApp的Documents目录位于/var/mobile/Containers/Data/Application/ YYYYYYYY-YYYY-YYYY-YYYY–YYYYYYYYYYYY/下,Y与之前的X值不同,而且这次PS也帮不上忙了。因此,需要借助强大的Cycript,让App告诉我们Documents的路径。命令如下:

FunMaker-5:~ root# cycript -p TargetApp
cy# [[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]
#"file:///var/mobile/Containers/Data/Application/D41C4343-63AA-4BFF-904B-2146128611EE/Documents/"
2 个赞

太感谢了…


但是第二步提示这个问题,请问是怎么回事啊

你对照一下我贴出的内容,看看操作上有什么不同

我的…没有看仔细…谢谢.

请问内容怎么没了?居然要十个字才行。。。

貌似是数据迁移的时候漏掉了,我又补上了 :man_with_gua_pi_mao: