本人ios10.3.1 iphone6越狱机。
方案三个。

方案一、dumpdecrypted.dylib

1. ssh到越狱机上,看WeChat可执行文件在哪。

# ps aux|grep WeChat // 需要运行一下微信
mobile 33539 0.0 5.4 1556320 54512 ?? Ss 9:56AM 4:03.60 /var/containers/Bundle/Application/803BCF43-5FC1-4A35-90CC-7E47C4C7307E/WeChat.app/WeChat
2. ssh到越狱机上,看其Documents目录在哪。

# cycript -p WeChat  // 貌似得点一下iphone里的微信,不然会卡住。
cy# NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0]
@"/var/mobile/Containers/Data/Application/CDA3D8B1-CBEE-4A35-B2A6-2FB733540511/Documents"
3. mac下,下载:dumpdecrypted 并make出dumpdecrypted.dylib。 然后把dumpdecrypted.dylib用scp拷到iphone的上面步骤2的目录下。(实操中在~目录下也成了.)
4. 砸壳:
# DYLD_INSERT_LIBRARIES=/var/mobile/Containers/Data/Application/CDA3D8B1-CBEE-4A35-B2A6-2FB733540511/Documents/dumpdecrypted.dylib /var/containers/Bundle/Application/803BCF43-5FC1-4A35-90CC-7E47C4C7307E/WeChat.app/WeChat
注:实操中dumpdecrypted.dylib放~目录也成了,即:DYLD_INSERT_LIBRARIES=~/dumpdecrypted.dylib ....
砸壳成功后,会在当前目录下生成砸壳后的的文件 WeChat.decrypted。
注:此方法 解密(砸壳)的仅这个WeChat.app/WeChat 。并不是整个WeChat.app。
5. 遇到的问题:
dyld: could not load inserted library ‘dumpdecrypted.dylib’ because no suitable image found. Did find: dumpdecrypted.dylib: required code signature missing for ‘dumpdecrypted.dylib’
解决方法,mac下:
## 列出可签名证书
# security find-identity -v -p codesigning
## 选一个证书为dumpecrypted.dylib签名
# codesign --force --verify --verbose --sign "iPhone Developer: xxx xxxx (xxxxxxxxxx)" dumpdecrypted.dylib
然后把签名后的dumpdecrypted.dylib拷到iphone上。重复步骤4.
6. 怎么证明砸出来的WeChat.decrypted是成功解密(脱壳)了的?
把WeChat.decrypted拷到mac上,然后

# otool -l WeChat.decrypted | grep -B 2 crypt
WeChat.decrypted:
--
cmd LC_ENCRYPTION_INFO_64
cmdsize 24
cryptoff 16384
cryptsize 59817984
cryptid 0                     // <--- 0表示解密成功。1表示未成功

7. 顺便:在mac下借助 class-dump ,把脱壳文件dump出所有的OC头文件:

# ./class-dump -s -S -H ./WeChat.decrypted -o ./headers

方案二、frida

0. 这玩意,他是分两个端安装的。。mac端要装,iphone那也要装。相当于是mac下通过命令请求ios端脱壳...
1. mac下要安装:https://www.frida.re/docs/installation/
2. iOS下要安装:https://www.frida.re/docs/ios/然而我这一步就失败了,Cydia下添加源,屡次失败。
(补充链接,以后能添加源了再瞧。。https://www.jianshu.com/p/cfe852110e8a)

方案三、直接去pp助手下载越狱应用。通常就是脱壳了的ipa。

IOS逆向-砸壳笔记的更多相关文章

  1. iPhone手机越狱-逆向砸壳-代码注入

    iPhone手机越狱 逆向砸壳 代码注入 工具下载 操作越狱 安装待逆向应用(app) 使用OpenSSH连接手机 找到应用二进制文件地址 找到应用document沙盒地址 拷贝砸壳工具(dumpde ...

  2. IOS 逆向工程之砸壳

    在<iOS应用逆向工程>4.6.2节中,我们曾推荐使用iPhoneCake源的AppCrackr 1.7版给App砸壳.这种方式简单粗暴,省时省力,但正是因为它过于方便有木有,导致几乎所有 ...

  3. 最新iOS砸壳方式Frida (Mac OSX)

    1. 安装Frida 首先需要安装Python3,我下载的是 macOS 64-bit installer 安装,因Macbook本机自带python为2.7.x,故需要配置~/.bash_profi ...

  4. iOS逆向之class-dump

    1.class-dump class-dump是用来dump目标文件的类信息的工具.它利用Objective-C语言的runtime的特性,将存储在mach-O文件中的@interface和@prot ...

  5. iOS逆向(五)-ipa包重签名

    为什么要重签名? 1.在没有源代码的情况下,你已经对某个应用进行了资源修改(比如修改了启动图或图标等).修改完成以后,如果想要让APP可以正常使用,该APP一定要重新签名然后压缩成IPA文件. 2.如 ...

  6. iOS逆向系列-脱壳

    概述 通过iOS逆向系列-逆向App中使用class-dump工具导出App的Mach-O文件所有头文件.Hopper工具分析App的Mach-O文件代码大概实现.但是这些前体是App的Mach-O没 ...

  7. iOS逆向之一 工具的安装和使用

    iOS逆向之一-工具的安装和使用 最近在学习iOS安全方面的技术,有些东西就记录下来了,所有有了这篇文章.顺便也上传了DEMO,可以再这里找到这些DEMO的源码:dhar/iOSReProject 越 ...

  8. iOS逆向工程之App脱壳

    本篇博客以微信为例,给微信脱壳."砸壳"在iOS逆向工程中是经常做的一件事情,,因为从AppStore直接下载安装的App是加壳的,其实就是经过加密的,这个“砸壳”的过程就是一个解 ...

  9. Talking Ben App砸壳记

    需求: 导出Talking Ben app的头文件 实施: 1)准备材料: 越狱IOS设备一部,并安装Talking Ben游戏 IOS设备上安装open SSH IOS设备的/usr/bin 中安装 ...

随机推荐

  1. PTA 5-3 解题报告

    GitHub 问题描述 解题思路 代码 问题描述 5-3 计算平均值 (50分) 现在为若干组整数分别计算平均值. 已知这些整数的绝对值都小于100,每组整数的数量不少于1个,不大于20个. 输入格式 ...

  2. Yahoo Programming Contest 2019.D.Ears(DP)

    题目链接 菜爆了啊QAQ 记起点为\(S\),终点为\(T\),走过的最靠左的点是\(L\),最靠右的点是\(R\). 那么坐标轴被分成了五段: \(0\sim L-1\):经过\(0\)次: \(L ...

  3. Navicat操作数据库时一直显示加载中

    用Navicat for mysql操作mysql数据库,其中一个表怎么也打不开,一直加载,还不能关闭.从网上搜索原因,主要是以下几个原因:原因一:表死锁,会出现这样的情况,锁不释放,无论多久都读取不 ...

  4. [PA2014]Fiolki

    [PA2014]Fiolki 题目大意: 有\(n(n\le2\times10^5)\)种不同的液体物质和\(n\)个容量无限的药瓶.初始时,第\(i\)个瓶内装着\(g_i\)克第\(i\)种液体. ...

  5. .net Kafka.Client多个Consumer Group对Topic消费不能完全覆盖研究总结(二)

    依据Partition和Consumer的Rebalance策略,找到Kafka.Client Rebalance代码块,还原本地环境,跟踪调试,发现自定义Consumer Group 的Consum ...

  6. JAVA自学笔记22

    JAVA自学笔记22 1.操作基本数据类型的流 DataInputStream DataOutputStream 数据输出流允许应用程序以适当方式将基本的Java数据类型写入输出流中.然后,应用程序可 ...

  7. pygame-KidsCanCode系列jumpy-part9-使用spritesheet

    做过前端的兄弟应该都知道css sprite(也称css精灵),这是一种常用的减少http请求次数的优化手段.把很多小图拼成一张大图,只加载1次,然后用css定位到不区的区域,从而展示不同的图片.游戏 ...

  8. Spring源码分析 之浅谈设计模式

    一直想专门写个Spring源码的博客,工作了,可以全身性的投入到互联网行业中.虽然加班很严重,但是依然很开心.趁着凌晨有时间,总结总结. 首先spring,相信大家都很熟悉了. 1.轻量级  零配置, ...

  9. 咏南中间件支持JWT TOKEN

    咏南中间件支持JWT TOKEN

  10. CVPR论文《100+ Times Faster Weighted Median Filter (WMF)》的实现和解析(附源代码)。

    四年前第一次看到<100+ Times FasterWeighted Median Filter (WMF)>一文时,因为他附带了源代码,而且还是CVPR论文,因此,当时也对代码进行了一定 ...