IDEA利用jclasslib 修改class文件的实现

2025-05-29 0 59

idea安装jclasslib-bytecode-viewer插件

file–>settings–>plugis ,搜索安装jclasslib-bytecode-viewer,重启idea

IDEA利用jclasslib 修改class文件的实现

准备好class文件

把要修改的class文件用idea打开。

使用jclasslib

view–>show bytecode with jclasslib.
常量池,使用过滤器过滤文本。找到对应的指向数字。

IDEA利用jclasslib 修改class文件的实现

IDEA利用jclasslib 修改class文件的实现

IDEA利用jclasslib 修改class文件的实现

使用下列代码更改内容。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44
package com.yys.screendisplay.controller;

import java.io.*;

import com.sun.org.apache.bcel.internal.classfile.constantstring;

import org.gjt.jclasslib.io.classfilewriter;

import org.gjt.jclasslib.structures.classfile;

import org.gjt.jclasslib.structures.constant;

import org.gjt.jclasslib.structures.constants.constantdoubleinfo;

import org.gjt.jclasslib.structures.constants.constantutf8info;

import org.gjt.jclasslib.structures.constants.constantstringinfo;

public class test {

public static void main(string[] args) throws exception {

string filepath = "c:\\\\users\\\\hms\\\\desktop\\\\appservice.class";

fileinputstream fis = new fileinputstream(filepath);

datainput di = new datainputstream(fis);

classfile cf = new classfile();

cf.read(di);

constant[] infos = cf.getconstantpool();

int count = infos.length;

for (int i = 0; i < count; i++) {

if (infos[i] != null) {

if(i==1813){

system.out.print(i);

system.out.print(" = ");

system.out.print(infos[i].getverbose());

system.out.print(" = ");

system.out.println(infos[i]);

system.out.println(infos[i].getclass().getsimplename());

constantutf8info uinfo = (constantutf8info)infos[i];//根据对应的类型转换

uinfo.setstring("");

infos[i]=uinfo;

}

}

}

cf.setconstantpool(infos);

fis.close();

file f = new file(filepath);

classfilewriter.writetofile(f, cf);

}

}

其他

对应的jar包可以在idea安装的插件里面找。

IDEA利用jclasslib 修改class文件的实现

报java.lang.classnotfoundexception: kotlin.jvm.internal.reflection,加上

?

1

2

3

4

5
<dependency>

<groupid>com.fasterxml.jackson.module</groupid>

<artifactid>jackson-module-kotlin</artifactid>

<version>2.9.4.1</version>

</dependency>

到此这篇关于idea利用jclasslib 修改class文件的实现的文章就介绍到这了,更多相关idea jclasslib 修改class内容请搜索快网idc以前的文章或继续浏览下面的相关文章希望大家以后多多支持快网idc!

原文链接:https://blog.csdn.net/qq_41578741/article/details/114066777

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 IDEA利用jclasslib 修改class文件的实现 https://www.kuaiidc.com/108696.html

相关文章

发表评论
暂无评论