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

什麼叫反編譯啊

發布時間:2023-05-28 09:10:01

❶ 什麼是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即可查看源碼

❷ 什麼叫偵殼什麼叫脫殼什麼叫反編譯什麼叫16進制編輯

1偵殼就是根據程序開始部分來判斷程序是什麼軟體加殼的,或者判斷程序是什麼編譯工具開發的。比較典型的偵殼軟體是PEID。
2脫殼就是將加了殼的程序還源成沒有加殼前的狀態。比較典型的脫殼軟體是OD及專用脫殼程序。
3反編譯就是將可執行程序還原成源程序,在免殺中特指還原成匯編代碼。比較典型的反編譯軟體是OD及ASM32等。
4進制編輯器也叫二進制編輯器,用來打開二進制文件(可執行文件)直接修改的工具。比較典型的16進制編輯軟體是OD,ASM32,Winhex等。

❸ 反編譯原理是什麼

反編譯的流程,就是虛擬一個執行環境,看程序執行了那些指令,翻譯成相應的語句一般的流程是先把程序調入到數據段,虛擬運行環境,一般這分配文件頭部,從紀錄指令程序數據段,載入到虛擬環境中,紀錄指令,遇到跳轉指令,壓入棧,形成樹結構(看數據結構),遍歷每個節點的指令。形成完整程序。

❹ 源代碼反編譯什麼意思

就是把編譯器編譯後的文件反編譯成源代碼:
比如源代碼是 a+b=2
編譯器變成成 111111
這時候反編譯111111出來就是
a+b=2

❺ 反編譯是什麼意思

高級語言源程序經過
編譯
變成可執行文件,反編譯就是逆過程。
但是通常不能把可執行文件變成高級語言源代碼,只能轉換成匯編程序。

❻ 反編譯是什麼意思

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

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

(6)什麼叫反編譯啊擴展閱讀

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

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源碼,並可以將反編譯後的源碼再次生成位元組碼文件。

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

❼ 什麼是逆向工程什麼是反編譯可以根據已經封裝好的程序軟體進行破解分析出源代碼嗎

逆向工程就是根據已有的程序來反推出源代碼以及原來的工程設置,反編譯就是具體的將已經編譯好的程序進行反向工程,從而獲取部分源代碼。一般來說,逆向工程或者反編譯是無法百分之百獲得源代碼的,只能從一定程度上來自源代碼進行猜測,因此根據已經封裝好的程序軟體來進行破解分析出源代碼的可能性並不大,逆向工程的意義並不在於破解源代碼,而是在於了解軟體本身的設計,對於復雜的程序軟體而言破解源代碼的可能性幾乎為零。

❽ mt管理器反編譯是什麼意思

MT管理器是一款強大的文件管理工具和APK逆向修改神器。軟體有漢化應用、替換資源、修改布局、修改邏輯代碼、資源混淆、去除簽名校驗等功能主要功能- 文件復制、移動、創建軟鏈接、重命名、刪除、創建文件(夾),文件批量操作。

反編譯

反編譯是將可執行的(准備運行的)程序代碼(也稱為目標代碼)轉換為某種形式的高級編程語言,使其具有更易讀的格式。反編譯是一種逆向工程,它的作用與編譯器的作用相反。它與編譯相反。完成此任務的工具稱為反編譯器。反編譯有許多不同的原因,例如理解程序、恢復源代碼以進行存檔或更新、查找病毒、調試程序和翻譯過時的代碼。完全自動化的反編譯是不可能的。沒有反編譯器可以獲得開發人員編寫的確切源代碼。

反編譯有時被不道德地用於復制源代碼以在未經版權所有者許可的情況下重復使用或改編。反編譯 APK 文件並不是一項非常艱巨的任務。它需要將 dex 文件轉換為 jar 文件,然後將這些 jar 文件轉換為 java 源代碼,從而獲取應用程序源代碼。可以通過保護性手段(例如代碼復雜性和混淆)將程序設計為抗反編譯。這包括反調試技術、限制調試器、跟蹤檢查、優化和剝離二進制文件。

❾ 反編譯什麼意思,具體該怎麼用

反編譯:高級語言源程序經過編譯變成可執行文件,反編譯就是逆過程。計算機軟體逆向工程,又稱計算機軟體恢復工程,是指對其他軟體的目標程序(如可執行程序)進行「逆向分析和研究」,從而推導出設計思想、原理、結構、演算法、處理過程、操作方法等要素,等被其他軟體產品使用,在某些特定情況下可能會衍生出源代碼。反編譯可以作為開發軟體時的參考,也可以直接用於軟體產品中。

(9)什麼叫反編譯啊擴展閱讀:

如果編譯過程中發現源程序有錯誤,編譯程序應報告錯誤的性質和錯誤的發生的地點,並且將錯誤所造成的影響限制在盡可能小的范圍內,使得源程序的其餘部分能繼續被編譯下去,有些編譯程序還能自動糾正錯誤,這些工作由錯誤處理程序完成。需要注意的是,一般上編譯器只做語法檢查和最簡單的語義檢查,而不檢查程序的邏輯。

❿ 反編譯是什麼意思

高級語言源程序經過
編譯
變成可執行文件,反編譯就是逆過程。
但是通常不能把可執行文件變成高級語言源代碼,只能轉換成匯編程序。
好比android系統的apk程序文件包,可以用apktool之類的的工具進行反編譯,可以得到class代碼文件和source資源文件。
一般反編譯只適用於高級語言,低級語言,好比匯編等語言,比較難。

閱讀全文

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

熱點內容
下班之後的程序員 瀏覽:69
檢測支持ssl加密演算法 瀏覽:340
衢州發布新聞什麼APP 瀏覽:80
中國移動長沙dns伺服器地址 瀏覽:249
wifi密碼加密了怎麼破解嗎 瀏覽:596
linux命令cpu使用率 瀏覽:67
linux實用命令 瀏覽:238
傳奇引擎修改在線時間命令 瀏覽:109
php取域名中間 瀏覽:897
cad命令欄太小 瀏覽:830
php開發環境搭建eclipse 瀏覽:480
qt文件夾名稱大全 瀏覽:212
金山雲伺服器架構 瀏覽:230
安卓系統筆記本怎麼切換系統 瀏覽:618
u盤加密快2個小時還沒有搞完 瀏覽:93
小米有品商家版app叫什麼 瀏覽:94
行命令調用 瀏覽:436
菜鳥裹裹員用什麼app 瀏覽:273
窮查理寶典pdf下載 瀏覽:514
csgo您已被禁用此伺服器怎麼辦 瀏覽:398