美文网首页
逆向基础工具

逆向基础工具

作者: 77168ddcf2c6 | 来源:发表于2018-07-19 10:39 被阅读84次

mac工具

效率工具

代替默认的Terminal,提供了很多高级设置,例如自动补全,高亮等等

自定义主题,git显示,Tab补全等

从finder中打开终端并且自动切换到当前目录

工作流软件,快速打开软件,添加自己的工作流。参见bestswifter的博客

实用工具

MacOS的包管理器,快速安装各种工作

提供了很多能与iOS交付的工具,例如端口映射查看日志,安装程序

逆向工具

查看文件的结构,代码签名

多平台,多架构支持的反汇编框架

将汇编指令转换成Hex机器码

一款开放源代码的逆向工程平台

安装app或者ipa包

查看越狱设备的文件目录

dumpdecrypted 是一个开源的砸壳工具,它会注入可执行文件,动态的从内存中dump出解密后的内容。使用教程请看这里

class-dump 是一个用于从可执行文件中获取类,方法和属性的工具,上述源代码在导出ARMV7架构的时候会出问题,原因是在读取类没有分64和32位系统进行不同的操作,最新的fix bug的源码在AloneMonkey/Class-dump

Reveal 是一个用户动态查看APP UI层级架构的工具,可以在开发过程中动态调试修改程序的样式,也可以注入第三方APP以查看应用的界面结构。
有两种方式可以使用Reveal,第一种是正向开发的时候通过pod的方式加入Reveal

target 'RevealAPP' do
    pod 'Reveal-SDK', :configurations=> ['Debug']
end

第二种方式是越狱设备注入Raveal,可以调试所有的APP,在越狱设备,可以将RevealServer重命名为libReveal.dylib,以及新建libReveal.plist文件,里面输入需要调试的APP的BundleID

{
   Filter = {
         Bundles = (
             "com.lemon.example",
         );
   };
}

将以上两个文件复制到越狱设备的 /Library/MobileSubstrate/DynamicLibraries/目录下,这样可以通过Cydia Substrate的MobileLoader在程序运行的时候通过dyld_insert_libraries命令将自己加载到目标APP的Document目录下,然后查找上述路径的所有的plist,找到对应的Bundleid之后,通过dlopen()函数将动态库注入到APP中

越狱设备工具

  • cydia

cydia是一个可以让用户在越狱设备上面安装各种插件的软件管理器,相当于越狱设备的APPStore

  • SSH

SSH是一种网络协议,用于计算机之前的加密登录,他存在多种实现,因为不同系统使用的越狱工具不一样,所以需要根据iOS的版本来进行设置。
iOS8 & iOS9 ,可以通过安装OpenSSH来登录,安装方法:1.在cydia中搜索OpenSSH并且安装,安装完成之后打开Wifi设置界面,打开当前连接的wifi,获取ip地址(假设是192.168.2.21),然后打开终端,输入以下命令后回车: ssh root@192.168.2.21 2.稍等片刻之后输入yes并且回车,然后输入默认密码alpine完成登录。(当远程主机的公钥被接受以后,他会保存到mac的$HOME/.ssh/known_hosts文件中,再次连接这台主机时,系统就会认出他的公钥已经保存到本地,从而跳过警告部分,直接提示用户输入密码。)
iOS10.0 & iOS10.2 ,越狱工具yalu内置了一个相对轻量级的工具dropbear,供用户直接使用。安装方法:1.在cydia中搜索MTerminal和adv-cmds,然后运行ps aux | grep dropbear 命令。如果有输出内容,则代表默认支持usb连接,如果这是要连接,在mac上转发端口即可登录,命令如下:
iproxy 22 2222
ssh root@localhost -p 2222
如果要通过wifi连接,需要在终端设备执行一下命令
/usr/local/bin/dropbear -F -R -p 22
然后在mac上直接SSH登录
ssh root@192.168.2.21

查看越狱设备的文件目录

cydia substrate是一个框架,允许第三方开发者在越狱系统方法里面打一下运行时补丁和扩展一些方法,是开发越狱插件的基石。cydia substrate主要包含三个模块,分别是MobileHooker,MObileLoader,Safe mode。
MobileHooker 用于替换系统或者应用的方法,它提供了MSHookMessageEX 来hook OC的函数,MSHookFunction来hook C函数。
MobileLoader 用于将第三方动态库加载到目标应用里面。首先它会通过dyld_insert_libraries将自己加载到目标程序里面,然后通过查找/Library/MobileSubstrate/DynamicLibraries/目录下的所有plist文件,如果plist文件里面包含有当前应用的BundleID,那么就会通过dlopen()函数打开对应的dylib文件。
safe mode 当插件加载导致了系统奔溃时,mobilesafety会捕捉到这个异常并且让设备进入安全模式。找到最近安装的导致奔溃的插件并且卸载即可退出安全模式。

  • adv-cmds

提供ps命令

  • appsync

让系统不再校验应用的签名

  • scp

对于iOS10以后的版本,使用yalu越狱之后就没有scp这个工具了,可以在网上找到scp的源代码使用iFunBox复制到设备的/usr/bin目录下,然后通过ssh访问该目录,执行以下命令:
cd /usr/bin
ldid -S scp
chmod 777 scp

提供便利的LLDB调试命令
安装教程

  1. brew install chisel
  2. 如果不存在~/.lldbinit文件那就创建一个文件,并且将以下代码放到该文件中
    #~/.lldbinit
    ...
    command script import /usr/local/opt/chisel/libexec/fblldb.py
  3. 重启Xcode或者在LLDB中输入 command source ~/.lldbinit命令在加载脚本。

安全工具

该工具是从class-dump fork出来的,用于dump出APP中的类和方法并且生成混淆代码,将生成的混淆的宏定义添加到项目的pch文件中,达到混淆所有的类和方法的作用

相关文章

  • 逆向基础工具

    mac工具 效率工具 iTerm2 代替默认的Terminal,提供了很多高级设置,例如自动补全,高亮等等 oh-...

  • 逆向基础分析工具

    软件安全研究核心步骤可分为:数据采集(硬件、网络、文件)、数据预处理(协议逆向)、逻辑分析(模型构建)、问题发现(...

  • ios ipa 加固/ 逆向工程

    一、逆向工具 逆向的方式有很多,最基础的就是 class-dump(可以查看所有头文件),深度的可以用 Hoppe...

  • iOS逆向目录

    越狱最新进展 一.逆向基础 iOS逆向基础01-越狱iOS逆向基础02-编译&调试iOS逆向基础03-符号表iOS...

  • iOS 逆向学习

    前言 本文主要对iOS逆向所需要的工具或者基础做一个大概的总结,如果有什么遗漏或者错误,欢迎读者指出。想要进行逆向...

  • iOS逆向(四)-APP砸壳和class-dump工具的使用

    逆向工具集的安装和使用 iOS 逆向工程的工具分类 检查工具如:Reveal(界面分析工具)、tcpdump(抓包...

  • app逆向技巧

    目录: 一、多头项目的特点: 二、逆向思路 1、能否判断是否注册 2、逆向过程 三、逆向工具 1、抓包工具 2、测...

  • 零基础入门Android逆向视频课程

    教程目录: 第一章:Android JAVA 逆向基础 课时1 :Android环境配置与常用工具介绍 课时2 :...

  • iOS逆向, 基础工具之Theos

    Theos是一个越狱开发包, 也是逆向中比较重要也是最有意思的工具, 它可以让你的想法变成现实, 编写自己的twe...

  • iOS逆向, 基础工具之dumpdecrypted

    我们可以正常dump系统APP的头文件, 但是App Store下载的应用是加密后, 无法直接用class-dum...

网友评论

      本文标题:逆向基础工具

      本文链接:https://www.haomeiwen.com/subject/mwwzpftx.html