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. [JSON].toString()

    语法:[JSON].toString() 返回:[String] 说明:获取[JSON]实例的字符串结果 示例: <% jsonString = "{div: 'hello word! ...

  2. 平衡的括号 (Parentheses Balance UVA - 673)

    题目描述: 原题:https://vjudge.net/problem/UVA-673 题目思路: 1.水题 2.栈+模拟 3.坑在有空串 AC代码 #include <iostream> ...

  3. 【转】Angular.js VS. Ember.js:谁将成为Web开发的新宠?

    本文源自于Quora网站的一个问题,作者称最近一直在为一个新的Rails项目寻找一个JavaScript框架,通过筛选,最终纠结于 Angular.js和 Ember.js. 这个问题获得了大量的关注 ...

  4. Sublime Text 插件推荐——for web developers

    楼主向高大上的: web front-end development engineer (好吧,google就是这样翻译的 ^_^)们推荐 ST 插件,在此抛砖引玉: NO.1 :Emmet (原名: ...

  5. rsync+inotify实现实时同步,自动触发同步文件

    本文参考来自:http://chocolee.blog.51cto.com/8158455/1400596 我的需求和他的略有不同,同时做了一下更改,如下: 需求:两台机器相互为主备,搭建相同的两个服 ...

  6. 11.24Daily Scrum(2)

    人员 任务分配完成情况 明天任务分配 王皓南 实现网页上视频浏览的功能.研究相关的代码和功能.996 数据库测试 申开亮 实现网页上视频浏览的功能.研究相关的代码和功能.997 实现视频浏览的功能 王 ...

  7. JS设置cookie,删除cookie(引)

    JS设置cookie,删除cookie(引) js设置cookie有很多种方法. 第一种:(这个是w3c官网的代码) <script> //设置cookie function setCoo ...

  8. Linux上安装MySQL - 12条命令搞定MySql

    从零开始安装mysql数据库 : 按照该顺序执行 :  a. 查看是否安装有mysql:yum list installed mysql*, 如果有先卸载掉, 然后在进行安装; b. 安装mysql客 ...

  9. LintCode-88.最近公共祖先

    最近公共祖先 给定一棵二叉树,找到两个节点的最近公共父节点(LCA). 最近公共祖先是两个节点的公共的祖先节点且具有最大深度. 注意事项 假设给出的两个节点都在树中存在 样例 对于下面这棵二叉树 LC ...

  10. 3dContactPointAnnotationTool开发日志(十六)

      调了一上午才发现是把下面这个函数: private float DivideTriangle(int []triangle,out int []outTriangle,List<Vector ...