【X03】re的入门之非常规RE&pwn的逆向

Irregular Reverse Engineering

  • Any format file with any architecture
    • lua/python/java/lua-jit/haskell/applescript/js/solidity/webassembly/etc..
    • firmware/raw bin/etc…
    • chip8/avr/clemency/risc-v/etc..
  • Open IDA -> binary file
  • How?

Find Tools

  • Binary Parser
  • Disassembler
    • disassembler is necessary
  • Tracer
    • disassembler + tracer = debugger
    • tracer replay
  • Debugger
  • Decompiler
    • 得之我幸,失之我命

Preparation

  • read docs
  • toolchains
  • tutorial
  • Example:
    • haskell

Find Binary Parser

  • Google
  • parse the unknown binary format
  • firmware
    • rebase the binary
    • recover the symbol table
  • other unknow binary formats
    • use strings/binwalk etc.
    • find any clues you can
    • use IDA pro/radare2/binary.ninja interface. e.g. IDA loader

Find Disassembler

  • google “xxx disassembler/xxx IDA etc.”
    • AVR IDA
  • human disassembler
  • IDA Pro/radare2/binary.ninja interface
    • e.g. IDA processor

Find tracer and debugger

  • google
  • tracer
    • try official tracer?
  • debugger
    • gdb-multiarch
    • qemu
    • emulator
    • trace replay
  • Example
    • solidity

Start regular reverse engineering

How to audit assemble code

  • find code pattern
    • loop, if else, etc.
  • read assemble block by block

Challenges

  • Plaid CTF 2018 apl
  • SECCON CTF 2017 printf_machine
  • CodeGate CTF 2017 easy_serials
  • *CTF 2018 wasm
  • Nuit du hack CTF Quals 2018 AssembllyMe
  • QWB CTF qual 2018 re
  • N1CTF 2018 patient

 

PWN 题的逆向分析策略

常见漏洞简介

  • 熟悉常见漏洞
    • 现在 Wiki 、 题目中熟悉
  • bof
  • Integer Overflow
    • 无符号转有符号 MMACTF 2016 shadow
    • 整数加减乘除,如 malloc(size * 2) (pwnhub.cn calc)
  • fmt str
  • UAF
  • 逻辑漏洞

逆向技巧

  • 还原结构体、接口、类
  • 控制流分析
  • 数据流分析

分析策略

  • 文件较小时,对整个目标文件进行控制流分析,做到接近分析出源码
  • 文件较大时,关注数据流和其执行流
  • 还原结构体、接口、类

关键数据结构分析

  • 还原结构体
  • IDA Strcuture 窗口 Insert

控制流分析

代码识别

数据流分析

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值