1. 程式人生 > >強大的W32Dasm反彙編工具使用教程

強大的W32Dasm反彙編工具使用教程

W32Dasm是一個強大的反彙編工具,操作簡單,使用方便。通常被程式設計師使用,當然也可被用來Crack軟體了,很適合Cracker使用。我在這把與crack相關的功能簡述如下:

1.0 開始
2.0 儲存反彙編文字檔案和建立方案檔案
3.0 反彙編文字程式碼的基本操作
4.0 複製彙編程式碼文字
5.0 裝載32位的彙編程式碼動態除錯
6.0 執行,暫停或終止程式
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的返回呼叫。

3.8 返回呼叫(Return From Last Call)

這功能是在Execute Text(執行文字)選單選項裡的,此指令僅僅是在執行呼叫Execute Text Call功能完成後才啟用。當這條件成立時,按鈕將啟用。按或在選單裡選項返回呼叫(Return From Last Call)或按左游標鍵,光條將返回到上一次呼叫位置處。

3.9 匯入功能(Imported)

在選單功能選項裡,其作用主要是檢視import函式。按或在選單功能選項裡的匯入(Imports)命令,執行後將列出當前檔案的Import函式。


5.0 裝載32位的彙編程式碼動態除錯

5.1 反彙編windows自帶的計算器程式 calc.exe.

5.2 選擇選單除錯選項中的載入處理(Load Process),或按Ctrl+L.出現一個載入對話方塊,你可輸入選項命令。現在你可按裝載(load)按鈕。

Calc.exe現在被W32DASM動態除錯,將出現左右兩個除錯視窗(如下圖),在初始化calc.exe程式後,指令將停留在入口點(Entry Point)處。

左邊的除錯視窗列出各種狀態器如:CPU暫存器,CPU控制暫存器,斷點,活動的DLL,段暫存器等等;


6.0 執行,暫停或終止程式

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 [email protected]而偏移地址為:@Offset 0000474Eh. 這就是偏移地址。


10.0 結束

相關推薦

強大W32Dasm彙編工具使用教程

W32Dasm是一個強大的反彙編工具,操作簡單,使用方便。通常被程式設計師使用,當然也可被用來Crack軟體了,很適合Cracker使用。我在這把與crack相關的功能簡述如下: 1.0 開始 2.0 儲存反彙編文字檔案和建立方案檔案 3.0 反彙編文字程式碼的基本操作

彙編工具objdump的簡單使用

objdump這個工具可以用來將二進位制檔案(例如linux下的ELF可執行檔案)轉成彙編程式碼讓我們進行分析 linux系統裡邊可以直接使用這個命令 最常用的就是:objdump -d -M intel ./pwn1 -d 就是反彙編  &n

轉——一個超級wince牛人使用彙編工具修改程式的方法

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

vxworks環境下彙編工具使用技巧

平臺:windows 環境:vxworks6.8 工具:objdumpmips  nmmips 使用方法介紹: 1、設定環境:進入dos中,cd到你的WinRiver下 執行下面的命令,這樣就可以使用vxworks的小工具了 wrenv.exe -p vxworks

Linux下的objdump彙編工具

1.  [[email protected] controller1]$ objdump --help  Usage: objdump <option(s)> <file(s)>  Display information from obje

Linux下 視覺化 彙編工具 EDB 基本操作知識

     自己在上網搜edb的操作姿勢的時候發現這方面的資料有點少,下面總結一下自己摸索出來的edb操作姿勢: EDB操作基礎知識:首先點選執行,這時程式會執行前面的初始化函式到main,此時可以開始

程式設計師的吸星大法-IDA彙編工具初探

看過<<笑傲江湖>>的朋友一定知道吸星大法吧,這是一種可以吸取他人內功來使自己功力增長的神功,(段譽的北冥神功也是這樣, 扯遠了...).對於程式設計師來說,增長自己程式設計功力的一個好方法是閱讀其它人開發的程式的原始碼,從而把別人的技術來消化成為

Java編譯工具Jad及插件JadClipse配置教程

nload index.php 打開方式 1.5 配置 directive img 點擊 臨時文件 Jad是一個Java的一個反編譯工具,和eclipse的插件JadClipse,二者結合可以方便的在eclipse中查看class文件的源代碼。 下面介紹一下配置: 下載J

彙編專用工具——objdump

命令 引數: -d: 將程式碼段反彙編 -S: 將程式碼段反彙編的同時,將反彙編程式碼和原始碼穿插顯示,編譯時需要給出-g,即需要除錯資訊 -C: 解決Name mangling導致函式名無法看懂的問

編譯工具apktool使用教程

本片文章介紹如何使用apktool對apk檔案進行反編譯; 我們在開發或工作中會有對別人的apk進行反編譯的需求,如參考別人的程式碼或佈局,這時就要用到反編譯工具,下面將介紹如何下載及使用反編譯工具。

c&c++彙編與逆向分析學習筆記(2)--彙編靜態分析工具IDA

        所謂“靜態分析”,是相對於前面提到的“動態分析”而言的。在“動態分析”過程中,偵錯程式載入程式,並以除錯模式執行起來,分析者可以在程式的執行過程中觀察程式的執行流程和計算記過。但是,在實際分析中,很多場合不方便執行目標,比如軟體的某一模組(無法單獨執行)、病

強大的.NET編譯工具Reflector及外掛

 剛接觸.net 時就聽說 Reflector這個強大反編譯工具呢,只是一直沒有去使用他. 今天update跟我說Reflector如何,如何有用,用的如何,如何爽,還得意的說反編譯了不少DLL...本來本人對新鮮事就非常有興趣,聽他這麼一說.決定試一試這個傳說中的工具. 我

Charles(最強大的http除錯工具)詳細教程(下)

上半部分講解了Charles最常用功能代理的使用,下半部分繼續演示Charles的特色有趣的功能。 網速模擬功能 throttle功能對於前端來說非常實用,可以看頁面在低網速下的表現,從而找出優化的點。 在線上環境通常有些因為網速慢導致的bug,在本機無法重現,那時候就很抓瞎,如果嫌遠端麻煩,推薦使

linux3.0 核心級除錯工具KDB支援彙編

      KDB是linux核心整合的一個除錯工具,關於更多KDB的資訊,請查閱相關的資訊。本文就是移植kdb的反彙編命令ID。      在KDB成為核心自身的一部分的時候,關於ID命令就已經被移除,具體的原因不知道。現在的核心雖然支援kdb了,但是並沒有這個命令  I

編譯apk工具,apk編譯工具Jadx的使用

lib abc 最新版 選擇 dex2jar apk反編譯 elf .apk nbsp Android初學者會使用其他人的apk,這樣能知道別人是如何編寫的,在知道別人是如何編寫的前提下需要一款能實現反編譯軟件,再把軟件反編譯出來查看其中的代碼。 如何使用反編譯apk工具?

ILSPY編譯工具下載代替收費的Reflector工具

ast build har target 導入 反編譯工具 col eight dart 原文發布時間為:2011-10-10 —— 來源於本人的百度文章 [由搬家工具導入]ILSPY反编译工具N

Java編譯工具-JD-GUI

編譯工具 直接 修改 技術 src 估計 ref img 跨平臺 Java是跨平臺的,JD-GUI提供了多個系統的支持,但是不建議直接安裝,最快的方式推薦直接下載JAR包,然後用java -jar進行運行。 就現在的版本是1.4.0,停留在2015年,估計近期會更新,因為

C# 編譯工具之dnSpy

logs 反編譯 .com 程序集 es2017 技術分享 title tle target 下載地址:https://github.com/0xd4d/dnSpy/releases無需安裝,和 ILSPY同門,感覺比ILSPY還強大 直接把dll拖拽到程序集資源管理器裏面

功能超級強大的網絡工具nc

遠程端口 運行 .gz 更多 一起 spec 進制 mono result 摘自:http://www.linuxso.com/command/nc.html 功能說明:功能強大的網絡工具語  法:nc [-hlnruz][-g<網關...>][-G<指向

Java編譯工具:Java Decompiler

分析 class文件 項目 class ui界面 eclips pos 開發 markdown Java Decompiler項目旨在開發一套工具集,這套工具集可以反編譯並分析Java5之後的Java字節碼。 它主要包括四個部分。 JD-Core:Java Decompi