W32Dasm簡介 W32Dasm是一個靜態(tài)反匯編工具,也是破解人常用的工具之一,它也被比作破解人的屠龍刀?!32Dasm10.0修改版是經(jīng)Killer在W32Dasm8.93基礎(chǔ)上修改的,修改后的W32Dasm功能更強大,能完美顯示中文字符串及VB程序,內(nèi)含16進制編輯器,破解修改軟件更容易,可謂是反匯編極品。
編輯本段W32Dasm的應用及作用
W32Dasm說明應用 W32Dasm是一個強大的反匯編工具,操作簡單,使用方便。通常被程序員使用,當然也可被用來Crack軟件了,很適合Cracker使用。我在這把與crack相關(guān)的功能簡述如下:
1.0 開始
2.0 保存反匯編文本文件和創(chuàng)建方案文件
3.0 反匯編文本代碼的基本操作
4.0 復制匯編代碼文本
5.0 裝載32位的匯編代碼動態(tài)調(diào)試
6.0 運行,暫停或終止程序
7.0 單步跟蹤程序
8.0 設(shè)置激活斷點
9.0 偏移地址和虛擬地址轉(zhuǎn)換
1.0 開始
1.1 運行W32Dasm,在這里以windows95自帶的計算器為例:calc.exe。
1.2 從Disassembler(反匯編)菜單選擇Disassembler Options(反匯編程序選項)選項將出現(xiàn)如下對話框。
1.3 在Disassembler(反匯編)菜單,選擇Open File(打開文件)選項或按工具欄按鈕。
1.4 選擇你要打開的文件就可。
注意:你反匯編文件后,如字符己超過屏幕外,這時你要選擇合適的字體(在Font字體選項中Select Font選擇字體) ,然后設(shè)為默認字體(Save Default Font)即可。 當然一般以默認值就可。
2.0 保存反匯編文本文件和創(chuàng)建方案文件(Save The Disassembly Text and Create A Project File )
略。
3.0 反匯編源代碼的基本操作
3.1 轉(zhuǎn)到代碼開始(Goto Code Start)
在工具欄按或從菜單的轉(zhuǎn)到(Goto)選項選擇轉(zhuǎn)到代碼開始(Goto Code Start) 或按Ctrl S, 這樣光標將來到代碼的開始處,用戶可通過雙擊鼠標或用shift+上下光標鍵改變光標的位置。
注:代碼的開始處是反匯編代碼列表清單匯編指令的開始,而不是代碼運行的起點,程序運行的起點稱為程序入口點(Program Entry Point)。
3.2 轉(zhuǎn)到程序入口點(Goto Program Entry Point)
在工具欄按或菜單的轉(zhuǎn)到(Goto)選項選擇 轉(zhuǎn)到程序入口點(Goto Program Entry Point)或按F10,這樣光標將來到程序入口點(Entry Point),這里就是程序執(zhí)行的起始點,一般動態(tài)調(diào)試時LOAD時也就停在此處。
3.3 轉(zhuǎn)到頁(Goto Page)
在工具欄按或菜單的轉(zhuǎn)到(Goto)選項選擇轉(zhuǎn)到頁(Goto Page)或按F11,這時跳出一對話框,輸入頁數(shù)可跳轉(zhuǎn)到相關(guān)頁面去。
3.4 轉(zhuǎn)到代碼位置(Goto Code Location)
在工具欄按或菜單的轉(zhuǎn)到(Goto)選項選擇轉(zhuǎn)到代碼位置(Goto Code Location)或按F12,一個對話框?qū)⒊霈F(xiàn),充許用戶輸入代碼偏移地址,以跳轉(zhuǎn)到此位置上去。
3.5 執(zhí)行文本跳轉(zhuǎn)(Execute Text Jump)
這功能是在Execute Text(執(zhí)行文本)菜單選項里的,執(zhí)行跳躍(Execute Jump)功能激活條件是光標在代碼的跳轉(zhuǎn)指令這行上(這時光條是高亮度的綠顏色)。此時工具條Jump To按鈕也激活。如圖:
此時按或菜單選項Execute Jump(執(zhí)行跳躍)或按右光標鍵,光條將來到跳轉(zhuǎn)指令所指到的位置。在這例子里,將來到:004076CE xor eax,eax 這一行代碼處:
如要返回到上一次跳躍,請參考3.6.
3.6 返回到上一次跳躍Return From Last Jump
這功能是在Execute Text(執(zhí)行文本)菜單選項里的,此指令僅僅是在 執(zhí)行文本跳轉(zhuǎn)功能完成后才激活。當這條件成立時,按鈕將激活。按或在菜單里選項返回到上一次跳躍(Return From Last Jump)或按左光標鍵,光條將返回到上一次跳躍位置處。
3.7 執(zhí)行呼叫Execute Text Call
這功能是在Execute Text(執(zhí)行文本)菜單選項里的,此功能激活的條件是光條在CALL指令一行。在這一行時光條將發(fā)綠,按鈕將激活。執(zhí)行時光條將會來到CALL所指的地址處。
如下圖: 光條在0040751D call 004073D4 一行。
此時按或在菜單的執(zhí)行呼叫(Execute Text Call)或按右光標鍵,光條將來到CALL所指的地址004073D4這一行。
如要返回到剛才起點的0040751D call 004073D4 一行,參考3.8的返回呼叫。
3.8 返回呼叫(Return From Last Call)
這功能是在Execute Text(執(zhí)行文本)菜單選項里的,此指令僅僅是在執(zhí)行呼叫Execute Text Call功能完成后才激活。當這條件成立時,按鈕將激活。按或在菜單里選項返回呼叫(Return From Last Call)或按左光標鍵,光條將返回到上一次呼叫位置處。
3.9 導入功能(Imported)
在菜單功能選項里,其作用主要是查看import函數(shù)。按或在菜單功能選項里的導入(Imports)命令,執(zhí)行后將列出當前文件的Import函數(shù)。
如要返回到剛才起點的0040751D call 004073D4 一行,參考3.8的返回呼叫。
W32Dasm的操作說明 5.0 裝載32位的匯編代碼動態(tài)調(diào)試
5.1 反匯編windows自帶的計算器程序 calc.exe.
5.2 選擇菜單調(diào)試選項中的加載處理(Load Process),或按Ctrl+L.出現(xiàn)一個加載對話框,你可輸入選項命令?,F(xiàn)在你可按裝載(load)按鈕。
Calc.exe現(xiàn)在被W32DASM動態(tài)調(diào)試,將出現(xiàn)左右兩個調(diào)試窗口(如下圖),在初始化calc.exe程序后,指令將停留在入口點(Entry Point)處。
左邊的調(diào)試窗口列出各種狀態(tài)器如:CPU寄存器,CPU控制寄存器,斷點,活動的DLL,段寄存器等等;
6.0 運行,暫?;蚪K止程序
6.1 在右調(diào)試窗口,按運行(RUN)按鈕或按F9,calc.exe將運行起來。
按暫停(PAUSE)按鈕或空格鍵,程序?qū)和#@在單步跟蹤時經(jīng)常用到。
按終止(TERMINAT)按鈕,程序?qū)⑼V?,退出動態(tài)調(diào)試環(huán)境。
7.0單步跟蹤程序
7.1 重新加載 calc.exe
7.2 在程序加載后,停留在入口點,你可按F7或F8單步調(diào)試程序,這兩個鍵所不同的是F7是跟進CALL里,F(xiàn)8是路過。
7.3 進入自動調(diào)試按 (F5) 和結(jié)束自動調(diào)試按 (F6) 。
8.0設(shè)置激活斷點
8.1 重新加載 calc.exe
8.2 在W32DASM的菜單轉(zhuǎn)到選項轉(zhuǎn)到代碼處(goto code)功能,填上403198,按確定,你將在W32Dasm的主窗口(此時可能最小化了,把其還原即可)來到403198地址一行。光條在這一行顯亮綠色,按F2或用鼠標左點擊最左邊(同時按住CTRL)設(shè)置斷點。
這時如斷點設(shè)置成功,光條最左邊有一小段黃條,顯示此行為斷點。如下圖:
如果斷點不在這里,整行光條將是黃色的。
當斷點設(shè)置好后,在左調(diào)試窗口中的斷點小窗口顯示斷點情況(右邊有一):
此時按F2或(鼠標左鍵+CTRL),斷點將取消。
8.3 此時按F9程序?qū)⑦\行到相關(guān)斷點時停止。
9.0 偏移地址和虛擬地址轉(zhuǎn)換
W32DASM、SOFTICE和Hiew(Decode模式)顯示的地址都是虛擬地址,但是在Hiew(Decode模式)下,F(xiàn)5功能鍵查找的地址是偏移地址,因此必須將虛擬地址轉(zhuǎn)換成偏移地址,才能找到正確的地址。常用的方法是在W32DASM下將綠色的光條移到某一行代碼上 , 在窗口底部有一行字指示其偏移地址 , 如虛似地址:Code DaTa@0040534e而偏移地址為:@Offset 0000474Eh. 這就是偏移地址。
|