美文网首页逆向工程
iOS逆向:脱壳

iOS逆向:脱壳

作者: 码小菜 | 来源:发表于2020-06-23 15:56 被阅读0次

目录
一,加壳
二,脱壳
三,工具
四,验证

一,加壳

1,介绍
  • App Store会对ipa包中的可执行文件进行加壳操作

  • 加壳就是利用特殊的算法,对可执行文件进行加密,以达到保护程序代码的目的

2,加壳前后
  • 加壳前:可执行文件能够直接在内存中运行
  • 加壳后:壳程序会一同被加载进内存,壳程序会对可执行文件进行解密,这样可执行文件就能够运行了
3,加壳的可执行文件是无法反编译的
  • 从iPhone上导出喜马拉雅的可执行文件
  • class-dump:只导出一个无效.h文件
  • Hopper:看不到类名、方法名等信息

二,脱壳

1,介绍
  • 脱壳就是将壳程序去掉,并将已加密的可执行文件进行解密
2,方法
  • 硬脱壳:直接执行解密算法(常用方法)
  • 动态脱壳:将壳程序加载到内存中,壳程序会对可执行文件进行解密,然后导出可执行文件即可

三,工具

1,用Clutch脱壳(下载地址:https://github.com/KJCracks/Clutch/releases
  • 下载并修改名称
  • Clutch拷贝到iPhone的/usr/bin目录下
  • 赋予Clutch权限:chmod +x /usr/bin/Clutch
  • 查看iPhone上已安装的APP:Clutch -i
  • 开始脱壳:Clutch -d [APP序号]
喜马拉雅-失败 微信-成功
  • 脱壳成功后会生成一个新的ipa
2,用dumpdecrypted脱壳(下载地址:https://github.com/stefanesser/dumpdecrypted
  • 下载并执行make命令,生成dumpdecrypted.dylib动态库
  • 将动态库拷贝到iPhone的/var/root目录下
  • 查看可执行文件路径:先运行APP,然后执行ps -A命令
  • 开始脱壳:DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib [可执行文件路径]
  • 脱壳成功后会生成一个新的可执行文件
3,用frida-ios-dump脱壳
  • 在Mac上配置frida环境:sudo pip install frida
  • 下载frida-ios-dump工具:git clone https://github.com/AloneMonkey/frida-ios-dump.git
  • dump.py文件中的端口号改为10010(跟登录iPhone所用端口号保持一致即可)
  • 查询APP的bundleId./dump.py -l
  • 先启动APP,然后开始脱壳:./dump.py bundleId
  • 脱壳成功后会生成一个新的ipa
4,比较
  • Clutch:很多APP都会失败
  • dumpdecrypted:只能对可执行文件进行脱壳,对于动态库不太好处理,有些APP会将代码封装成动态库
  • frida-ios-dump:能处理动态库且成功率高(推荐使用)
腾讯视频-动态库

四,验证

1,查看是否已脱壳
  • MachOView
未脱壳 已脱壳
  • otool
未脱壳 已脱壳
2,脱壳的可执行文件才能进行反编译
  • class-dump
  • Hopper
本文章仅供学习交流,如有侵权,请联系删除,谢谢!

相关文章

  • iOS逆向工程之给App脱壳

    iOS逆向工程之给App脱壳 iOS逆向工程之给App脱壳

  • iOS逆向开发(三)----Clutch,dumpdecrypt

    iOS逆向开发(三)----Clutch,dumpdecrypted,Theos-Tweak 脱壳 我们知道上架到...

  • 【iOS逆向】- 脱壳

    苹果手机的应用市场分为App Store和非App Store(PP助手、爱思助手)。 我们平时编写的代码最后发布...

  • iOS逆向:脱壳

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

  • iOS逆向开发:密码学 HASH

    前言 最近看了一篇关于逆向实战的文章:来谈谈iOS逆向工程之App脱壳[https://juejin.cn/pos...

  • ios逆向开发 (五)、从clutch脱壳到class-dump

    脱壳可以使用PP助手下载已经脱壳的应用,获取头文件可以不这么麻烦可以直接用MonkeyDev生成iOS逆向开发(六...

  • iOS逆向-应用脱壳

    壳 当我们将应用上传App Store后,Apple经过审核发布的时候会将我们的可执行文件进行加壳。加壳就是利用特...

  • iOS逆向-脱壳(三)

    加壳 什么是加壳?利用特殊的算法,对可执行文件的编码进行改变(比如压缩、加密),以达到保护程序代码的目的 脱壳 什...

  • iOS逆向脱壳签名

    1、查看MachO 2、查看包是否加壳 其中cryptid代表是否加壳,1代表加壳,0代表已脱壳。我们发现打印了两...

  • iOS逆向(六)脱壳

    转载小码哥ppt,方便个人查阅,如有侵权,随时联系删除。

网友评论

    本文标题:iOS逆向:脱壳

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