iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 27
1
自我挑戰組

到處挖坑,現在該來還(填)願(坑)ㄌ !!!系列 第 27

『 Day 27』拜託別 Pwn 我啦! - 常見的工具 (下)

gdb

  • 動態分析:

    • 追蹤每⼀行組語,也可在中途改變流程
  • 安裝:

    • sudo apt install gdb
  • 使用:gdb <執行檔>

  • 介紹

gdb-peda

  • gdb的擴充

  • 安裝:
    sudo apt install git
    git clone https://github.com/scwuaptx/peda.git ~/peda
    echo "source ~/peda/peda.py" >> ~/.gdbinit
    cp ~/peda/.inputrc ~/

  • 使用:

    • vmmap

      • 查看⽬前程式的記憶體分佈,以及 rwx 權限設定
    • run

      • 執行
      • 可簡寫成r
    • disassemble <func>

      • 反組譯
      • disassemble 敲敲兩下tab,會列出程式用到的所有func
      • 可簡寫成disas
    • break * <0x809030>
      break * <func_name>

      • 設置斷點
      • 可簡寫成b
      • * 用func_name可省略
    • info breakpoint

      • 查看已設定斷點
      • 可簡寫成i b
    • ni

      • 下一個指令
      • func直接執行完畢
      • 可簡寫成n
    • si 

      • 下一個指令
      • 逐步執行func中的指令
      • 可簡寫成s
    • continue

      • 執行到斷點
    • set * address = value
      set $register = value

      • 將address中的值設成value
      • * 默認4bytes
        • 可換成
          {char} 1byte
          {short} 2bytes
          {long} 8bytes
    • x/[Size Modifiers][Format] <0x400686>

      • 印出記憶體資料
      • [Size Modifiers]
        • b(byte)/1 byte (8-bit)
        • h(Halfword)/2 byte (16-bit)
        • w(Word)/4 byte (32-bit)
        • g(Giant Word)/8 byte(64-bit)
      • [Format]
        • o octal
        • x hexadecimal
        • t binary
        • s string
        • i 組合語言
      • info registers
        • 顯示所有暫存器
        • info registers eax
          • 顯示eax暫存器
          • 可簡寫成i r eax
      • p <register>
        • 查看某暫存器
      • q
        • 離開
    • j *<0x809030>

      • 跳到某個位址 (jump)

radare2

  • 動態/靜態分析
  • 使用:r2 <執行檔>
  • 安裝:
    • git clone https://github.com/radare/radare2.git
      cd radare2
      sys/install.sh
  • Github
  • 教學

上一篇
『 Day 26』拜託別 Pwn 我啦! - 常見的工具 (上)
下一篇
『 Day 28』拜託別 Pwn 我啦! - Protection 保護機制
系列文
到處挖坑,現在該來還(填)願(坑)ㄌ !!!30

尚未有邦友留言

立即登入留言