日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

反编译工具jd-gui、luyten学习使用

發布時間:2023/12/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 反编译工具jd-gui、luyten学习使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、反編譯

1.1介紹

要了解反編譯,首先需要了解計算機語言,它包括機器語言、匯編語言、高級語言三種。其中,機器語言和匯編語言通常被稱之為低級語言。

簡單來說,可以這樣簡單的理解:低級語言是計算機認識的語言、高級語言是程序員認識的語言。

所謂編譯,就是指高級語言轉換成低級語言讓計算機執行的過程。反編譯則相反,通過低級語言進行反向工程,獲取其源代碼。

1.2作用

1. Java這門編程語言,有許多如泛型、自動裝箱拆箱等語法糖。因為java虛擬機不認識這些,所以就會在編譯的時候進行相應的解糖,得到class文件。反編譯工具就可以幫我們反編譯class文件,獲得一份java文件,讓我們了解到這些語法糖是如何實現的。

2.可以對其他人的代碼進行反編譯,學習代碼實現。或者通過源代碼查找bug,制作外掛等。

1.3防止反編譯

由于我們有工具可以對Class文件進行反編譯,當然就要有對應的技術可以應對反編譯,從而保護java程序。比較典型的應對策略如下:

(1)隔離Java程序,讓用戶接觸不到你的Class文件

(2)對Class文件進行加密,提高破解難度

(3)代碼混淆,將代碼轉換成功能上等價,但是難于閱讀和理解的形式

2、jd-gui的使用

首先我們可以自制一個demo的class文件來測試使用反編譯工具。在自定義路徑下,新建一個demo的java文件。簡單測試即可,具體內部代碼如下圖。

圖2-2 demo.java

然后我們在該路徑下,用cmd進入命令界面,輸入javac demo.java指令,即可將java文件編譯成class文件,并在同目錄下出現。

圖2-3 編譯demo.java文件

圖2-4 同目錄下出現demo.class文件

得到class文件以后我們就可以來測試反編譯功能了。首先還是打開jd-gui.exe文件。單擊【file】從中選擇【Open File ...】選項,彈出一個文件選擇框,可以選擇要打開的文件,或者直接單擊文件夾圖標,直接彈出文件選擇框;從文件選擇框中選擇要打開的.class類型的文件,單擊【確定】。在打開的文件里,左側可以看到文件的保存位置,類及方法,右側顯示類的具體內容,注釋不會顯示

圖2-5 打開文件進行反編譯

圖2-6 反編譯結果

Jd-gui同時也支持高級搜索。點擊下圖所示圖標,即可進入搜索界面,快速定位需要的東西。

圖2-7 高級搜索

搜索方法。類似電腦的快捷鍵Ctrl+F,此時不會打開小窗,在界面的下方會顯示一個輸入框,輸入想要查找的方法名,即可。

圖2-8 搜索方法

搜索類。菜單欄快捷方式,在彈框內輸入想要查找的類名。

圖2-9 搜索類

3、luyten的使用

同樣,那前面做的demo.class文件進行舉例使用。打開luyten工具進入圖形界面,打開文件,可以看到展示如下圖。

圖3-1 luyten反編譯界面

可以看到,編碼格式有些問題,默認為Unicode顯示。我們可以點擊【Settings】做一些配置,如勾選【Force Explicit Imports】,顯示全部引入包的路徑,默認為*顯示;同時勾選【Enable Unicode Replacement】,正常顯示中文。具體如下圖。

圖3-2 luyten配置

之后就可以正常顯示了。反編譯中,點擊【save as】是生成當前指定文件源碼,【save all】是生成當前jar包的全部文件源碼。

圖3-3 生成源碼

總結

以上是生活随笔為你收集整理的反编译工具jd-gui、luyten学习使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。