如何反编译jar并修改后还原为jar

如何反编译jar并修改后还原为jar

目标:修改jar包中某个类的某个方法后还原为新的jar

1.新建android工程,把旧的jar添加为lib

2.用jadx-gui打开旧的jar并保存所有资源

3.找到保存的资源中想修改的.java类

4.复制类中的内容, 在android工程中新建一个同样路径的包,并在包下创建同样名字的类,然后把复制的内容粘贴进去(或者把3中找到的java类直接放在同样路径的包下面)

5.修改爆红的地方及想修改的逻辑

6.android studio中点击build->recompile 当前的java 然后会在build/intermediates/javac/包路径下找到生成的.class文件

7.解压缩旧的jar,就像正常解压缩包一样,找到解压后对应包下的.class文件所在的文件夹

8.在文件夹打开.class文件,复制所有文件粘贴到第7步中的文件夹下,所有文件选择替换

9.在解压的旧的jar的根目录下执行命令 jar cvf unity-player-new.jar . 注意unity-player-new.jar为我自己命名的输出的jar的名称,可替换为自己想要命的名,注意后面有个空格和.不要忘记

注意:第7步中解压的文件夹中有多个unityPlayer@1.classes等类似的unityPlayer开头的代码全部删掉,然后在第8步放进去生成的所有unityPlayer.class 这样生成的jar中可以看到方法体, 如果不删除其余的会造成在android studio中查看时不显示方法内容

命令: 合并.class进入已有jar

jar uf existing.jar newclassfile.class

相关推荐
小江的记录本2 小时前
【JVM虚拟机】垃圾回收GC:四种引用类型:强引用、软引用、弱引用、虚引用(附《思维导图》+《面试高频考点清单》)
java·jvm·spring boot·后端·python·spring·面试
APIshop2 小时前
Python 获取 1688 商品采集 API 接口 | 工厂货源自动化对接商品信息 | 无需选品
运维·python·自动化
deepin_sir2 小时前
10 - 函数
开发语言·python
charlee443 小时前
《GIS基础原理与技术实践》配套案例(Python版)
python·conda·numpy·gis·环境配置
枫叶林FYL3 小时前
项目十:事件溯源仓储管理系统(WMS)仿真实现
开发语言·python
渣渣xiong5 小时前
从零开始:前端转型AI agent直到就业第五十七天-第五十八天
前端·人工智能·python
小L~~~6 小时前
基于贪心策略的混合遗传算法求解01背包问题
python·算法
才兄说6 小时前
机器人二次开发机器人动作定制?动作迁移数据优化
python
用户8356290780516 小时前
用 Python 实现 Excel 散点图绘制与定制
后端·python
PAK向日葵7 小时前
从零实现 Python 虚拟机(一):PVM 基本原理介绍
python