如何成為駭客 – 逆向工程 (Reverse Engineering) 篇

by iok
發佈日期: 更新日期: 8.6k 人次瀏覽
how-to-reverse-engineering

逆向工程 (Reverse Engineering) 是從剖析成品的過程,從中得知材料的功能規格,及如何組合。在生活中,對逆向工程技術,我們並不陌生。

比方說,你在家裡嘗試沖出跟連鎖店相同風味的咖啡。或是,自己在外地去菜市場買菜,做出有媽媽味道的料理。

在駭客領域中,逆向工程技術扮演不可或缺的角色。尤其是惡意程式分析、漏洞挖掘與軟體破解領域。由於缺乏程式原始碼,逆向工程技術就變成理解惡意程式或軟體產品的唯一手段。

有些從事資安工作的朋友們,總說逆向很難,視逆向工程技術為畏途。但是,

勤學似春起之苗,不見其增,日有所長。

輟學如磨刀之石,不見其損,日有所虧。

陶淵明

就像陶淵明說的,一點一滴學習,努力堅持,總有一天會開花結果。

接下來,文章會跟大家分享學習逆向工程技術時,需要掌握的知識與工具。

組合語言

組合語言(簡稱組語) 是一種低階的程式語言。依不同 的電腦 CPU 架構,組語寫法亦不同。逆向工程第一步,常將編譯好的軟體程式進行反組譯。由於 Intel CPU 市佔率高,逆向工程最常遇到 Intel x86 組語。不過,近幾年大量 IOT 裝置聯網,往後接觸 ARM 組語的機會也會不少。

反組譯程式畫面

推薦新手從 Intel x86 組語入門,網路學習資源豐富,亦可選擇坊間中英文出版書籍,進行學習。

學習資源:

IDA Pro

Hex-Rays 公司開發的 IDA Pro 軟體,在逆向工程領域市佔率極高。類似工程製圖的 AutoCAD 或是美術設計的 PhotoShop。

IDA Pro 的功能可針對二進制執行檔,進行靜態與動態分析。支援市面上多種 CPU 與作業系統產生的執行檔,如 EXE、DLL、ELF 執行檔等。常用於分析惡意程式與弱點挖掘,但無法分析 Office 文件、PDF 文件。

而 IDA Pro 是付費軟體。目前 Hex-Rays 公司有 3 個版本的 IDA,IDA Free、IDA Home 與 IDA Pro。版本差異部分,可參閱 Hex-Rays 公司的說明網頁

IDA Pro 最讓人津津樂道的是提供 Decompiler Plug-in,可將執行檔反編譯出的組合語言,再翻譯成類似 C 語言的程式語法。然而,這樣的翻譯結果雖無法 100 % 還原,但已能讓分析人員加速理解執行檔的功能。翻譯效果,可參閱 Hex-Ray 公司的說明網頁

學習資源:

x64dbg

我認為 x64dbg 是 Windows 作業系統最好用的除錯器了。

優點如下:

  • 操作介面簡單、易上手。
  • 除錯功能豐富。
  • 免費,且軟體原始碼公開,採用 GPL 授權。
  • 開發團隊活躍,軟體更版頻繁。
  • 同時支援 除錯 32 位元與 64 位元的 Windows EXE、DLL。

主功能的操作介面 (CPU) 由 5 個區域組成:反組譯區(Disassembly View)、暫存器區(Register View)、資料傾印區(Dump View)、監看區 (Watch View)與 記憶體堆疊 (Stack View)。

先前操作過除錯程式的人員,對這個介面應不陌生。

x64dbg-screenshot
x64dbg 主功能操作界面

學習資源:

相關文章

留言