砸壳与class dump

2016-06-17  本文已影响485人  清雪飘香

title: 砸壳与 class dump

date: 2016-05-04 16:55:53

砸壳

以前,总觉得,用的少的,没必要记录,因为你不知道下次用是什么时候。
后来,才明白,越是用的少的,才有记录的必要,因为用的少,也很容易忘记,记录的也少,查起来也不是那么简单。
这些步骤网上都有,而重写的目的是因为真实执行起来还是有些不同。所以还是予以记录,方便下次查阅这遍砸壳文章记录的还挺详细。不过最后步骤有点繁琐。这里推荐比较简单的做法吧。

1.dumpdecrypted
源代码下载地址 , 解压后,

$ cd /Users/gap/iOSRe/dumpdecrypted-master/
$ make

或者从github 上clone

$git clone git://github.com/stefanesser/dumpdecrypted/ 
$cd dumpdecrypted/ 
$make

上面的make命令执行完毕后,会在当前目录下生成一个dumpdecrypted.dylib文件,这就是我们等下砸壳所要用到的榔头。此文件生成一次即可,以后可以重复使用,下次砸壳时无须再重新编译。


上面准备了砸壳需要的工具,下面就是砸壳步骤了。在这,极力推荐使用iFunBox这个工具, 因为可视化的操作和基于USB 的操作,会很方便快捷。这里的步骤也是基于iFunBox搭配操作的,全代码的操作可以参考这个iOSRe和上面提到的砸壳


1.如果你手机越狱成功,打开ifunbox,连接手机,会显示你的手机系统和手机上的应用程序。

ifunbox.png

2.双击右侧出现的,你想砸壳的app ,会有Documents 文件夹,将mac 端上的dumpdecrypted.dylib 拖拽到Documents文件夹中。

wechatfile.png

3.打开terminal,通过ssh 连上你的手机

   #ssh root@yourIP 
   ~ root# ps -e   (保持你需要砸壳的应用程序在前台)  
   10679 ??         0:14.58 /var/mobile/Containers/Bundle/Application/F6DB6407-4C2D-4C04-B5C2-9942DCC8870B/WeChat.app/WeChat
10681 ??         0:00.43 /usr/libexec/misagent
10687 ??         0:00.21 /usr/libexec/online-auth-agent
10696 ??         0:11.96 /var/mobile/Containers/Bundle/Application/    2B97BE49-B373-4906-A8EC-B4BD2DF7683F/Twitter.app/Twitter
10731 ??         0:00.44 /System/Library/PrivateFrameworks/SyncedDefaults.framework/Support/syncdefaultsd
10734 ??         0:00.37 sshd: root@ttys000 
10738 ??         0:00.20 /System/Library/Frameworks/UIKit.framework/Support/pasteboardd

/var/mobile/Containers/Bundle/Application/字样的结果就是TargetApp可执行文件的全路径。如果像上图有多个,/var/mobile/Containers/Bundle/Application/,找准哪个是你需要砸壳的app就行,这里以wechat为例。

~ root# cd /var/mobile/Containers/Data/Application/19ECCADD-7DAE-4647-AD3A-A706056E54FD/Documents/  (图二上的路径)
Documents#DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib  /var/mobile/Containers/Bundle/Application/F6DB6407-4C2D-4C04-B5C2-9942DCC8870B/WeChat.app/WeChat (上面ps-e 命令找出来的路径)   

最后会生成.decrypted 为扩展名的文件--(在图二中的Documents文件夹中)。把它拷贝到电脑上,使用Hopper Disassembler 软件打开,打开方式是tool 上的file ,然后通过read executable..导入,

cltr +d 退出cycript 模式。

class dump

下载class dump http://stevenygard.com/projects/class-dump/
然后将class-dump 复制到/usr/bin下,然而,这会报错cp: /usr/bin/class-dump: Permission denied ,可以参考iosre论坛的这篇文章解决
安装好后,键入class-dump,会显示版本号和参数

classdump.png
使用方法
class-dump -S -s -H path/xxx.decrypted -o path/Headers/ 

对逆向感兴趣的,建议多多翻阅iOS逆向工程,入门的不二选择。

上一篇下一篇

猜你喜欢

热点阅读