導航:首頁 > 源碼編譯 > 什麼叫反編譯呢

什麼叫反編譯呢

發布時間:2025-05-21 02:52:48

1. 反編譯是什麼意思

計算機軟體反向工程(Reverse engineering)也稱為計算機軟體還原工程,是指通過對他人軟體的目標程序(比如可執行程序)進行「逆向分析、研究」工作,以推導出他人的軟體產品所使用的思路、原理、結構、演算法、處理過程、運行方法等設計要素,

某些特定情況下可能推導出源代碼。反編譯作為自己開發軟體時的參考,或者直接用於自己的軟體產品中。

(1)什麼叫反編譯呢擴展閱讀

反編譯是一個復雜的過程,反編譯軟體有:

1、SWF相關的反編譯程序

Action Script Viewer

第一個也是最強大的商業SWF反編譯工具,同類產品中,它的AS代碼反編譯效果最好,SWF轉Fla工程重建成功率最高。

2、android相關的反編譯程序

SMALI/BAKSMAL

SMALI/BAKSMALI是一個強大的apk文件編輯工具,用於Dalvik虛擬機(Google公司自己設計用於Android平台的虛擬機)來反編譯和回編譯classes.dex。其語法是一種寬松式的Jasmin/dedexer語法,而且它實現了.dex格式所有功能(註解,調試信息,線路信息等)。

3、python相關的反編譯程序

uncompyle2

uncompyle2可以直接轉化為十分完美的python源碼,並可以將反編譯後的源碼再次生成位元組碼文件。

參考資料來源:網路-反向編譯

2. 如何反編譯Android 的apk/dex/odex,獲得源碼

關於APK,DEX的介紹

當我們編譯一個安卓項目的時候,整個項目會被打包成一個 .apk文件。這個文件其實是一個標準的zip文件,因此可以用解壓縮工具打開。這個apk文件一般都包含程序的代碼(在classes.dex文件中), 資源文件, 證書, manifest 文件等。 其中對我們最重要的是classes.dex文件,因為編譯後的位元組碼(bytecode)都是放在這個文件中。我們後面講的反編譯就是針對這個dex文件來的。

反編譯普通的APK文件:

對於普通的APK/DEX文件的反編譯,其實工具有很多, 包括:

3. 如何把e語言編寫的exe程序反編譯成源碼呢

這個是目前沒有辦法實現的。

反編譯一般指反向編譯指計算機軟體反向工程(Reverse engineering)也稱為計算機軟體還原工程,是指通過對他人軟體的目標程序(可執行程序)進行「逆向分析、研究」工作,以推導出他人的軟體產品所使用的思路、原理、結構、演算法、處理過程、運行方法等設計要素,某些特定情況下可能推導出源代碼。反編譯作為自己開發軟體時的參考,或者直接用於自己的軟體產品中。反編譯是一項艱巨而復雜的工作。

如果e語言反編譯需要用到的技術過於繁雜,目前開源的資料中並沒有可以准確反編譯的軟體。

自行嘗試需要進行「逆向分析、研究」工作,以推導出他人的軟體產品所使用的思路、原理、結構、演算法、處理過程、運行方法等設計要素。

4. 易語言編譯的exe軟體怎麼樣能把它破解。知道源碼呢。

這不叫破解,叫反編譯,可以將其反編譯成匯編語言,但是如果非把它反編譯成易語言或其他高級語言就不大可能了,所以是看不了易語言源碼,如果你懂匯編語言,可以試下。

5. 什麼是Java代碼的編譯與反編譯

Java代碼的編譯與反編譯

2017-02-21Hollis數盟

一、什麼是編譯

1、利用編譯程序從源語言編寫的源程序產生目標程序的過程。

2、用編譯程序產生目標程序的動作。編譯就是把高級語言變成計算機可以識別的2進制語言,計算機只認識1和0,編譯程序把人們熟悉的語言換成2進制的。編譯程序把一個源程序翻譯成目標程序的工作過程分為五個階段:詞法分析;語法分析;語義檢查和中間代碼生成;代碼優化;目標代碼生成。主要是進行詞法分析和語法分析,又稱為源程序分析,分析過程中發現有語法錯誤,給出提示信息。

二、什麼是反編譯

計算機軟體反向工程(Reverseengineering)也稱為侍梁計算機軟體還原工程,是指通過對他人軟體的目標程序(可執行程序)進行「逆向分析、研究」工作,以推導出他人的軟體產品所使用的思路、原理、結構、演算法、處理過程、運行方法等設計要素,某些特定情況下可能推導出源代碼。反編譯作為自己開發軟體時的參考,或者直接用於自己的軟體產品中。

三、Java類的編譯與反編譯

我們在最初學習Java的時候,會接觸到兩個命令:javac和java,那個時候我們就知道,javac是用來編譯Java類的,就是將我們寫好的helloworld.java文件編譯成helloworld.class文件。

class文件打破了C或者C++等語言所遵循的傳統,使用這些傳統語言寫的程序通常首先被編譯,然後被連接成單獨的、專門支持特定硬體平台和操作系統的二進制文件。通常情況下,一個平台上的二進制可執行文件不能在其他平台上工作。而Javaclass文件是可以運行在任何支持Java虛擬機的硬體平台和操作系統上的二進制文件。

那麼反編譯呢,就是通過helloworld.class文件得到java文件(或者說是程序員能看懂的Java文件)

四、什麼時候會用到反編譯

1、我們只有一個類的class文件,但是我們又看不懂Java的class文件,那麼我們可以把它反編譯成我們可以看得懂的文件。

2、學習Java過程中,JDK的每個版本都會加入越來越多的語法糖,有些時候我們想知道Java一些實現細節,我們可以藉助反編譯。

五、反編譯工具

1、javap

2、Jad:官網(牆裂推薦)

客戶端:

可以在官網下載可執行文件,找到對應的操作系統的對應版本,然後進行安裝使用。

因為我使用的是linux操作系統,所以我下載的是Linux版本的工具,這個工具下載好之後會有一個執行文件,敗吵只要在執行文件所在目錄執行./jadhelloworld.class就會在當前目錄下生成helloworld.jad文件,該文件里就是我們很熟悉的Java代碼

Eclipse插件:

下載地址在官網下載插件的jar包,然後將jar包放到eclipse的plugins目錄下『在打開Eclipse,Eclipse->Window->Preferences->Java,此時你會發現會比原來多了一個JadClipse的選項,單擊,在Pathtodecompiler中輸入你剛才放置jad.exe的位置,也可以制定臨時文件的目錄。當然在JadClipse下還有一些子選項,如Debug,Directives等,按照默認配置察談侍即可。基本配置完畢後,我們可以查看一下class文件的默認打開方式,Eclipse->Window->Preferences->General->Editors->FileAssociations我們可以看到class文件的打開方式有兩個,JadClipse和Eclipse自帶的ClassFileViewer,而JadClipse是默認的。全部配置完成,下面我們可以查看源碼了,選擇需要查看的類,按F3即可查看源碼

閱讀全文

與什麼叫反編譯呢相關的資料

熱點內容
普通安卓線盤是什麼 瀏覽:52
微信lbsphp 瀏覽:47
Pc加密機怎麼用 瀏覽:589
ubuntu1204命令行 瀏覽:66
高階函數python 瀏覽:801
醫保app上如何代繳 瀏覽:579
五十一單片機的復位什麼意思 瀏覽:646
自研伺服器是什麼意思 瀏覽:733
php中寫sql語句 瀏覽:974
java比php快多少 瀏覽:393
單片機rra編程什麼意思 瀏覽:286
雲平台java 瀏覽:207
程序員重慶開滴滴 瀏覽:968
軍人服從命令的重要性 瀏覽:274
ip掃描命令linux 瀏覽:447
關於解壓方法的采訪問題 瀏覽:988
java數組的子數組 瀏覽:931
面試題java設計模式 瀏覽:88
程序員孩子的生活 瀏覽:776
抖音app的介紹怎麼寫 瀏覽:749