一直不懂逆向,最近剛好不忙,於是學習逆向,用來做筆記,順便和大家分享交流.
參考書籍《IAD PRO權威指南》
工具:
PETools:
ETools 是另一款很好的PE文件編輯工具,以前曾發過 v1.5.400.2003 的漢化版,今天也來更新一下:)。PEditor 功能有轉存進程、檢測可執行文件加殼類型、在SoftICE中插入中斷、編輯PE文件的導入表、節表、重建校驗和、重建程序等,其自帶了一個簽名管理程序可自己添加更多的殼類型來讓 PETools 識別。PETools 可支持插件,並帶有插件編寫示例,你也可以自己開發需要的插件
PEiD:
查殼工具,能檢測大多數編譯語言.、病毒和加密的殼,它主要利用查特征串搜索來完成識別工作的,各種開發語言都有固定的啟動代碼部分,利用這點可識別是何種語言編譯的,被加殼程序處理過的程序,在殼里會留下相關加殼軟件的信息,利用這點就可識別是保種殼所加密的,它提供了一個擴展接口文件userdb.txt ,用啟可以自定義一些特征碼,這樣可以識別出新的文件類型,簽名的制作可以用插件Add Signature來完成
命令:
nm : 查看文件中的符號,
例如sqlmap中提供的udf提權so文件,可以查看的到一些全局函數和局部函數,以及一些引用和為引用的變量等。
nm(選項)(參數)
options:
-A:每個符號前顯示文件名; -D:顯示動態符號; -g:僅顯示外部符號; -r:反序顯示符號表。
顯示結果說明:
U,未定義符號,通常為外部引用
T,在文本部分定義的符號,通常為函數名稱
t,在文本部分定義的局部符號,在C程序中,這個符號同等於一個靜態函數
D,已初始化的數據值
C,未初始化的數據值
詳情可以查看 man nm
ldd:
ldd是list, dynamic, dependencies的縮寫, 意思是, 列出動態庫依賴關系.
網上已經有很多詳細的,就不在此累贅了。詳細可查看 man ldd
objdump:
objdump命令是Linux下的反匯編目標文件或者可執行文件的命令,功能十分想打,
推薦閱讀:http://blog.csdn.net/beyondioi/article/details/7796414
strings:
提取二進制中的字符串