美文网首页
八、加壳脱壳

八、加壳脱壳

作者: Lovell_ | 来源:发表于2018-11-28 23:02 被阅读46次

从之前的知识可知,通过class-dump或hopper就可以知道一个app的头文件信息。

加壳的app:
但如果是从《Appstore》上下载的,这class-dump或hopper两个工具都解析不出来,因为加了壳。

不加壳的app:
如果是从1、《pp助手》《Cydia》上下载的,2、XCode打包安装的,都是脱了壳的。

不加壳的app验证:从《pp助手》上下载的app导出Mach-O,可以dump出头文件

以『喜马拉雅』为例,从《pp助手》上下载好。

先确定在手机上的哪个位置?

1、连接登录手机;2、打开该app,ps -A,找到该app进程名称即可知道路径

导出到Mac,用class-dump或hopper查看头文件
image.png
加壳的app验证:从Appstore上下载《拼多多》

从手机中导出拼多多的Mach-O文件

导出拼多多Mach-O 导出头文件

可以发现,并没有把头文件导出来,这是因为Appstore上的app加了壳。

苹果对上架的app做了加壳操作

能否直接class-dump出头文件,就看是从哪里下载的,是否已经脱壳

自己来脱壳

1、先了解下加壳原理

已加密的可执行文件是无法运行的,壳程序会对已加密的可执行文件解密还原成无加密的可执行文件,这样可执行文件就可以运行了。

2、了解下脱壳原理

常用的iOS脱壳工具有哪些?

image.png

如何验证可执行文件是否已经脱壳?

方法一:—— LC_ENCYPTION_INFO

查看Load Commands -> LC_ENCRYPTION_INFO -> Crypt ID的值,0代表未加密,非0表示加了密。

MachOView工具

方法二:

通过otool命令行也可以:otool -l 可执行文件路径 | grep crypt

脱壳工具01-Clutch

安装Clutch 使用Clutch

脱壳工具02-dumpdecrypted

DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib 可执行文件路径

如何使用 使用过程中可能会遇到的问题 实操1

执行完命令后,脱壳的.decrypted文件就在/var/root路径下,复制到Mac,pinduoduo.decrypted改名为pinduoduo_decrypted。

对比脱壳前后的信息:

实操2:脱壳成功

相关文章

  • 六 iOS逆向 - 脱壳

    加壳脱壳基本概念 使用dumpdecrypted工具进行iOSApp脱壳 一 加壳脱壳基本概念 一 什么是加壳? ...

  • 八、加壳脱壳

    从之前的知识可知,通过class-dump或hopper就可以知道一个app的头文件信息。 加壳的app:但如果是...

  • 加壳脱壳

    脱壳存根(stub) 脱壳存根执行了以下三个步骤: (1)将原始程序脱壳到内存中 (2)解析原始可执行文件的所有导...

  • 手工加壳脱壳

    PE文件的Magic code(魔数、幻数)是什么? MZ头、PE头 PE文件中文件头的信息有哪些? 运行平台、时...

  • Android加壳脱壳

    Android 加固与脱壳 加固与脱壳常用加固 so 文件特征分析 apk 加固动态调试分析 apk 加固-环境搭...

  • 加壳脱壳(04)

    1.什么是脱壳? 摘掉壳程序,将未加密的可执行文件还原出来(有些人也称为“砸壳”) 脱壳主要有2种方法:硬脱壳、动...

  • iOS逆向:脱壳

    目录一,加壳二,脱壳三,工具四,验证 一,加壳 1,介绍 App Store会对ipa包中的可执行文件进行加壳操作...

  • iOS逆向与安全8.1:砸壳、初识Theos

    砸壳 软件脱壳,顾名思义,就是对软件加壳的逆操作,把软件上存在的壳去掉(解密)。 砸壳原理 应用加壳(加密)提交给...

  • 应用砸壳

    砸壳 软件脱壳,顾明思义,就是对软件加壳的逆操作,把软件上存在的壳去掉(解密) 砸壳原理 应用加壳(加密) 应用砸...

  • 恶意代码分析2

    说明加过壳了(果然如此,加的是UPX壳) 使用脱壳机直接脱壳: 脱完壳以后发现变得正常了: 发现其创建了一个服务:...

网友评论

      本文标题:八、加壳脱壳

      本文链接:https://www.haomeiwen.com/subject/qytaqqtx.html