W32Dasm特別版是一款非常受編程人士歡迎的靜態程序反匯編工具,我們可以通過這款軟件來將中文字符串及VB程序完美地顯示出來。而且W32Dasm反匯編工具還為用戶提供了16進制編輯器,能夠幫助你更快速地特別各種應用程序。
w32dasm中文版是一款老牌的靜態反匯編工具,憑借其出色的編譯性能和簡便的使用方法受到廣大程序員的喜愛,被譽為特別人的屠龍刀。軟件支持自定義語法高亮顯示色彩功能,某些關鍵字還可以用突出顏色顯示,用戶能夠方便快捷的找到語法上的漏洞。同時它也是一款相當實用的快速編輯器,可以手工增加注釋,類似IDA,軟件內的注釋可以復制、保存,并且支持搜索、查找和命令行功能。除此之外,w32dasm軟件最強大的地方在于它能夠在串式數據參考中提取中文字符串并且在反匯編窗口顯示將其顯示。由于軟件操作相對簡單并且支持中文,因此被很多程序員用來特別軟件。
1、自定義語法高亮顯示的色彩,某些關鍵字可以用突出顏色顯示,Good!
2、可以手工增加注釋,類似IDA,注釋可以復制、保存。更加方便分析和寫特別文章!
3、增強的搜索、查找功能!
4、命令行功能!
5、增加最新使用文件列表功能!
6、相當實用的快速編輯功能,可以取代HEX編輯器了!
7、增加匯編代碼修補(Permenant Patcher)功能!
8、打開當前反匯編文件寫操作!
9、本版修正兩個窗口不能正常顯示的BUG。
10、在反匯編窗口顯示顯示中文的功能!
11、在串式數據參考中提取中文字符串的功能!
12、支持VB/DELPHI字符串的提取,可以自定義VB_patch的打開和關閉!
W32Dasm是一個強大的反匯編工具,操作簡單,使用方便。通常被程序員使用,當然也可被用來Crack軟件了,很適合Cracker使用。
我在這把與crack相關的功能簡述如下:
1.0 開始
2.0 保存反匯編文本文件和創建方案文件
3.0 反匯編文本代碼的基本操作
4.0 復制匯編代碼文本
5.0 裝載32位的匯編代碼動態調試
6.0 運行,暫;蚪K止程序
7.0 單步跟蹤程序
8.0 設置激活斷點
9.0 偏移地址和虛擬地址轉換
1.0 開始
1.1 運行W32Dasm,在這里以windows95自帶的計算器為例:calc.exe。
1.2 從Disassembler(反匯編)菜單選擇Disassembler Options(反匯編程序選項)選項將出現如下對話框。
1.3 在Disassembler(反匯編)菜單,選擇Open File(打開文件)選項或按工具欄按鈕。
1.4 選擇你要打開的文件就可。
注意:你反匯編文件后,如字符己超過屏幕外,這時你要選擇合適的字體(在Font字體選項中Select Font選擇字體) ,然后設為默認字體(Save Default Font)即可。 當然一般以默認值就可。
2.0 保存反匯編文本文件和創建方案文件(Save The Disassembly Text and Create A Project File )
略。
3.0 反匯編源代碼的基本操作
3.1 轉到代碼開始(Goto Code Start)
在工具欄按或從菜單的轉到(Goto)選項選擇轉到代碼開始(Goto Code Start) 或按Ctrl S, 這樣光標將來到代碼的開始處,用戶可通過雙擊鼠標或用shift+上下光標鍵改變光標的位置。
注:代碼的開始處是反匯編代碼列表清單匯編指令的開始,而不是代碼運行的起點,程序運行的起點稱為程序入口點(Program Entry Point)。
3.2 轉到程序入口點(Goto Program Entry Point)
在工具欄按或菜單的轉到(Goto)選項選擇 轉到程序入口點(Goto Program Entry Point)或按F10,這樣光標將來到程序入口點(Entry Point),這里就是程序執行的起始點,一般動態調試時LOAD時也就停在此處。
3.3 轉到頁(Goto Page)
在工具欄按或菜單的轉到(Goto)選項選擇轉到頁(Goto Page)或按F11,這時跳出一對話框,輸入頁數可跳轉到相關頁面去。
3.4 轉到代碼位置(Goto Code Location)
在工具欄按或菜單的轉到(Goto)選項選擇轉到代碼位置(Goto Code Location)或按F12,一個對話框將出現,充許用戶輸入代碼偏移地址,以跳轉到此位置上去。
3.5 執行文本跳轉(Execute Text Jump)
這功能是在Execute Text(執行文本)菜單選項里的,執行跳躍(Execute Jump)功能激活條件是光標在代碼的跳轉指令這行上(這時光條是高亮度的綠顏色)。此時工具條Jump To按鈕也激活。
此時按或菜單選項Execute Jump(執行跳躍)或按右光標鍵,光條將來到跳轉指令所指到的位置。在這例子里,將來到:004076CE
xor eax,eax 這一行代碼處:
如要返回到上一次跳躍,請參考3.6.
3.6 返回到上一次跳躍Return From Last Jump
這功能是在Execute Text(執行文本)菜單選項里的,此指令僅僅是在 執行文本跳轉功能完成后才激活。當這條件成立時,按鈕將激活。按或在菜單里選項返回到上一次跳躍(Return From Last Jump)或按左光標鍵,光條將返回到上一次跳躍位置處。
3.7 執行呼叫Execute Text Call
這功能是在Execute Text(執行文本)菜單選項里的,此功能激活的條件是光條在CALL指令一行。在這一行時光條將發綠,按鈕將激活。執行時光條將會來到CALL所指的地址處。
如下圖: 光條在0040751D call 004073D4 一行。
此時按或在菜單的執行呼叫(Execute Text Call)或按右光標鍵,光條將來到CALL所指的地址004073D4這一行。
如要返回到剛才起點的0040751D call 004073D4 一行,參考3.8的返回呼叫。
3.8 返回呼叫(Return From Last Call)
這功能是在Execute Text(執行文本)菜單選項里的,此指令僅僅是在執行呼叫Execute Text Call功能完成后才激活。當這條件成立時,按鈕將激活。按或在菜單里選項返回呼叫(Return From Last Call)或按左光標鍵,光條將返回到上一次呼叫位置處。
3.9 導入功能(Imported)
在菜單功能選項里,其作用主要是查看import函數。按或在菜單功能選項里的導入(Imports)命令,執行后將列出當前文件的Import函數。
如要返回到剛才起點的0040751D call 004073D4 一行,參考3.8的返回呼叫。
操作說明
5.0 裝載32位的匯編代碼動態調試
5.1 反匯編windows自帶的計算器程序 calc.exe.
5.2 選擇菜單調試選項中的加載處理(Load Process),或按Ctrl+L.出現一個加載對話框,你可輸入選項命令,F在你可按裝載(load)按鈕。
Calc.exe現在被W32DASM動態調試,將出現左右兩個調試窗口(如下圖),在初始化calc.exe程序后,指令將停留在入口點(Entry Point)處。
左邊的調試窗口列出各種狀態器如:CPU寄存器,CPU控制寄存器,斷點,活動的DLL,段寄存器等等;
6.0 運行,暫;蚪K止程序
6.1 在右調試窗口,按運行(RUN)按鈕或按F9,calc.exe將運行起來。
按暫停(PAUSE)按鈕或空格鍵,程序將暫停,這在單步跟蹤時經常用到。
按終止(TERMINAT)按鈕,程序將停止,退出動態調試環境。
7.0單步跟蹤程序
7.1 重新加載 calc.exe
7.2 在程序加載后,停留在入口點,你可按F7或F8單步調試程序,這兩個鍵所不同的是F7是跟進CALL里,F8是路過。
7.3 進入自動調試按 (F5) 和結束自動調試按 (F6) 。
8.0設置激活斷點
8.1 重新加載 calc.exe
8.2 在W32DASM的菜單轉到選項轉到代碼處(goto code)功能,填上403198,按確定,你將在W32Dasm的主窗口(此時可能最小化了,把其還原即可)來到403198地址一行。光條在這一行顯亮綠色,按F2或用鼠標左點擊最左邊(同時按住CTRL)設置斷點。
這時如斷點設置成功,光條最左邊有一小段黃條,顯示此行為斷點。如下圖:
如果斷點不在這里,整行光條將是黃色的。
當斷點設置好后,在左調試窗口中的斷點小窗口顯示斷點情況(右邊有一):
此時按F2或(鼠標左鍵+CTRL),斷點將取消。
8.3 此時按F9程序將運行到相關斷點時停止。
9.0 偏移地址和虛擬地址轉換
W32DASM、SOFTICE和Hiew(Decode模式)顯示的地址都是虛擬地址,但是在Hiew(Decode模式)下,F5功能鍵查找的地址是偏移地址,因此必須將虛擬地址轉換成偏移地址,才能找到正確的地址。常用的方法是在W32DASM下將綠色的光條移到某一行代碼上 , 在窗口底部有一行字指示其偏移地址 , 如虛似地址:Code DaTa@0040534e而偏移地址為:@Offset 0000474Eh. 這就是偏移地址。
1、首先用w32dasm打開一個dll文件,如下圖所示,小編隨便在windows目錄下找了一個!
2、先找到要修改的代碼在文件中的偏移,記下此地址。如下圖所示
3、啟動HIEW,進入程序界面如下圖所示!win10下有部分亂碼,不影響
4、點擊up可以進入上一層目錄,選擇你要修改的文件,雙擊打開,如下圖所示
5、按下F4選擇“DECODE“模式,如下圖所示
6、按下F5跳到剛剛記下的地址:6620E870,如下圖所示
7、按下F3鍵后,燙后TAB鍵,可以直接修改呢。如下圖所示
8、可以任意修改。∩踔列薷某蒪aidujingyan test吧!當然一般我們修改的是跳轉指令JZ--JNZ等,如下圖所示