五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

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

Asmtools工具修改Java字節(jié)碼,并了解boolean類型在虛擬機中的表示方法

2020-08-04 18:49 作者:扎克蕉  | 我要投稿

說明:

在學習極客時間——《深入拆解JVM虛擬機》專欄中,有用到asmtools這樣一個工具,用以修改class文件。

一.獲取工具

獲取工具方法:

  1. 自己構(gòu)建asmtools.jar:https://www.cnblogs.com/yelongsan/p/9674723.html

  2. 直接下載asmtools.jar:https://yun.515code.com/file/asmtools.jar

另外,下載 JD-GUI ,它是".class"文件的反編譯工具。

拿到j(luò)ar包后,我們進入命令行即可。

二.測試

1.生成一個java文件,名字為 Foo.java

echo命令生成Foo.java

2.編譯并執(zhí)行

編譯與執(zhí)行Java文件

3.將class文件轉(zhuǎn)換為jasm文件

class文件轉(zhuǎn)換為jasm文件

我們都知道,boolean類型為true時在虛擬機用1代替(boolValue在虛擬機中值為1)

接下來,將第一個 iconst_1 改為 iconst_2( 相當于把boolValue值改為2 )

4.將jasm文件轉(zhuǎn)換為class文件

java -jar asmtools.jar jasm Foo.jasm

5.使用 JD-GUI 打開 Foo.class(內(nèi)容如下)

Foo.class 文件內(nèi)容

再次執(zhí)行:

命令行執(zhí)行?java Foo

三.總結(jié)

1. 學會使用asmtools工具修改class文件:

  • 由 class 文件生成 jasm 文件:java -jar asmtools.jar jdis Foo.class > Foo.jasm

  • 由 jasm 文件生成 class 文件:java -jar asmtools.jar jasm Foo.jasm

2. 使用JD-GUI可以反編譯class文件

3. 通過上面簡單的小例子,證實了boolean類型在虛擬機中值為0或1,有趣的是 if (boolValue) 會被翻譯成 if (b != 0)


文章作者: 扎克蕉

文章鏈接: https://www.515code.com/posts/g3f7b5h7/

版權(quán)聲明: 本博客所有文章除特別聲明外,均采用 CC BY-NC-SA 4.0 許可協(xié)議。轉(zhuǎn)載請注明來自 515code-實驗室。


Asmtools工具修改Java字節(jié)碼,并了解boolean類型在虛擬機中的表示方法的評論 (共 條)

分享到微博請遵守國家法律
额济纳旗| 穆棱市| 贵南县| 永城市| 美姑县| 阿拉善盟| 闸北区| 新沂市| 饶阳县| 衡阳县| 吐鲁番市| 浮山县| 海宁市| 新营市| 平邑县| 临高县| 禄劝| 克东县| 兰坪| 荃湾区| 新巴尔虎右旗| 泾源县| 河西区| 遵化市| 平乡县| 乌兰浩特市| 金乡县| 清新县| 安乡县| 娄底市| 郑州市| 哈尔滨市| 凉山| 察隅县| 广元市| 汤阴县| 石城县| 绥德县| 乐昌市| 洪雅县| 建宁县|