• 记录crack某IDE插件过程


    声明:本文仅记录学习过程,已对关键位置脱敏处理,未提供任何工具,请支持正版。

    反编译jar包

    使用cfr进行对插件核心jar包MyBxxxxxx-obfuss.jar进行反编译,在本地生成a.txt。

    java -jar cfr-0.152.jar MyBxxxx-obfuss.jar --renamedupmembers true --hideutf false >> a.txt

    查看反编译结果

    找到关键部分,只需要修改两处getter方法即可。

    1. public Boolean e() {
    2. return Boolean.TRUE;
    3. }
    4. public Long a() {
    5. return new Long(4797976044000L);
    6. }

    修改class文件

    建一个项目,在pom引用javassist

    1. org.javassist
    2. javassist
    3. 3.25.0-GA

    修改上一步骤中的getter方法,输出修改后的class文件。java代码:

    1. public static void main(String[] args) throws Exception {
    2. ClassPool classPool = ClassPool.getDefault();
    3. // 直接使用 jar 路径
    4. classPool.appendClassPath("D:\\test\\new\\xxxx.jar");
    5. // 获取指定类
    6. CtClass ctClass = classPool.get("com.ccnode.codegenerator.Y.e.e");
    7. CtMethod method = ctClass.getDeclaredMethod("e");
    8. CtMethod method2 = ctClass.getDeclaredMethod("a");
    9. method.setBody("return Boolean.TRUE;");
    10. method2.setBody("return new Long(4797976044000L);");
    11. // 输出修改后的class
    12. ctClass.writeFile("D:\\test\\new");
    13. }

    执行以上java代码后,即可在D:\test\new目录写入class文件所在的包和class文件。

    替换jar包中的class

    这一步骤需要用java命令操作,不能使用压缩软件去操作。

    jar uvf xxxxxxxx.jar com\ccnode\codegenerator\Y\e\e.class

    将新的jar包替换进插件zip文件中,安装该插件,code随便输入即可。

  • 相关阅读:
    Web基础和HTTP协议
    短链接系统的设计与实现
    Java NIO全面详解(看这篇就够了)
    组件化系列~代码分支管理
    [容器][Docker]Docker参数设置
    【Python】matplotlib分格显示
    饭局从入门到精通
    app全屏广告变现,有哪些利弊?如何发挥全屏广告的变现潜力?
    非暴力沟通笔记
    力扣labuladong一刷day5共3题
  • 原文地址:https://blog.csdn.net/u011677255/article/details/132895435