反編譯匯編
Ⅰ 急急急 反編譯軟體把EXE文件反譯成什麼 是機器語言還是匯編語言 是哪個匯編語言
首先你得清楚,微軟的exe可執行文件(即PE文件,有PE規范定義)的特徵,才能使用不同的反編譯軟體對exe進行反編譯。
如今,exe一般分託管代碼和非託管代碼兩類(託管代碼是由C#等語言生成的.NET運行時庫支持運行的中間代碼,不是CPU晶元可直接執行的二進制機器碼;而非託管代碼是CPU晶元看執行的機器碼)
非託管代碼反編譯後,其實就是簡單的將二進制機器碼用匯編表示,所以是匯編語言。
託管代碼反編譯,好的反編譯器直接將中間語言位元組碼反編譯成高級語言代碼,如C#
------------------------------------------------------
另外,在什麼平台運行的exe正確反編譯(需要選擇正確的晶元結構)為同平台的匯編語言。
如嵌入式ARM晶元上運行的Win CE系統上的exe就應當正確反編譯為ARM匯編
x86的就應當反編譯為x86匯編。
Ⅱ 反編譯exe文件就是把exe還原為匯編
首先了解一下概念,exe程序只是WIN下PE格式的可執行文件的一種,而所謂的計算機執行的代碼只是一串二進制數,跟數據沒區別,當CS,EIP指向哪,哪裡就是程序,而匯編語言之所以叫最底層的語言,是因為, 匯編的每一個語法,都應對了一串二進制的指令,這也就是反匯編的原理,所以NO1.一、反編譯exe程序 就是 把 exe 還原為匯編語言嗎?,這句話,不能叫還原,應該叫解釋,「解釋」的東西,沒還原的那麼逼真,比如,在匯編源程序中所有的標號和注釋,進行編譯後,變成二進制可執行文件後,在反匯編,標號就變成數字了,而注釋更是沒了..... 二、除了 還原為 匯編語言,還能 反編譯為 其他高級語言嗎?不能,高級語言的語法是建立在大量的計算機二進制代碼之上的,比如你C語言隨便調用一個子函數,到了二進制中,他是先壓棧,參數(編譯後參數從右往左壓,每個語言還不一樣),然後就是call 子函數,子函數運行後,他還要清理堆棧,所以你一個句簡單的高級語言,其實蘊含了大量的代碼,而高級語言編譯後的程序,就脫離了他的開發環境,樓上說的會引起你誤會,Java的中間碼,可以用他自帶的反編譯工具,因為Java不是編譯器,而是解釋器,所以他不編譯,只是解釋他的中間碼NO2.所有的exe都可以反匯編,但是你要注意,不只exe這種pe格式,linux下可執行文件是elf,所以你在反匯編的時候,要注意可執行文件的文件的頭,而早期的DOS只是純二進制代碼,沒有頭文件,這個很重要,你要反匯編什麼格式,就要選擇相應的工具NO3.exe反匯編,當然是OD,不過,我對OD不熟悉,好像他只支持WIN下的反匯編
Ⅲ 有哪個反編譯器可以把一個exe程序反編譯成匯編語言
你去看雪學院,
反匯編
軟體
下載吧,有好多呢,
http://www.pediy.com/tools/Disassemblers.htm這里是
靜態反匯編
的前三個都不錯,對於加殼的軟體不好用。最好用
動態
反匯編的
http://www.pediy.com/tools/Debuggers.htm這里的第一個。453147896我的qq還有問題qq聊
Ⅳ 反編譯和反匯編有什麼區別
反匯編是把機器碼翻譯成的匯編;
反編譯是把機器碼翻譯成高級語言的過程,但通常要有其他線索輔助才能完成。
Ⅳ 反編譯或匯編是什麼回事
匯編是一種編程語言
反匯編是逆向工程