逆向学习第零篇之工具集

记录逆向工程里需要用到的工具

Posted by Anyeler on January 12, 2019

前言

在逆向工程中,将会使用到许多效率工具和分析工具。这篇文章记录逆向需要的相关工具,大致分为 移动设备工具mac电脑工具这两大类。

工具箱

在 iOS 逆向分析流程中,需要使用: 解密工具class-dumpCycriptRevealCharlesHopperIDA LLDBXcodeTheos 等工具。

iPhone工具

这一类工具包括在 iPhone 越狱设备里安装的插件和APP,所以这就涉及到 iOS 的系统版本,本人使用的是 iOS 10 的设备。

  • Cydia:越狱后的应用商店
  • Cydia Substrate:工具提供给越狱设备注入和 hook 指定的C和OC方法
  • MTerminaliOS终端APP,通过 Cydia 商店 里搜索安装
  • adv-cmdsiOS终端APP的进程相关指令扩展集,通过 Cydia 商店 里搜索安装
  • shell-cmdsiOS终端APP的Shell指令扩展集,通过 Cydia 商店 里搜索安装
  • system-cmdsiOS终端APP的指令扩展集,通过 Cydia 商店 里搜索安装
  • Apple File Conduit 2:安装后才可以访问系统文件,通过 Cydia 商店 里搜索安装
  • AppAync:避免系统验证APP签名,通过 Cydia 商店 里搜索安装
  • Filza:文件管理器,可代替 iFile,主要用于方便查看系统文件,通过 Cydia 商店 里搜索安装
  • rsync:远程拷贝文件指令,iOS 10 用于替代 scp 指令,通过 Cydia 商店 里搜索安装

macOS效率工具

这一类工具主要用于提高使用效率,在逆向工程中也扮演着重要的角色。

  • iTools:方便查看 iOS 端的系统文件,可在官网下载安装
  • iTerm2:方便快捷的终端,用于代替 Terminal
  • Homebrew:包管理工具,安装其他 macOS 端的插件,通过 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 安装
  • libimobiledevice:提供了 macOSiOS 的交互工具,通过 brew install libimobiledevice 安装
  • tree 查看当前目录结构树的命令行工具,通过 brew install tree 安装
  • MonkeyDev:基于 iOSOpenDev 为基础研发的非越狱插件开发集成神器

macOS逆向分析工具

大部分逆向分析工具都是命令行工具,只有一小部分是有图形化界面。

  • dumpdecrypted:这是一个解密执行文件工具,原理是动态注入后,dump 内存中解密后的代码部分
  • Clutch:这是一个解密执行文件工具,原理是通过调用 posix_spawnp 生成一个进程,然后暂停进程后,并且dump 内存中解密后的代码部分
  • class-dump:是一个在执行文件中获取类、方法和属性信息的工具。
  • Reveal:这是一个用于查看程序界面结构和调试界面的工具。
  • Hopper:支持 MacOSLinux 的反汇编工具。
  • IDA:支持 WindowsMacOSLinux 的反汇编工具。
  • Theos:注入、拦截函数工具
  • insert_dylib:是一个命令行指令,可对执行文件dyld进行汇编注入、修改静态文件
  • optool:是一个命令行指令,可对执行文件dyld进行汇编注入、修改静态文件
  • JTool:查看文件结构和代码签名
  • Capstone:支持多平台和多架构的反汇编框架
  • Keystone:将汇编转化为 Hex 机器码的汇编框架
  • Radare2:开放源代码的逆向工程平台
  • Mobiledevice:用于安装APP或ipa包的工具

逆向编程源代码框架

利用这些源代码框架可以注入到目标APP中,以便调试修改。

  • Reveal:这是一个用于查看程序界面结构和调试界面的工具,需要注入对应的框架使用。
  • Cycript:允许开发人员使用 Objective-C++JavaScript 语法的混合使用,查看以及修改运行时APP的内存信息工具
  • FishhookFaceBook 开源框架,用于注入和修改C函数,非越狱设备也可使用。
  • Method Swizzle:利用 Runtime 机制去 hookObjective-C 的方法

总结

目前,越狱的大环境并不是很好。而且前几天,Cydia 商店 已经宣布关闭。iOS 设备能提供完美越狱的还停留在 iOS 9,能越狱的版本越来越少。