不記錄彷彿沒有學過。。還是記錄一下,雖然花時間,但是重新看起來也容易。
//預備
靜態分析:不運行目標程序,分析代碼
動態分析:運行時分析
靜態分析:
1、閱讀反彙編代碼
2、提取可執行文件中的字符串,分析使用了哪些單詞
3、二進制編輯器查看可執行文件內容
作者認爲的逆向工程四大件:
二進制編輯器,計算器,反彙編器,調試器
推薦的兩種二進制編輯器:
Stirling(日語)
BZ Editor(大文件處理)
我安裝的兩種二進制編輯器:
Stirling(日語)
Hex Editor Neo
PE格式:exe可執行文件的二進制格式?
IDA:IDA 7.0 Freeware
https://www.hex-rays.com/products/ida/support/download.shtml
分析彙編語言,看流程圖分析軟件
//實驗目的
拿到文件 wsample01a.exe,我們都能做些什麼?
1、二進制編輯器出場,不運行,二進制看看這個exe先
字符串:MESSAGE,Helllo!Windows
文件路徑:C:\Documents and Settings\XPMUser\My Documents\Visual Studio 2010\Projects\wsample01a\Release\wsample01a.pdb
字符串:KERNEL32.dll,MessageBoxW
得到這三個有用信息。
2、反彙編工具 IDA出場,分析流程圖,具體程序邏輯,知道程序到底要幹什麼,可以利用這個程序乾點什麼其他的事情
這裏書上寫的雙擊wWinMain這個函數,木有找到,但是找到了這個sub_401000函數,發現是完全一樣的。
找到這個程序分支,這是彙編語言的控制流圖。發現如果傳入參數2012,會有不同的運行結果。
無參數:
有參數:2012
我們發現了通過傳遞2012這個參數,程序的顯示結果會發生變化,這很重要。我們在沒有源代碼的情況下,搞清楚了程序的行爲。這就是逆向工程。
關於彙編和源代碼後面會繼續學習。