如何去反编译一个ipa包

栏目:网站封装打包 时间:2019-03-10 15:18 作者:35tui.cn

1.前言

上传到appStore的ipa苹果会自动加一层防护壳,如果想要反编译从appStore下载的ipa包,必须要先要进行一次脱壳操作。直接使用Xcode打出的企业包可以直接进行反编译。 网站封装打包

<h3>2.工具</h3>
1.有一部已经越狱的手机
2.dumpdecrypted
<h3>3.步骤总结</h3>
0.连接你已经越狱的手机
1.设备中打开需要砸壳的APP
2.SSH链接到手机,找到ipa包的位置并记录下来
3.Cycript附加到进行,找到App的Documents文件夹位置并记录下来
4.拷贝dumpdecrypted.dylib 到App的Documents 的目录。
5.执行砸壳后,并拷贝出砸壳后的文件,然后完成。

<h5>0.连接你已经越狱的手机</h5>
一、在WiFi的情况下
yalu2 beta 8 此次越狱工具默认安装了 SSH,所以越狱后就要去更改 root 密码,更改方法打开 Cydia 首页就有,切记不需要再安装 openssh 插件了。
越狱开发者作者为了增强越狱后的 ssh 安全防护性,采用了 Dropbear 取代 Openssh,这会导致我们无法直接通过 ssh 连上 iOS10 设备,需要手动修改调整 dropbear.plist。
通过 filza 或者 ifile,或者在电脑上用 iTools 等工具,找到 yalu102 的程序目录,路径在 /private/var/containers/Bundle/Application/
下,找到对应的沙盒目录,然后到 yalu102.app 目录中修改 dropbear.plist。
其中 ProgramArguments 项展开,把 Item 4 中原来的内容 127.0.0.1:22直接改为22,保存然后重启设备即可通过 ssh 连上 iPhone。
重启设备后终端连接手机,保证 iPhone 和 Mac 在同个网络下,直接 ssh 连接 iPhone 所在的 IP,默认密码是alpine
,第一次连接会有个警告,敲 yes 即可。


  1.  
    Bingos-MacBook-Pro:~ bingo$ ssh root@192.168.1.22
  2.  
    ssh: connect to host 192.168.1.22 port 22: Connection refused
  3.  
    Bingos-MacBook-Pro:~ bingo$ ssh root@192.168.1.22
  4.  
    The authenticity of host '192.168.1.22 (192.168.1.22)' can't be established.
  5.  
    ECDSA key fingerprint is SHA256:pPdllw8r6fWz1InP8OpZbmyqieH1OarSdkjcQ98jvXI.
  6.  
    Are you sure you want to continue connecting (yes/no)? yes
  7.  
    Warning: Permanently added '192.168.1.22' (ECDSA) to the list of known hosts.
  8.  
    root@192.168.1.22's password:
  9.  
    Dankal-Device-5s:~ root#
  10.  
     

这样就连上 iPhone 设备了,接下来就可以终端命令行玩转 Unix 系统了。 二、通过USB 首先,同样手机要越狱,越狱胡要安装openssh工具。 第二,通过USB访问,有没有WiFi无所谓了,但是你得在pc安装usbmuxd服务,没有的大家可以去http://cgit.sukimashita.com/usbmuxd.git/ 下载1.0.8版本。解压进入 Python-client目录后,执行命令:python tcprelay.py –t 22:2222,这样就开通了一个从本机2222端口通往目标主机22号端口的通道,执行完后会出现Forwarding local port 2222 to remote port 22 第三, 另起终端,执行命令ssh root@localhost –p 2222,然后提示输入密码,这是手机的密码,默认为alpine。 最后,此时,同样可以达到ssh访问手机的效果,而且比WiFi更快更稳定

<h5>1.设备中打开需要砸壳的APP</h5>

通过ssh root@192.168.8.132登录到越狱手机之后,在电脑终端执行 ps -e查看所有正在运行的进程

 
Snip20170720_1.png
通过上面的截图,可以看见我们要脱壳的app的进程号是885 然后执行 cycript -p 885(附加进程) 当你执行这个指令,一定要保证你的app是处于打开状态的。不能是处于后台。
 
Snip20170720_3.png

 

要想使用cycript需要在越狱手机上使用Cydia搜索cycript安装才可以

然后通过执行[[NSFileManager defaultManager]URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]查看Doumnets的位置。

 

 
Snip20170720_3.png

<h5>2.拷贝dumpdecrypted.dylib 到App的Documents的目录:</h5>
重新打开一个终端执行
scp ~/dumpdecrypted.dylib root@192.168.8.179:/var/mobile/Containers/Data/Application/221A0662-311C-4659-9BE5-5F952BDF5D30/Documents/
当我们直接执行这个指令的时候会报错:
 
Snip20170720_4.png

这个问题在Cydia上安装OpenSSH就可以了,注意安装了不要重启,重启之后就无法通过WIFI进行SSH连接了。
 
Snip20170720_5.png

 

<h5>3.执行砸壳</h5>
进入到 Documents 目录下,然后进行砸壳:
需要用到的命令:


  1.  
    DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/containers/Bundle/Application/5F606BDF-DAFF-4F02-B34E-BF1FDB5FF432/yidian-x.app/yidian-x
  2.  
     

执行上面的指令时会报一下错误

 
Snip20170720_6.png

解决方法:(这个命令设置MAC上执行,不在手机终端上执行)


  1.  
    ## 列出可签名证书
  2.  
    security find-identity -v -p codesigning
  3.  
    ## 为dumpecrypted.dylib签名
  4.  
    codesign --force --verify --verbose --sign "iPhone Developer: xxx xxxx (xxxxxxxxxx)" dumpdecrypted.dylib

用签过名的dumpdecrypted.dylib,再次砸壳即可。

 

 
Snip20170720_10.png
查看当前文件夹就生成了一个.decrypted的文件,这个问价就是砸壳之后生成的文件 另外开启一个终端,使用scp root@192.168.8.179:/var/mobile/Containers/Data/Application/221A0662-311C-4659-9BE5-5F952BDF5D30/Documents/yidian-x.decrypted ~/Desktop/将生成的文件拷贝到电脑桌面

 

可以安装一个Hopper(https://www.hopperapp.com/download.html) ,然后将砸壳后的文件,去掉后缀名,拖进Hopper里面就可以看见反编译的伪代码了

网站封装打包www.35tui.cn
18627799917
扫描微信
TOP