iOS 逆向----从越狱的手机中提取App Store下载的APP

首先确保你的Mac已经连接上了越狱的手机,这里建议用USB连接,更稳定。
详情参考这篇文章:
https://blog.csdn.net/youshaoduo/article/details/81097802

连接完之后,就可以开始我们的工作啦。

首先,找到你要提取的app在哪个目录里。我们需要先把所有在后台或者在前台运行的APP干掉。方法是双击iPhone的home键,然后把多任务栏中的所有界面清空。

然后,打开你要提取的APP,让他在前台运行着。

这时候在终端上输入(若未特殊说明,文中终端都指已经连接上手机的终端窗口):

ps -ef

这条命令打印出了所有正在手机上运行的进程,像这样:

  UID   PID  PPID   C     STIME TTY           TIME CMD
    0     1     0   0   0:00.00 ??         0:27.35 /sbin/launchd
    0    24     1   0   0:00.00 ??         0:00.89 /usr/sbin/syslogd
    0    44     1   0   0:00.00 ??         0:23.63 /usr/libexec/logd
    0    92     1   0   0:00.00 ??         0:00.62 /System/Library/PrivateFrameworks/MobileInstallation.framework/XPCServic
  501   122     1   0   0:00.00 ??         0:00.12 /System/Library/PrivateFrameworks/IMDPersistence.framework/XPCServices/I
  501   151     1   0   0:00.00 ??         0:00.15 /System/Library/PrivateFrameworks/Accessibility.framework/Frameworks/AXH
    0   161     1   0   0:00.00 ??         0:01.09 /System/Library/CoreServices/ReportCrash com.apple.ReportCrash.SimulateC
  501   207     1   0   0:00.00 ??         0:00.06 /System/Library/Frameworks/Social.framework/XPCServices/com.apple.facebo
    0   354     1   0   0:00.00 ??         0:00.03 /usr/local/bin/dropbear -F -R -p 127.0.0.1:22
  501  1084     1   0   0:00.00 ??         0:01.84 /var/containers/Bundle/Application/226D2102-E8FE-4C2F-A20A-EB0B95738B6F/
..........

这里需要注意的是,每个进程后面都跟着可执行文件的路径,而这个路径显示多少是根据你的终端窗口大小走的,所以,你的终端能拉多大拉多大,至少要保证你能看到子文件的路径,而不是到像Application、Bundle这种公共文件的路径。

这里就是考验大家iOS基础知识的地方了,我们都知道,一般从App Store下载的App,他的路径是这样的/var/containers/Bundle/Application/xxxxxxxxxx。仔细观察上面的进程,发现还真有一个/var/containers/Bundle/Application/226D2102-E8FE-4C2F-A20A-EB0B95738B6F/…….这样的进程存在,这下就知道为什么第一步要你把所有App都干掉,然后打开目标App了吧,不然很多App在运行,你就不知道目标进程是哪一个了。

找到文件的路径,直接cd进入该目录:

cd /var/containers/Bundle/Application/226D2102-E8FE-4C2F-A20A-EB0B95738B6F/

ls

发现里面确实有app文件,像这样:

XXXXX.app/  iTunesArtwork  iTunesMetadata.plist

找到文件之后,就要想办法把这个文件打包发送到电脑上。

使用下面的命令打包文件 XXXX.tar 到 /tmp 下(名字你随便取,路径也可以随便放到哪,但是你得记得住,下面要用到):

tar -cvf /tmp/XXXX.tar ./

然后出现:

./
./.com.apple.mobile_container_manager.metadata.plist
./XXXXX.app/
./XXXXX.app/AppIcon29x29.png
./XXXXX.app/AppIcon29x29@2x.png
./XXXXX.app/AppIcon29x29@3x.png
./XXXXX.app/AppIcon40x40@2x.png
...........
./iTunesArtwork
./iTunesMetadata.plist

直到压缩完成。

此时新建一个终端窗口,此窗口就是正常的Mac终端窗口,直接输入:

scp -P 2222 root@127.0.0.1:/tmp/XXXXX.tar ~/Desktop

这是利用scp命令,将 XXXXX.tar 文件发送到Mac的桌面上,当然,发送到哪里你随便订,但是tar文件的路径一定不要错。

-P是指定目标端口,在文章开头的链接中,我是用的2222端口,所以这里跟2222,如果是用其他端口,那么这个端口一定要对应。

这里提取的IPA包是未砸壳的包,用处不大,下面的文章会讲如何一键提取已经砸好壳的IPA包。

猜你喜欢

转载自blog.csdn.net/youshaoduo/article/details/81099876