由於我吃了不該吃的東西導致全身過敏,專心研究之類的有點困難,所以今天輕鬆點來介紹一些在 RE 時時常用的工具吧。以下評論都是個人觀感,使用與否請看個人使用習慣來做決定。
先列出一份列表,等等來詳細介紹。
https://notepad-plus-plus.org/downloads/
這個應該是最常見到的編輯器了,好處是透過外掛可以使它的他的功能很多。如果要編輯二進位資料只要在外掛欄使用 Hex-Editor ,就可以方便的檢視這些資料,不過他在編輯上的方便性沒那麼好,一些初始設定會使複製貼上沒有那麼直觀,一不小心就會讓空白區間或空間出現錯誤,若是要編輯的話推薦下面這個工具。
它算是對二進位資料特化的編輯器。介面上有許多貼心的功能,像是反白的區塊與長度等。編輯上也算挺方便的,對於會變更長度的操作也會有提醒功能 ( 可選 ),不必擔心會把檔案搞到偏移。
基本功能可以直接選擇編碼格式與排版。其他的進階功能有結構圖、checkSum、安全抹除等。能開啟程序記憶體、磁碟與映像檔,是非常方便的工具。
http://wjradburn.com/software/
一個還不錯的 PE 閱讀器,可以看到檔案的位元與結構描述。在開始時可以快速的檢閱檔案的大致結構以此進行分析,在切換位置格式更是方便,有時候不想計算 RVA <-> VA,就用這個東西實現快速轉換。不過無法進行編輯,開啟中的檔案也不能透過其他程式編輯 ( 卡使用中 )。
這個軟體在功能上沒有其他那麼方便,它主打著是可以快速編輯 PE 中的數值,但可惜的是不會因為改了一個數值而把關聯的數值改合理,所以常常不小心改完發現不能執行了。
https://github.com/hasherezade/pe-bear-releases
漂亮的逆向分析工具,在使用上很有設計感。至於功能該有的都有,快速顯示的資料也都能清晰地看到。缺點是沒辦法方便觀察二進位資料,所以推薦與 PEView 同時使用。
我稱它為過去的王,以前的書或是教學基本上都是使用這份軟體來進行分析。隨然還是被 IDA 打爆,但它免費,而且調適功能齊全。我們使用的 x64dbg 很多功能與快捷鍵是由這邊來的。
不過最後一次更新也快 10 年前,而且只能操作 x32 PE 檔案,故不推薦使用。
熟悉的朋友,我最常使用的工具。操作直觀、功能方便,自動顯示暫存器數值也很是方便。許多人就算從 ollyDbg 跳過來也不用重新適應。調適 EXE 與 DLL都很方便。不過字體很小,但調了版面會變奇怪,有點尷尬的問題。
Pro : https://hex-rays.com/ida-pro/
Free : https://hex-rays.com/ida-free/
我沒錢,所以只能用免費版QQ
由於我使用的次數很少,但是 F5 功能超強,只要按一下就會幫你編譯成類似C的格式。
除此之外流程圖的功能讓工作變得清晰,不用在慢慢畫圖整理了。
美國國安局( NSA )發布的一款逆向工具,過去被用於執行安全工作。在反編譯上功能強大但不直觀。需要花一點時間來學習適應。主打腳本功能,內建數百個而且有很強的擴展性。在社群有活耀腳本開發。而且可以存檔 !
在 Windows SDK 中
這個東西功能不錯但超難用 ( 要學很久 ),尤其是操作要打指令就勸退了一堆人。不過可以直接從核心原始碼等級的調適使它非常適合用於核心的調適( 我是沒用那麼深過 ) 。
https://github.com/petoolse/petools
他的功能很多樣導致我很難決定要放在哪一區所以排到了這邊。他號稱是逆向工程瑞士刀,主要可以捕捉現有的程序來進行各種操作,主要會使用到 Dump 來進行記憶體的轉存 ( 把記憶體的檔案存起來 ),以便之後調適。
https://learn.microsoft.com/en-us/sysinternals/downloads/process-explorer
把它當成工作管理員,但是升級在升級的版本。可以看到關於程式與系統的各種資,是找尋 PID 的好幫手。包括引用的 DLL 與 Thread 等。問題是很容易在編輯或注入被監看的程式的時後崩潰。
https://learn.microsoft.com/en-us/sysinternals/downloads/debugview
在開發時可以配合 Debug API 來觀察程序狀態,有時候會在注入程序裡寫上輸出信息來觀察是否有成功注入,在進行確認時事挺方便的工具。