站內(nèi)搜索
電腦軟件
編輯推薦
本類下載榜
總下載排行
軟件簡介
JD-GUI是一款非常實(shí)用的Java反編譯工具。軟件擁有十分出色的反編譯效率,能夠有效提升整體工作的效率。并且軟件的操作十分的簡單,即使是新手用戶也可以很快上手。如果您有需要可以在jz5u下載這款JD-GUI。
大家都知道,將源代碼轉(zhuǎn)換成二進(jìn)制執(zhí)行代碼的過程叫編譯,比如將C源代碼編譯成exe可執(zhí)行文件;那么把二進(jìn)制執(zhí)行代碼的過程就叫反編譯,比如把exe轉(zhuǎn)換為C源代碼就叫反編譯。
由于主流的C的編譯器都進(jìn)行了代碼的優(yōu)化,因此把C編譯生成的exe文件反編譯成C代碼非常困難。但是像Java、.net這樣基于虛擬機(jī)技術(shù)的編程語言則反編譯非常容易,Java平臺下有Jad、Jode、JD等反編譯器,.net平臺下則有Reflector等反編譯器,反編譯質(zhì)量非常高,甚至和源代碼幾乎沒什么差別。
反編譯得到的是源代碼嗎?
反編譯得到的代碼是非常接近于源代碼,但是或多或少與源代碼有一些差異的,比如一些表達(dá)式被優(yōu)化掉了,比如:
下面的源代碼:
int i=1+1;
學(xué)過《編譯原理》的同學(xué)知道有常量優(yōu)化這個編譯優(yōu)化算法,因此上邊的源代碼一般會被優(yōu)化為:int i=2;
由于在編譯過程中已經(jīng)進(jìn)行了優(yōu)化,把1+1這個原始的信息丟掉了,因此反編譯出來的代碼只能是:
int i=2;
可以看到反編譯得到的代碼和源代碼是有區(qū)別的。
比如:andriod中
download = (Button)findViewById(R.id.xiaz);
被優(yōu)化成了download = (Button)findViewById(0x7f070018);
程序可以反編譯豈不是很不安全?
可以采用代碼混淆等技術(shù)來加大反編譯的難度和降低反編譯代碼的可讀性,但是完全避免反編譯是不可能的。
反編譯器的原理是什么?
由于Java、.net這樣的基于虛擬機(jī)技術(shù)的語言都是采用了ByteCode的二進(jìn)制結(jié)構(gòu),因此很容易將ByteCode轉(zhuǎn)化為抽象語法樹(簡稱AST,《編譯原理》這門課中的概念),然后采用反編譯器就可以將AST轉(zhuǎn)換為代碼了。
本詞條資料來源于soso網(wǎng)友此處參考資料無法引用對于作者表示抱歉?。?!
還有最重要的,那就是jd-gui只能查看,不能夠?qū)⒛切┪募D(zhuǎn)換成.java文件。
易語言v4.05修訂版 簡體中文特別版_易學(xué)易用的漢語編程語言
WinHex16進(jìn)制編輯器19.3 漢化綠色版
Microsoft Visual FoxPro 6.0簡體中文免安裝版【可視化編程工具】
PHP For Windows 7.3.9 官方安裝版
UltraEdit(文本編輯器)21.20.1001.0 烈火漢化增強(qiáng)版
WinHex(16進(jìn)制編輯器)19.8 SR-4 中文綠色版
Java SE Runtime Environment 9.0u177 x64 官方安裝版
易語言(支持基于漢語字和詞編程) 綠色精簡版
PSPad editor V5.0.2(321)中文綠色版
EXE資源查看提取器_Resource Explorer 漢化綠色版
Source Insight 4.0 漢化綠色版_功能強(qiáng)勁的程序編輯器
網(wǎng)絡(luò)編輯超級工具箱(文章快速格式化) v1.2綠色加強(qiáng)版
匯編指令助手查詢器 (匯編指令大全)V1.1 綠色版
UltraEdit 21.20.1009.0烈火漢化綠色版
UltraEdit-32 15.00.0.1042簡體中文綠色便攜版
Hex Workshop x64(bin文件編輯器)V6.7.25284 漢化版