iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 16
0
Security

資訊安全的美味雜炊系列 第 16

[Day16] - Rev 0x1 介紹

  • 分享至 

  • xImage
  •  

Day16 - Rev 0x1 介紹

前言

  • 接下來的五天,筆者會介紹逆向工程相關的知識與技術

甚麼是逆向

  • 程式設計師在寫程式的時候,通常都是用高階語言(ex: C, Java...),接著透過編譯器(Compiler)編成二進制的機器碼檔案(Machine Code),電腦才能執行
    • windows上的執行檔(.exe)
    • linux則是binary(elf)
  • 而逆向工程就是將編譯過的二進制檔案,透過工具(接下來會介紹),試著找出原本執行檔的程式碼,理出邏輯。

分析程式

動態分析

  • 跟著跑程式,接著分析暫存器的值推測程式邏輯
    • 可以下斷點,看看在條件判斷之前獲之後的值是多少

靜態分析

  • 直接用逆向工具看程式碼,查看程式邏輯
    • 瘋狂的推測、預測

補丁Patch

  • 透過理解程式邏輯,我們可以改變流程和架構,改變程式的運作方式,==重新在製作一個破解檔案==

學了能幹嘛

  • 破解付費軟體
  • 研究病毒、惡意程式
  • 寫遊戲外掛
  • ...

常見工具介紹

IDA pro

  • https://www.hex-rays.com/products/ida/

  • 逆向工具霸主,不可或缺的好工具

    • 付費版:可透過F5還原出高階語言的程式碼
      • 很貴,而且很封閉
    • 免費版:可看到逆向工程後的組合語言
  • 示意圖

Ghidra

  • Ghidra 是由 NSA 研發並且在2019年3月6號於RSA會議中,由NSA發布的免費開源逆向分析工具
    • 具備有反組譯、反編譯的能力
  • 介面由Java開發,也就是得裝Java才能執行
  • 我都念"嗨爪"
  • 不須付費即可逆向出高階語言
  • Github
  • 官網
  • 示意圖

x86, x64Dbg

  • https://x64dbg.com/#start

    • 開源軟體
  • windows好用的逆向工具

  • OllyDBG功能、介面相似,不過OllyDBG已經很久沒有更新,如果還有在用OllyDBG可以調曹看看

  • 可以逆向.dll, .exe

  • 可以動態分析

    • 下斷點、查看、更改暫存器的值、觀察stack裡的訊息
  • 示意圖

HxD

  • https://mh-nexus.de/en/hxd/
  • 免費的工具,可以把執行檔以16進位表示
    • 裡面有搜尋或替代功能,通常會先去逆向工具找出邏輯,在透過這個程式修改
    • 有搜尋、替代的功能,用起來蠻方便的
  • 示意圖

上一篇
[Day15] - XXE
下一篇
[Day17] - Rev 0x2 組合語言
系列文
資訊安全的美味雜炊30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言