POD154981 发表于 2021-2-19 19:38

ammo 发表于 2021-2-19 19:43

反编译修改后 重新打包,打包 可以用idea

Barnes 发表于 2021-2-19 19:52

Recaf不错 是修改字节码的 可以直接保存
Github链接https://github.com/Col-E/Recaf

Vvvvvoid 发表于 2021-2-19 20:06

javassist 可以
但是比较复杂

ClassPool pool = ClassPool.getDefault();
      //设置目标类的路径
      pool.insertClassPath("C:\\Users\\voidm\\AppData\\Local\\finalshell\\finalshell.jar");
      //获得要修改的全路径类名
      CtClass clazz = pool.get("myssh.abc");

      // CtField field = clazz.getDeclaredField("field");
      //添加构造器
      // CtConstructor constructor = new CtConstructor(new CtClass[]{},clazz);
      // constructor.setBody("{this.flag= true;}");
      // clazz.addConstructor(constructor);
      // 编辑已有构造
      CtConstructor[] declaredConstructors = clazz.getDeclaredConstructors();
      declaredConstructors.insertAfter("this.flag= true;");


      //保存到文件里
      clazz.writeFile() ;
      clazz.writeFile("C:\\Users\\voidm\\Desktop\\temp");

涛之雨 发表于 2021-2-21 00:52

方法很多:
1:转Java,修改后再重新打包
2:使用字节码直接修改

POD154981 发表于 2021-2-21 07:21

页: [1]
查看完整版本: JAR怎么修改?有类似DNSPY的工具吗?