手动更改class文件
更改class文件步骤:
1、用java反编译工具翻译,看是否有需要更改的信息。
2、用jclasslib工具查看需要更改的东西在哪一行。
3、用java代码更改class文件,如下:
/**
*
*读取class文件,并更改。
*
**/
public class Reclass {
@SuppressWarnings("deprecation")
public static void main(String[] args) throws Exception {
String filePath = "这个是文件路径!";
FileInputStream fis = new FileInputStream(filePath);
【手动更改class文件】
DataInput di = new DataInputStream(fis);
ClassFile cf = new ClassFile();
cf.read(di);
CPInfo[] infos = cf.getConstantPool();
int count = infos.length;
for (int i = 0;
i < count;
i++) {
if (infos[i] != null) {//如果文件内容不是空。
System.out.print(i);
System.out.print(" = ");
System.out.print(infos[i].getVerbose());
System.out.print(" = ");
System.out.println(infos[i].getTagVerbose());
if(i == 60){//表示在哪一行。
ConstantUtf8Info uInfo = (ConstantUtf8Info)infos[i];
//http://10.7.1.201/services/weixin/MessageService?wsdl
uInfo.setBytes("需要更改的东西".getBytes());
infos[i]=uInfo;
}
}
}
cf.setConstantPool(infos);
fis.close();
File f = new File(filePath);
ClassFileWriter.writeToFile(f, cf);
}
}
推荐阅读
- 136.|136. Single Number
- 【Tomcat源码阅读分享】—(5)Tomcat中的ClassLoader
- 浅谈iOS|浅谈iOS 11.0中UITableView 都更改了什么( (二))
- 【Flink】Flink手动触发savepoint失败问题
- 手动实现bind方法
- 你还在手动备份电脑文件吗(FileYee帮你一键解决数据自动备份!)
- 如何理解es6中的class,以及class中的constructor函数
- 图片转文字,你还在手动输入吗()
- 关于|关于 java.lang.NoClassDefFoundError: com.umeng.analytics.d的问题
- Panda|Panda Class 中班生活之开学Day3.