Re学习目录

有点乱,之后做一下整理

常见加密

工具

IDA:FindCrypt IDA 7.0版本安装查询加密算法的findcrypt3脚本插件的详细步骤

PEID:KANAL(Krypto ANALyzer) (PEiD自带)

各类加密解析:逆向中常见的Hash算法和对称加密算法的分析

特征值识别

注意特征值可能会改变

TEA | AES | DES | BlowFish | MD5 | SHA1 | CRC32 | Base64

特征算法识别

RC4 | Base64 | TEA | AES | DES | MD5

第三方库识别

  • 字符串报错

  • 函数签名识别

    Load File -> Flirter file

  • Diff二进制对比识别

逆向常见方法

符号执行

  • python虚拟机:python的库之间会起冲突,比如angr会修改z3,那么需要一个python的虚拟环境
  • z3:一个泛型约束求解的东西
  • angr:强大的模拟执行工具,有些z3不能解的这个可以解
  • 去平坦化(OLLVM):编译原理相关,可以试试用脚本还原 (利用符号执行去除控制流平坦化

Pin插桩

貌似国赛都没考过,但是可以方便分析,主要涉及一些工具和hook编程

混淆和保护

一般就是花指令,CMS、OLLVM、VM逆向、反调试等

花指令总结

有些脚本可能会临时找

WebAssembly

wasm官网

一步步学习Webassembly逆向分析方法

反调试

详见:windows反调试笔记.md(API)、 CTFer成长之路-Nu1L战队/从0到1 、CTFWiki

Windows

主要利用的是 API 断点检测 其他技巧

Linux

ptrace开启两个进程(MRCTF2021有涉及)

游戏逆向

一般是Unity游戏的逆向,Unity又是基于C#编写,所以静态分析会使用类似Dnspy等工具

修改内存的话是CheateEngine,还是比较主流的修改器制作

高级语言逆向

一般有:python Golang Rust

DUMP内存

万能的脱壳方法,加壳的程序在运行时肯定是自身脱壳的,所以内存的程序是已经脱了壳的

  • 火绒剑 PC_Hunter windows任务管理器

Re工具

反汇编

万能

  • ghidra:美国NSA出品,能搞定plt混乱等

IDA相关

  • ida_6.8 :适合32位系统(windowsXP)
  • ida_7.0:主流
  • ida_7.5:最新版,增加一些过混淆,异构程序F5

IDA其他常用的一些插件

PLTResolver - 恢复被打乱的PLT,方便逆向
IDA FLIRT Signature Database – 用于识别静态编译的可执行文件中的库函数
Find Crypt – 寻找常用加密算法中的常数(需要安装 yara-python)
IDA signsrch – 寻找二进制文件所使用的加密、压缩算法
Ponce – 污点分析和符号化执行工具
snowman decompiler – C/C++反汇编插件(F3 进行反汇编)
CodeXplorer – 自动类型重建以及对象浏览(C++)(jump to disasm)
IDA Ref – 汇编指令注释(支持arm,x86,mips)
auto re – 函数自动重命名
nao – dead code 清除HexRaysPyTools – 类/结构体创建和虚函数表检测
DIE – 动态调试增强工具,保存函数调用上下文信息
sk3wldbg – IDA 动态调试器,支持多平台
idaemu – 模拟代码执行(支持X86、ARM平台)
Diaphora – 程序差异比较
Keypatch – 基于 Keystone 的 Patch 二进制文件插件
FRIEND – 哪里不会点哪里,提升汇编格式的可读性、提供指令、寄存器的文档等
SimplifyGraph – 简化复杂的函数流程图
bincat – 静态二进制代码分析工具包,2017 Hex-Rays 插件第一名
golang_loader_assist – Golang编译的二进制文件分析助手

安卓反汇编

  • jadx-gui:安卓逆向静态审计
  • jeb
  • dex-tools
  • apktoolbox:smail反编译与编译,方便修改代码

动态调试

windows

  • Olldbg:经典,插件多,但是只能调试32位
  • x32/x64dbg:和od差不多,但是能调试的64位,插件较少
  • windbg:windows内核调试
  • CheatEngine:常见于游戏逆向

Linux

  • gdb
    • gdb各种插件,pwngdb

Android

  • android_killer:经典apk动调工具
  • android_studio:开发调试

Others

  • qemu或者docker挂上ida_server调

查壳

Windows

  • PEID
  • DIE
  • EXEINFO

查看WIN的PE文件结构

  • LordPE
  • Stud_PE

Linux

  • checksec(详细参考pwn中pwntools安装)

脱壳

  • unpack -> execute

    直接将程序代码全部解压到内存中再继续执行程序代码

  • unpack -> execute -> unpack -> execute …

    解压部分代码,再边解压边执行

  • unpack -> [decoder | encoded code] -> decode -> execute

    程序代码有过编码,在解压后再运行函数将真正的程序代码解码执

  • UPX

  • PECompat

  • ASpack

读书

参考链接

Hacking Tools搜罗大集合

IDA 7.0版本安装查询加密算法的findcrypt3脚本插件的详细步骤

利用符号执行去除控制流平坦化

IDAGolangHelper

IDA_Signsrch

frida入门总结

wasm官网

一步步学习Webassembly逆向分析方法