逆向工程 ( Reverse Engineering ) 是透過成品來分析出它的功能、行為與結構,掌握他的原理。而代碼逆向工程 ( Reverse Code Engineering ) 則是應用在代碼上。事實上,目前這些術語的使用還沒有比較統一的規範,像是 RE 、 RCE 、逆向工程、逆向分析等;所以我們在這邊就統一使用 RE 吧。
在 RE 中大致可以分為兩種方法 : 靜態分析與動態分析。
既然在上面看到這兩個方法,那我們來安裝這些工具來準備分析軟體吧 !
https://github.com/Dinlon5566/IT_Reverse_Engineering/blob/main/Dx02/HelloWorld_x64.exe
利用 VC++ x64 寫一份會呼叫 windows API 來顯示視窗的執行檔 ( .exe )。
https://github.com/hasherezade/pe-bear-releases/releases
由於 exe 檔案是屬於 PE 檔 ( 這部分之後會提到 ) ,所以可以使用 PE 觀察工具來分析程式的結構。
開啟後可以在這個視窗看到許多分區,其中 :
透過靜態分析可以在不執行程式得情況下來得到很多資訊,是執行動態分析時的重要參考資料。
這個工具將來會很常用到,特點是操作起來挺直觀的,而且操作與 ollydbg 幾乎一樣。但是安裝起來沒有那麼直觀。先到 release資料夾開啟 [ x96dbg.exe ] 安裝好後再開一次,點選 x64 ( 或 x32 )就可以了。雖然有更好的工具 ( IDA等 ) 可以選擇,但是要理解概念的話我覺得利用這個工具會比較好。
這些窗口中 :
下一篇將會使用 x64dbg 來進行分析執行檔,並熟悉軟體操作與檔案概念。