IOS逆向-砸壳笔记
本人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逆向-砸壳笔记的更多相关文章
- iPhone手机越狱-逆向砸壳-代码注入
iPhone手机越狱 逆向砸壳 代码注入 工具下载 操作越狱 安装待逆向应用(app) 使用OpenSSH连接手机 找到应用二进制文件地址 找到应用document沙盒地址 拷贝砸壳工具(dumpde ...
- IOS 逆向工程之砸壳
在<iOS应用逆向工程>4.6.2节中,我们曾推荐使用iPhoneCake源的AppCrackr 1.7版给App砸壳.这种方式简单粗暴,省时省力,但正是因为它过于方便有木有,导致几乎所有 ...
- 最新iOS砸壳方式Frida (Mac OSX)
1. 安装Frida 首先需要安装Python3,我下载的是 macOS 64-bit installer 安装,因Macbook本机自带python为2.7.x,故需要配置~/.bash_profi ...
- iOS逆向之class-dump
1.class-dump class-dump是用来dump目标文件的类信息的工具.它利用Objective-C语言的runtime的特性,将存储在mach-O文件中的@interface和@prot ...
- iOS逆向(五)-ipa包重签名
为什么要重签名? 1.在没有源代码的情况下,你已经对某个应用进行了资源修改(比如修改了启动图或图标等).修改完成以后,如果想要让APP可以正常使用,该APP一定要重新签名然后压缩成IPA文件. 2.如 ...
- iOS逆向系列-脱壳
概述 通过iOS逆向系列-逆向App中使用class-dump工具导出App的Mach-O文件所有头文件.Hopper工具分析App的Mach-O文件代码大概实现.但是这些前体是App的Mach-O没 ...
- iOS逆向之一 工具的安装和使用
iOS逆向之一-工具的安装和使用 最近在学习iOS安全方面的技术,有些东西就记录下来了,所有有了这篇文章.顺便也上传了DEMO,可以再这里找到这些DEMO的源码:dhar/iOSReProject 越 ...
- iOS逆向工程之App脱壳
本篇博客以微信为例,给微信脱壳."砸壳"在iOS逆向工程中是经常做的一件事情,,因为从AppStore直接下载安装的App是加壳的,其实就是经过加密的,这个“砸壳”的过程就是一个解 ...
- Talking Ben App砸壳记
需求: 导出Talking Ben app的头文件 实施: 1)准备材料: 越狱IOS设备一部,并安装Talking Ben游戏 IOS设备上安装open SSH IOS设备的/usr/bin 中安装 ...
随机推荐
- 2019-1-9 c#时间格式
DateTime now=DateTime.Now; //获取拼接形式的,精确到毫秒 now.ToString("yyyyMMddHHmmssfff"); //获取时间戳 自公元0 ...
- 虚幻开放日2017ppt
虚幻开放日2017ppthttp://pan.baidu.com/s/1c1SbcKK 如果挂了QQ+378100977 call我
- Java中的位运算符
Java提供的位运算符有:左移( << ).右移( >> ) .无符号右移( >>> ) .位与( & ) .位或( | ).位非( ~ ).位异或( ...
- (网络数据交互)Android解析Internet中的DOM树数据 “DOM树”
从网络请求回来的数据格式可能是.xml文件格式,常见的有:DOM树结构,下面讲述如何解析.具体可以参考博客文章:http://www.cnblogs.com/shenliang123/archive/ ...
- mysql case when then else end 的用法
case when then end 改语句的执行过程是:将case后面表达式的值与各when子句中的值进行比较,如果两者相等,则返回then后的表达式的值,然后跳出case语 句,否则返回else子 ...
- [CC-MCO16306]Fluffy and Alternating Subsequence
[CC-MCO16306]Fluffy and Alternating Subsequence 题目大意: 给定一个\(1\sim n(n\le3\times10^5)\)的排列\(a\). 对于一个 ...
- docker 与启动后的镜像进行交互
docker ps docker exec -t -i jenk /bin/bash 在启动时进行交互 docker run -i -t ubuntu:15.10 /bin/bash
- Jmeter5 实现多机集群压测(局域网组成多机集群)
想要模拟高并发用户访问的场景,用Jmeter5实现的话,单靠一台PC机,资源是不够的,包括单机的内存.使用端口数量等,所以最好是通过多台PC机组成几个集群来对服务器进行压测. 本文目录: 1.软硬件配 ...
- 说一下Servlet里面得request和response
当一个servlet被调用的时候,我们一般继承带协议的httpServlet,大方向上是下图这样 在这里面request和response起了什么作用呢? 来细究一下. request:1.封装了客户 ...
- 编程菜鸟的日记-初学尝试编程-寻找等长数组A与B(所含元素相同,顺序不同)相匹配的元素即a[i]=b[j]
#include <iostream> using namespace std; void matching(int a[],int b[],int N) { int i=0; while ...