最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Java反編譯,小白也能變大神!揭秘編程逆向技巧,讓你輕松讀懂源代碼!

2023-08-29 09:51 作者:藍(lán)橋云課  | 我要投稿


接觸過(guò) Java 語(yǔ)言的你肯定知道,程序員所書寫的是源代碼,通過(guò)編譯器可以生成字節(jié)碼,然后通過(guò)解釋器轉(zhuǎn)換為機(jī)器碼。這樣,機(jī)器就能讀懂程序員希望它干啥了。



從上圖中我們可以看到,通過(guò) javac 命令可以將源代碼編譯成字節(jié)碼,然后通過(guò) java 命令將字節(jié)碼解釋成機(jī)器碼,沒(méi)有問(wèn)題機(jī)器就運(yùn)行,這樣我們就可以看到程序結(jié)果了。
本實(shí)驗(yàn)中已經(jīng)提供給了大家一個(gè) Test.java 源文件和 Person.class 字節(jié)碼文件,如下圖所示:



我們可以執(zhí)行以下命令看一看效果:

打開(kāi) Test.java 源代碼:

從代碼中可見(jiàn),使用到了 Person 類調(diào)用了類中的方法進(jìn)行數(shù)據(jù)操作,然而提供給大家的是 Person.class,字節(jié)碼文件是無(wú)法直接打開(kāi)的。



那么問(wèn)題來(lái)了.class 字節(jié)碼文件應(yīng)該如何獲取信息呢?


沒(méi)錯(cuò)這里只提供了字節(jié)碼文件 Person.class,接下來(lái)就來(lái)告訴大家如何通過(guò)字節(jié)碼文件獲取類中成員信息。


javap 命令

我們可以通過(guò) javap 命令,來(lái)獲取源文件中的基本信息,這叫反編譯操作。


javap 命令是 JDK 自帶的反匯編器,用來(lái)解析字節(jié)碼文件。


語(yǔ)法格式:

注意:使用 javap 查看字節(jié)碼文件的內(nèi)容,必須提供類名,或者使用 Xxx.class 也可以,當(dāng)書寫為 *.class 時(shí),表示當(dāng)前目錄下的所有字節(jié)碼文件。


查看 Person 類的信息:


也可以查看 JDK 提供的 Object 類信息:


不使用選項(xiàng)參數(shù)的情況下可以查看到 public、protected 修飾的和默認(rèn)情況下的屬性和方法。


使用選項(xiàng)參數(shù) -h

查看所有選項(xiàng)信息以及各自的作用,命令如下:


使用選項(xiàng)參數(shù) -version

查看編譯器的版本信息,命令如下:


使用選項(xiàng)參數(shù) -p

查看 Person 類中所有定義的屬性和方法,命令如下:


使用選項(xiàng)參數(shù) -sysinfo

查看 Person 類的系統(tǒng)信息,命令如下:


選項(xiàng)參數(shù)就不一一講解了,大家可以自己都去試試。


最后,說(shuō)一下反編譯后的內(nèi)容我們也可以保存到指定的文件中,命令如下:


相信大家對(duì) javap 命令有了一定的認(rèn)識(shí),也會(huì)進(jìn)行了簡(jiǎn)單的使用,這個(gè)命令挺有意思吧!


當(dāng)然了,若 Person.class 文件是經(jīng)過(guò)加密處理的,那么 javap 命令將沒(méi)有用了哦~


今天的分享就到這里啦,如果你想了解更多技術(shù)干貨,關(guān)注藍(lán)橋云課不錯(cuò)過(guò)~




Java反編譯,小白也能變大神!揭秘編程逆向技巧,讓你輕松讀懂源代碼!的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
漠河县| 鹰潭市| 蒲江县| 肥乡县| 荔波县| 突泉县| 桃源县| 自治县| 贺兰县| 贵德县| 杂多县| 宁安市| 资源县| 东光县| 锡林郭勒盟| 淳安县| 林周县| 四子王旗| 淮安市| 石林| 屏山县| 宜州市| 冷水江市| 海口市| 大余县| 桐乡市| 兴安盟| 周宁县| 靖江市| 凤凰县| 巨野县| 遂溪县| 马公市| 湾仔区| 淄博市| 裕民县| 敦煌市| 东港市| 额济纳旗| 元朗区| 锡林郭勒盟|