Dumps decrypted mach-o files from encrypted iPhone applications from memory to disk. This tool is necessary for security researchers to be able to look under the hood of encryption.

源代码只有一个文件 dumpdecrypted.c,文件只有一个函数 dumptofile,程序没有解密逻辑,当它执行时候,加载器已经完成了目标 mach-o 文件的装载,对应的解密已经完成。该函数的工作是从 LC_ENCRYPTION_INFO 遍历所有的 load command,将对应的解密数据从内存中 dump 出来,复写到 mach-o 文件中。

步骤

  • 安装 OpenSSH, Cycript
  • 下载 dumpdecrypted 源代码
  • 在源代码目录下执行 make 指令,生成一个 dumpdecrypted.dylib
  • ssh root@ip_address,默认密码是 alpine
  • ps -e,找到应用的进程号,以及进程路径
  • cycript -p 进程号,输入下面代码
  • [[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]
  • 从上个指令获取 app document 目录路径
  • ctrl + d,退出 cycript 操作
  • 将 dumpdecrypted.dylib 文件拷贝到 app document 目录下, scp src_path root@ip_address:des_path
  • DYLD_INSERT_LIBRARIES=xxx.dylib_path app进程路径,开始砸壳,完成后会得到一个 .decrypted文件
  • 使用 scp 命令将砸壳后的文件复制到电脑上, scp root@ip_address:src_path des_path
  • 使用 class-dump 获取头文件,class-dump -H WeChat.decrypted -o des_path



遇到错误

dyld: could not load inserted library 'dumpdecrypted.dylib' because no suitable image found. Did find:

dumpdecrypted.dylib: required code signature missing for 'dumpdecrypted.dylib'

解决方案:

## 列出可签名证书
security find-identity -v -p codesigning
## 为dumpecrypted.dylib签名
codesign --force --verify --verbose --sign "iPhone Developer: xxx xxxx (xxxxxxxxxx)" dumpdecrypted.dylib

涉及软件

iOS - 10.3.3

OpenSSH - 6.7p1-13

Script - 0.9.595

Fileza File Manager - 3.5.2-1

测试应用:WeChat, AlipayWallet

2018-5-25-23

Dumpsdecrypted的更多相关文章

  1. ios 逆向

    Theos https://www.jianshu.com/p/307243ea40e4 Dumpsdecrypted https://www.cnblogs.com/wangyaoguo/p/908 ...

随机推荐

  1. 使用getid3获取音频文件信息

    今天有个需求,在上传音频文件时候自动获取音频的秒数,和大家分享一下. 首先把getid3的包下载下来 链接:https://pan.baidu.com/s/1Qmdj-I4boz9Sm9GFsON0D ...

  2. logisitic回归

    线性回归目的是找到一条直线(或者超平面)尽可能地接近所有的训练数据点,而对数几率回归的目的是找到一条直线(或者超平面)尽可能地分开两种不同类别的数据点. 对数几率回归感觉更像是一个分类问题.https ...

  3. Java面试知多少

    1.谈谈&和&&的区别  1.&&是短路判断,在与其他语句一起判断时,第一个条件为假就不判断剩下的条件:   & 需要判断所有的条件  2.&是 ...

  4. Merkle Patricia Tree (MPT) 以太坊中的默克尔树

    本篇博文是自己学习mpt的过程,边学边记录,很多原理性内容非自己原创,好的博文将会以链接形式进行共享. 一.什么是mpt MPT是以太坊中的merkle改进树,基于基数树,即前缀树改进而来,大大提高了 ...

  5. Too many open files错误与解决方法

    致前辈:该问题的解决思路给了我很大的启发,文章作者Lis, Linux资深技术专家. 问题现象:这是一个基于Java的web应用系统,在后台添加数据时提示无法添加,于是登陆服务器查看Tomcat 日志 ...

  6. defineporperty 的使用 设置对象的只读或只写属性

    <!DOCTYPE html> <html lang="en"> <head> <title>Document</title& ...

  7. 关于localStorage的实际应用

    在客户端存储数据 HTML5 提供了两种在客户端存储数据的新方法: localStorage - 没有时间限制的数据存储 sessionStorage - 针对一个 session 的数据存储 之前, ...

  8. http://www.cnblogs.com/120626fj/p/7545958.html

    1.本周PSP 2.本周进度条: 代码行,博文字数,用到的知识点 3.累计进度图 3.1累计代码折线图 3.2累计博文字数折线图 4.本周PSP饼状图

  9. vim编辑器配置及常用命令

    最近工作不安分, 没有了刚入行时候的锐气, 不知道什么时候开始懈怠起来, 周末在电脑旁边看新闻, 搞笑图片, 追美剧, 一坐就是一天, 很是空虚. 我需要摆脱这种状态, 正好想学习一下安卓底层, An ...

  10. java数据结构-HashMap

    一直以来似乎都有一个错觉,认为map跟其他的集合类一样继承自Collection,其实不然,Map和Collection在结构层次上是没有任何关系的,通过查看源码可以发现map所有操作都是基于key- ...