『壹』 vs2013如何啟動反匯編
在程序中 F9 F10 分別 是 下斷 調試斷點
先F9下斷 F10調試 然後 下面會有調用 堆斗神棧 的觀察窗口 對觀察窗口 右鍵 進入反匯編 就可空凳虧以了.
還有個比較方便的方法 就是在程序 關鍵代碼處 寫入
__asm
{
mov eax,eax
mov eax,eax
mov eax,eax
}
花指令
拉到OD中 直接ctrl+s搜索 匯編代碼 直接走到關鍵點粗漏 下斷調試
此方法 可以快速 定位 到代碼
『貳』 如何用MPLAB進行PIC反匯編
MPLAB
應該就可猜襲以。
所謂的機器碼應該就是二進制文件吧?
MPLAB IDE 可以進行反匯肆兆灶編(相信它也是最准確最全的PIC反編譯工具)
。具體步驟如下:
1.
啟動MPLAB IDE 執行Configure菜單下的Select Device選擇好晶元
.
2. File菜單下Import導入要反編譯的HEX文件
.
3.View菜單下Program Memory 查看程序存儲器的內容
,
在程序存儲器內容顯示窗口的左下角切換到Machine或Symbolic,
在這個窗口上就可以看到每裂扮一個地址和HEX文件對應的ASM「反編譯」就是察看源代碼,其實最佳的PIC「
反編譯」工具就是MPLAB-IDE,也具有察看源代碼的功能。不過大家要注意
,
由於PIC採用分頁技術,「反編譯」後的源程序再次編譯後一般FILE--> IMPORT-->IMPORT TO MEMORY -->調入.HEX文件(你的機器碼應該是bin文件或者hex文件,都差不多了!)
然後再WINDOW中打開PROGRAM MEMORY窗口,就得到了源程序
注意所有未用的程序段反匯編後全部成了XORLW 0FFH
『叄』 如何在VC++6.0中進行反匯編
匯編是低級語言,基本上激物就是機器語言,vc6寫出的代碼cpu是不認得的
需要經過編譯成匯編語言,打包成exe文件,程序才能被執行團粗
反匯編就是你只有exe文件,需要輔助軟體(比如Ollydbg、w32dsm以及編程環境vc6等)
通過這些軟體可以把exe打開成匯編代塌鉛鎮碼!
『肆』 如何進行反匯編
你是想問如何反匯編還是想問反匯編有什麼用?
如果是如何反匯編,那很簡單
OllyDBG是最常用的ring3層動態反匯編工具
WinDBG和SoftICE是強大的ring0層動態反匯編工具~
而靜態反匯編必然是罩鋒碧IDA最為強大了~~
方法簡單的令人蛋疼……就是把你要反匯編的程序物舉拖拽到反匯編器里即可~
WinDBG和SoftICE可能不支持拖拽……那就文件--打開……就這樣~
反匯編程序自動完成反匯編的工作……
其實難點不在於反匯編本身
而是利用反匯編去完成我們要做的目標~~
這是一門學問~也不是一句話兩句話能教會的~~~
至於反匯編能做什麼用
並不像某位匿名用戶說的那樣骯臟~
心中有佛則處處是佛~
心中有狗屎則處處是狗屎
連名字都不敢露可見其本身心理的陰暗程度……
刀可以殺人也可以救人
反匯編只是一種手段,一種工具
它本身並沒有好壞之分,關鍵要看誰在使用,使用的目的是什麼~~
確實,反匯編可以逆向別人的勞動成果收為己用,可基激以破解別人的程序侵害利益
但同時,如果逆向的是一個病毒,就可以分析它的工作原理,找出防禦和查殺這種病毒的方法
而反匯編一個軟體,有時也能發掘出這款軟體的漏洞所在
所以對反病毒和漏洞分析的從業人員來講,反匯編是必備的基礎技能~
正與邪,好與壞
在於人,不在於工具~~~
『伍』 什麼軟體能將C語言的執行文件反匯編為匯編源代碼
用一個反匯編調試器即可。
IDA或者OllyDbg,方便直觀,當然VC也有自帶的調試器,不過很麻煩,不如IDA或者OD方便。
補充:
DLL 屬於可執行文件中的一類,又稱為動態鏈接庫,不能直接用DEBUG載入,一般由應用程序因使用該庫中的函數,而由操作系統在應用程序載入的同時被載入入特定地址,這個地址一般是DLL在鏈接時指定的。當DLL被載入到運行空間,根據輸出函數表,可以得到各個函數的入口地址,然後用DEBUG在各個入口下斷點,調用該函數時DEBUG將跟蹤進入該函數,從而實現反匯編。
反匯編屬於逆向工程,逆向工程的主要手段有兩大類,其中一類是動態分析,另一類是靜態分析。
前面提到的方法屬於動態分析,由DEBUG實現反匯編,該方法不容易得到完整的代碼,一般只能形成一段一段獨立分散的代碼,同時由於DEBUG的局限性,反匯編的代碼質量多不高,生成的代碼不能直接使用,原因在於DLL在載入時若沒有載入到指定地址空間,操作系統將對代碼進行重定向,所以DEBUG只能得到重定向後的代碼,這類代碼必須修改每一個重定向點,才能形成可執行代碼。作為WINDOWS32位操作系統, OLLYDBG是最為優秀的調試、跟蹤、反匯編工具,多窗口運行搜戚和,可以方便的通過窗口操作完成各類動作,而不需要像一般DEBUG那樣由命令行來完成,OLLYDBG還有許多一般調試器不具備的功能,同時由於每一代高手不斷的修改,使其具有多種功能,同時帶來的就世盯是混亂,誰也不知道有多少版本,誰也不清楚每個版本到底增加了什麼功能,但就這樣,也是瑕不掩疵, OLLYDBG任然是DEBUG中最強大,最好使用的。
靜態分析和動態分析不同,靜態分析直接打開原程序,載入而不運行,然後直接分析載入的代碼。目前靜態分析工具,最強大的當屬IDA,IDA支持幾乎所有種類的匯編語言。
IDA載入應用程序有許多選項,可以選擇完整的載入整個程序,也可以選擇載入程序的某個塊,一般可選擇的是否載入文件頭、資源表、輸入表、輸出表等等。
IDA還支持調試,也就是說,當你在進行反匯編過程時,可以直接使用IDA來調試跟蹤,以分析代碼的動態執行情況,不過就動態跟蹤來說,OLLYDBG更為強大。
IDA反匯編的正確率和代碼的復雜程度有關,對於正規開發的代碼仔襲,尤其是如果能夠獲得源程序的調試文件,即所謂的PDB文件,IDA可以讀取PDB文件中的信息,使得反匯編的效率和准確度大為提高,生成的代碼甚至比源代碼易讀。IDA將反匯編生成的結果存入IDB文件中。當你確認反匯編的結果達到你的要求,可以讓IDA輸出匯編源代碼,IDA也提供其他格式的輸出,例如HTML文件,便於用戶閱讀。樓主主要是用於分析DLL文件,一般來說這類文件更適合做靜態分析,所以推薦使用IDA來進行。
IDA對於分析那些加殼或含有大量花指令、混淆代碼、垃圾代碼的程序,反匯編的正確率會大為下降,因為IDA無法正確的確認當期位置上的數值是屬於代碼,還是屬於數據,是普通C字元,還是DELPHI的字元串,還是UNICODE字元串,是結構數據還是數組還是類表(DELPHI生成的代碼中含有大量的類表)等等。遇到這種情況,就需要使用者掌握許多技巧,例如可以通過使用者對當前數據的認識,指導IDA如何處理當前的數據。對於大批量的,具有某些規律的數據,IDA還提供了腳本語言(文件尾位idc),通過對腳本的執行來指導IDA如何進行反匯編。對於更為復雜的情況,例如程序是自解壓運行的,這時IDA就沒有任何能力來進行正確的分析,通常都會用OLLYDBG動態跟蹤,等程序完成自解壓後從內存中將解壓後的代碼完整的挖下來形成文件,再由IDA進行靜態分析。
對於成功進行反匯編的代碼,IDA根據代碼的入口、調用、轉移等指令,可以為使用者提供各種格式的程序的流程圖,IDA提供許多格式由用戶選擇,便於用戶理解程序的結構。
匯編語言的科學定義,其實就是介於機器碼(各種01)和高級語言(如C)之間的一種語言。你用C語言寫一段程序,其實要在機器上運行的話,機器是不懂的,要經過編譯器、匯編器編譯,變成匯編,最終再變成機器碼,機器根據這些機器碼的01可以控制硬體電路完成你程序想執行的操作。
『陸』 不知道反匯編怎麼來弄
反匯編是將目睜雹標程序轉換成匯編源程序的,而匯編是將匯編源程序轉換成目標程序。將匯編源程序到目標程序的過程叫匯編,將匯編源程序匯編成目標程序的這個程序叫匯編程序。信帆如果你的程序沒有錯誤的話。
先用-d 段地址:段基址 L查看的數據個數
—u找到你轉換成小寫字母後的一條指令的地址。
-g=cs:0 **(**表示剛看到的轉換成小寫字母後的下一滑早雹條指令的ip),
再用-d 段地址:段基址 L查看的數據個數
到這里就完成了。至於你說的從鍵盤接受一個大學字母,那得調用int 21h 功能號AH=01H,返回值為AL,是字元的ASCII碼值。呵呵,我學的東西很多都忘了。你試試看吧。
『柒』 C語言寫的程序 怎麼反匯編成匯編語言
如果你手上沒有什麼第三方工知具的話,可以用DEBUG,
比如你用C寫了一腔困搏個程序1.exe
生成的位置是d:\1.exe
打開電腦左下角開始--->運行--->輸入雙引號裡面道伍祥的"cmd"--->確定
彈出一個黑色窗體,在上面輸入輸入雙引號裡面尺滑的"debug
d:\1.exe"
然後回車
接著會出現一個"-"符號
然後輸入"u"
回車
就可回以看到相應的匯編了,這只是一個簡單的例子,有興趣可以學下DEBUG用法,要是大工程的話,還是建立答用別的工具,
注意:這只是在windows平台下用,像linux等別的平台不知道有沒有.
『捌』 怎樣反匯編
有很多軟體都能反匯編,直接用objmp也行。用ollydbg也行,IDA 也行。都很容易的。
『玖』 C語言寫的程序 怎麼反匯編成匯編語言
在keilc中,單片機的C語行歲言程序可以再DEBUG模式中得到對應的匯編程序。步驟如下:
1、建立工程檔核睜氏運,導入C文件代碼,編譯生成hex文件。
3、點擊View--Disassembly Window調出匯編窗口,如上圖。
通過以上步驟就可以看到與C對應的匯編程序了。
『拾』 什麼叫反匯編如何反匯編
反匯編我個人認為就可把已編譯好的程中纖野序進行脫殼並查看該程序的指令
裡面有很多寄存器賣喊
一般是用於搞破解
我就知道那麼豎慎多