本人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. SpringMVC(二五) JSTL View

    项目中使用JSTL,SpringMVC会把视图由InternalView转换为JstlView. 若使用Jstl的fmt标签,需要在SpringMVC的配置文件中配置国际化资源文件. 实现过程: 1. ...

  2. Xamarin Essentials教程数据传输DataTransfer

    Xamarin Essentials教程数据传输DataTransfer   通过数据传输功能,应用程序可以将文本或网址发送到其它的应用程序,这样就可以在应用程序之间共享数据,实现常见的分享功能.Xa ...

  3. jquery,underscore,lodash那些事儿

    一.参考链接 https://jquery.com/ https://en.wikipedia.org/wiki/JQuery https://developer.mozilla.org/zh-CN/ ...

  4. 《C#图解教程》一览

    本书针对编程新手和中级水平的程序员.笔者尽力专注 C# 语言本身,详尽深入地描述语言及各部分.少涉及 .NET 和相关编程实践.本书写作过程中,笔者始终坚持确保内容简洁性的同时又能透彻地讲解这门语言. ...

  5. mysql查询根据时间排序

    表数据: mysql查询根据时间排序,如果有相同时间则只查询出来一个 所以需要再判断,如果时间相同,则根据id进行降序排序

  6. Centos6 安装RabbitMq3.7.7

    安装包准备官网地址:    Erlang安装包下载:https://www.erlang-solutions.com/resources/download.html    RabbitMq安装包下载: ...

  7. Java笔记(九)EnumMap & EnumSet

    EnumMap & EnumSet 一.EnumMap 一)基本用法 public static Map<Size, Integer> countBySize(List<Cl ...

  8. bzoj1026: [SCOI2009]windy数(数位dp)

    1026: [SCOI2009]windy数 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 8203  Solved: 3687[Submit][Sta ...

  9. Java 接口 Cloneable

    Cloneable接口的目的是作为对象的一个mixin接口,表明这样的对象允许克隆.如果一个类实现了Cloneable接口,Object的clone方法就返回该对象的逐域拷贝,相当于无需调用构造器就可 ...

  10. python添加、修改、删除、访问类对象属性的2种方法

    1.直接添加.修改.删除.访问类对象属性 class Employee (object): empCount = 0 def __init__(self, name, salary) : self.n ...