当前位置:   article > 正文

Android一点 修改jar的内容进阶_jar游戏修改

jar游戏修改

很多时候我们都想修改别人的jar来满足自己的需求,很多jar都是混淆且我们是没有源码的,那怎么办呢。。。


1、下载javassist.jar

2、新建一个java工程,如果有android内容的,我们还需要添加android.jar

3、解压jar,我们就可以看到jar的class文件了,然后找到我们需改修改的类和方法

4、进阶学习javassist.jar的使用

下面是简单的修改的一个demo

  1. import javassist.ClassPool;
  2. import javassist.CtClass;
  3. import javassist.CtMethod;
  4. import javassist.NotFoundException;
  5. public class Test {
  6. public static void main(String[] args) throws Exception{
  7. //这个是得到反编译的池
  8. ClassPool pool = ClassPool.getDefault();
  9. //取得需要反编译的jar文件,设定路径
  10. pool.insertClassPath("/Users/flyjun/Desktop/release/tbs.jar");
  11. //取得需要反编译修改的文件,注意是完整路径
  12. CtClass cc1 = pool.get("com.tencent.smtt.utils.b");
  13. try {
  14. //取得需要修改的方法
  15. CtMethod method = cc1.getDeclaredMethod("c");
  16. method.setBody("return null;");
  17. //取得需要修改的方法
  18. CtMethod method2 = cc1.getDeclaredMethod("d");
  19. method2.setBody("return null;");
  20. CtMethod method3 = cc1.getDeclaredMethod("e");
  21. method3.setBody("return null;");
  22. //写入保存
  23. cc1.writeFile();
  24. } catch (NotFoundException e) {
  25. e.printStackTrace();
  26. }
  27. }
  28. }

更多的使用方法自行百度


5、下面我们学习怎么把class文件打回jar,上面我们执行之后再根目录的包名下面会生成修改后的class文件,覆盖需要修改的文件即可

6、重新打包,jar命令的使用 jar -cvf test.jar com/ .     

7、test.jar为打包成jar的名字 ,com为class文件夹,/ . 是将文件夹下面的所有class文件打包进jar

8、我们进入放class的文件夹下,执行上面的命令就会在同级目录下生成目标jar了


是不是很6大笑



声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/626725
推荐阅读
相关标签
  

闽ICP备14008679号