电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Java如何修改.class文件變量

瀏覽:3日期:2022-08-25 13:51:22

最近遇到了一個問題,一份很老的代碼要修改里面的變量,源碼早就和開發(fā)者一起不知去向,其中引用了一些jar包導致無法直接編譯,只能直接修改.class文件

idea安裝jclasslib-bytecode-viewer插件

標準方式安裝插件

Java如何修改.class文件變量

準備要修改的.class文件

這里我們寫一個簡單的java方法

/** * @Description: * @author: wei.wang * @since: 2020/9/5 11:18 * @history: 1.2020/9/5 created by wei.wang */public class HelloWorld { public static void main(String[] args) { String word = 'Hello World'; System.out.println(word); }}

查找要修改的變量

打開要修改的.class文件,點擊view->Show Bytecode With Jclasslib ,在Constants Pool中使用Text filter功能找到要修改的內容,我們發(fā)現(xiàn)有一個String類型常量,指向23,點擊23就能看到要修改的內容

Java如何修改.class文件變量

Java如何修改.class文件變量

修改.class文件中的變量

23是要修改的內容

/** * @Description: * @author: wei.wang * @since: 2020/9/4 19:42 * @history: 1.2020/9/4 created by wei.wang */import java.io.*;import org.gjt.jclasslib.io.ClassFileWriter;import org.gjt.jclasslib.structures.CPInfo;import org.gjt.jclasslib.structures.ClassFile;import org.gjt.jclasslib.structures.constants.ConstantUtf8Info;public class Test { public static void main(String[] args) throws Exception { String filePath = 'F:GitCodezerotest111targetclassesHelloWorld.class'; FileInputStream fis = new FileInputStream(filePath); DataInput di = new DataInputStream(fis); ClassFile cf = new ClassFile(); cf.read(di); CPInfo[] infos = cf.getConstantPool(); int count = infos.length; System.out.println(count); 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());//對23進行修改if(i == 23){ ConstantUtf8Info uInfo = (ConstantUtf8Info)infos[i]; uInfo.setBytes('Hello World HELLO WORLD'.getBytes()); infos[i]=uInfo;} } } cf.setConstantPool(infos); fis.close(); File f = new File(filePath); ClassFileWriter.writeToFile(f, cf); }}

執(zhí)行結果

可以看到已經修改完成

public class HelloWorld { public HelloWorld() { } public static void main(String[] args) { String word = 'Hello World HELLO WORLD'; System.out.println(word); }}

以上就是Java如何修改.class文件變量的詳細內容,更多關于Java修改文件變量的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
主站蜘蛛池模板: 异噻唑啉酮-均三嗪-三丹油-1227-中北杀菌剂厂家 | 电机铸铝配件_汽车压铸铝合金件_发动机压铸件_青岛颖圣赫机械有限公司 | 法钢特种钢材(上海)有限公司 - 耐磨钢板、高强度钢板销售加工 阀门智能定位器_电液动执行器_气动执行机构-赫尔法流体技术(北京)有限公司 | KBX-220倾斜开关|KBW-220P/L跑偏开关|拉绳开关|DHJY-I隔爆打滑开关|溜槽堵塞开关|欠速开关|声光报警器-山东卓信有限公司 | 免费B2B信息推广发布平台 - 推发网 | 家乐事净水器官网-净水器厂家「官方」| 水质监测站_水质在线分析仪_水质自动监测系统_多参数水质在线监测仪_水质传感器-山东万象环境科技有限公司 | 消电检公司,消电检价格,北京消电检报告-北京设施检测公司-亿杰(北京)消防工程有限公司 | 电子书导航网_电子书之家_电子书大全_最新电子书分享发布平台 | 【365公司转让网】公司求购|转让|资质买卖_股权转让交易平台 | 附着力促进剂-尼龙处理剂-PP处理剂-金属附着力处理剂-东莞市炅盛塑胶科技有限公司 | 电脑刺绣_绣花厂家_绣花章仔_织唛厂家-[源欣刺绣]潮牌刺绣打版定制绣花加工厂家 | 无线讲解器-导游讲解器-自助讲解器-分区讲解系统 品牌生产厂家[鹰米讲解-合肥市徽马信息科技有限公司] | 智能汉显全自动量热仪_微机全自动胶质层指数测定仪-鹤壁市科达仪器仪表有限公司 | 泡沫消防车_水罐消防车_湖北江南专用特种汽车有限公司 | 报警器_家用防盗报警器_烟雾报警器_燃气报警器_防盗报警系统厂家-深圳市刻锐智能科技有限公司 | 校服厂家,英伦校服定做工厂,园服生产定制厂商-东莞市艾咪天使校服 | 水平垂直燃烧试验仪-灼热丝试验仪-漏电起痕试验仪-针焰试验仪-塑料材料燃烧检测设备-IP防水试验机 | 针焰试验仪,灼热丝试验仪,漏电起痕试验仪,水平垂直燃烧试验仪 - 苏州亚诺天下仪器有限公司 | 集装箱标准养护室-集装箱移动式养护室-广州璟业试验仪器有限公司 | 南京交通事故律师-专打交通事故的南京律师 | 盘扣式脚手架-附着式升降脚手架-移动脚手架,专ye承包服务商 - 苏州安踏脚手架工程有限公司 | 筒瓦厂家-仿古瓦-寺庙-古建琉璃瓦-宜兴市古典园林建筑陶瓷厂有限公司 | 熔体泵_熔体出料泵_高温熔体泵-郑州海科熔体泵有限公司 | 工业洗衣机_工业洗涤设备_上海力净工业洗衣机厂家-洗涤设备首页 bkzzy在职研究生网 - 在职研究生招生信息咨询平台 | 广州监控安装公司_远程监控_安防弱电工程_无线wifi覆盖_泉威安防科技 | 北京包装设计_标志设计公司_包装设计公司-北京思逸品牌设计 | 步进_伺服_行星减速机,微型直流电机,大功率直流电机-淄博冠意传动机械 | 手板-手板模型-手板厂-手板加工-生产厂家,[东莞创域模型] | 电磁辐射仪-电磁辐射检测仪-pm2.5检测仪-多功能射线检测仪-上海何亦仪器仪表有限公司 | 国际金融网_每日财经新资讯网 | 一体化污水处理设备,一体化污水设备厂家-宜兴市福源水处理设备有限公司 | 英国公司注册-新加坡公司注册-香港公司开户-离岸公司账户-杭州商标注册-杭州优创企业 | 土壤养分检测仪_肥料养分检测仪_土壤水分检测仪-山东莱恩德仪器 大型多片锯,圆木多片锯,方木多片锯,板材多片锯-祥富机械有限公司 | 金属雕花板_厂家直销_价格低-山东慧诚建筑材料有限公司 | 拼装地板,悬浮地板厂家,悬浮式拼装运动地板-石家庄博超地板科技有限公司 | 杭州标识标牌|文化墙|展厅|导视|户内外广告|发光字|灯箱|铭阳制作公司 - 杭州标识标牌|文化墙|展厅|导视|户内外广告|发光字|灯箱|铭阳制作公司 | 一礼通 (www.yilitong.com)-企业礼品解决方案一站式服务平台 | 山西3A认证|太原AAA信用认证|投标AAA信用证书-山西AAA企业信用评级网 | 密集架-密集柜厂家-智能档案密集架-自动选层柜订做-河北风顺金属制品有限公司 | 玉米深加工设备|玉米加工机械|玉米加工设备|玉米深加工机械-河南成立粮油机械有限公司 |