反编译工具jd-gui、luyten学习使用
1、反編譯
1.1介紹
要了解反編譯,首先需要了解計(jì)算機(jī)語言,它包括機(jī)器語言、匯編語言、高級(jí)語言三種。其中,機(jī)器語言和匯編語言通常被稱之為低級(jí)語言。
簡(jiǎn)單來說,可以這樣簡(jiǎn)單的理解:低級(jí)語言是計(jì)算機(jī)認(rèn)識(shí)的語言、高級(jí)語言是程序員認(rèn)識(shí)的語言。
所謂編譯,就是指高級(jí)語言轉(zhuǎn)換成低級(jí)語言讓計(jì)算機(jī)執(zhí)行的過程。反編譯則相反,通過低級(jí)語言進(jìn)行反向工程,獲取其源代碼。
1.2作用
1. Java這門編程語言,有許多如泛型、自動(dòng)裝箱拆箱等語法糖。因?yàn)閖ava虛擬機(jī)不認(rèn)識(shí)這些,所以就會(huì)在編譯的時(shí)候進(jìn)行相應(yīng)的解糖,得到class文件。反編譯工具就可以幫我們反編譯class文件,獲得一份java文件,讓我們了解到這些語法糖是如何實(shí)現(xiàn)的。
2.可以對(duì)其他人的代碼進(jìn)行反編譯,學(xué)習(xí)代碼實(shí)現(xiàn)。或者通過源代碼查找bug,制作外掛等。
1.3防止反編譯
由于我們有工具可以對(duì)Class文件進(jìn)行反編譯,當(dāng)然就要有對(duì)應(yīng)的技術(shù)可以應(yīng)對(duì)反編譯,從而保護(hù)java程序。比較典型的應(yīng)對(duì)策略如下:
(1)隔離Java程序,讓用戶接觸不到你的Class文件
(2)對(duì)Class文件進(jìn)行加密,提高破解難度
(3)代碼混淆,將代碼轉(zhuǎn)換成功能上等價(jià),但是難于閱讀和理解的形式
2、jd-gui的使用
首先我們可以自制一個(gè)demo的class文件來測(cè)試使用反編譯工具。在自定義路徑下,新建一個(gè)demo的java文件。簡(jiǎn)單測(cè)試即可,具體內(nèi)部代碼如下圖。
圖2-2 demo.java
然后我們?cè)谠撀窂较?#xff0c;用cmd進(jìn)入命令界面,輸入javac demo.java指令,即可將java文件編譯成class文件,并在同目錄下出現(xiàn)。
圖2-3 編譯demo.java文件
圖2-4 同目錄下出現(xiàn)demo.class文件
得到class文件以后我們就可以來測(cè)試反編譯功能了。首先還是打開jd-gui.exe文件。單擊【file】從中選擇【Open File ...】選項(xiàng),彈出一個(gè)文件選擇框,可以選擇要打開的文件,或者直接單擊文件夾圖標(biāo),直接彈出文件選擇框;從文件選擇框中選擇要打開的.class類型的文件,單擊【確定】。在打開的文件里,左側(cè)可以看到文件的保存位置,類及方法,右側(cè)顯示類的具體內(nèi)容,注釋不會(huì)顯示
圖2-5 打開文件進(jìn)行反編譯
圖2-6 反編譯結(jié)果
Jd-gui同時(shí)也支持高級(jí)搜索。點(diǎn)擊下圖所示圖標(biāo),即可進(jìn)入搜索界面,快速定位需要的東西。
圖2-7 高級(jí)搜索
搜索方法。類似電腦的快捷鍵Ctrl+F,此時(shí)不會(huì)打開小窗,在界面的下方會(huì)顯示一個(gè)輸入框,輸入想要查找的方法名,即可。
圖2-8 搜索方法
搜索類。菜單欄快捷方式,在彈框內(nèi)輸入想要查找的類名。
圖2-9 搜索類
3、luyten的使用
同樣,那前面做的demo.class文件進(jìn)行舉例使用。打開luyten工具進(jìn)入圖形界面,打開文件,可以看到展示如下圖。
圖3-1 luyten反編譯界面
可以看到,編碼格式有些問題,默認(rèn)為Unicode顯示。我們可以點(diǎn)擊【Settings】做一些配置,如勾選【Force Explicit Imports】,顯示全部引入包的路徑,默認(rèn)為*顯示;同時(shí)勾選【Enable Unicode Replacement】,正常顯示中文。具體如下圖。
圖3-2 luyten配置
之后就可以正常顯示了。反編譯中,點(diǎn)擊【save as】是生成當(dāng)前指定文件源碼,【save all】是生成當(dāng)前jar包的全部文件源碼。
圖3-3 生成源碼
總結(jié)
以上是生活随笔為你收集整理的反编译工具jd-gui、luyten学习使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MIPI屏数据发送命令解析
- 下一篇: 腾讯电脑管家具有计算机病毒查杀功能,腾讯