当前位置: 代码迷 >> 综合 >> 掌握IDEA的这两款插件,写“破解补丁”分分钟
  详细解决方案

掌握IDEA的这两款插件,写“破解补丁”分分钟

热度:18   发布时间:2024-03-06 17:25:32.0

说实话,没得几年的功夫,要破解一款大型的软件,真的很难。也没得什么武功秘籍帮你快速打通任督二脉,如果你真一两周就能搞定,那只能说明你是破解奇才~

 

破解思路其实都一样,就是分析程序,找到破解点,写相应的破解补丁。其实最难的点便是分析程序,因为你需要去分析字节码(跟汇编类似),了解程序逻辑。可能有的同学会说,我直接用反编译工具,直接就能看到源码,你有这种想法,那也正好证明你根本没有搞过jar包的逆向分析,目前那种牛逼的软件,基本上都会混淆,加各种迷惑代码,基本上都是搞得面目全非,见下图~

说实话,分析起来真的很头疼~

 

所以,本文我就不教你怎么找破解点了,等以后有时间了在私密的圈子再聊,接下来咱们主要来讲讲如何用IDEA的插件来查看字节码,因为这个步骤的内容相对简单,不复杂。

 

# 字节码是什么?

 

说得直白一点,就是JVM执行的固定格式指令。你用java编译后的class文件,便是字节码文件,如下图

它便成就了Java的“一次编译,到处运行”。

 

如果你想去了解关于Java字节码的更多知识,建议去官网查看:

https://docs.oracle.com/javase/specs/jvms/se7/html/index.html

 

# 如何查看相应的字节码?

 

1、javap

 

其实java给咱们提供了一个查看字节码的工具 javap,见下图

执行如下指令

  •  
javap -verbose -p Inst10.class

 

有的同学可能觉得敲指令,这也太麻烦了,一点也不智能,有没有更好的方法呢?

 

肯定是有的啊,咱们强大的IDEA插件库里有两款插件可以使用,有所差异,各位同学可以根据自己的需求来把玩~

 

2、jclasslib bytecode viewer

 

这是一个可以可视化查看已编译字节码的工具。另外,它还提供一个库,可以让开发人员读写Java类文件和字节码。

 

开源地址:https://github.com/ingokegel/jclasslib

 

打开插件中心,搜索“jclasslib”,点击安装即可

使用前需要先编译java文件,再选择 View --> Show Bytecode With jclasslib进行查看,见下图

可以查看基本信息、常量池、接口、属性、函数等~

写破解补丁,咱们主要就看红色框内的字节码,它是写补丁的关键,关于怎么写补丁?这又是一个有趣的话题了~

 

3、ASM Bytecode Viewer

 

它是ASM官方开发了一款IDE插件,可以将 Java代码转换成ASM字节码类型代码。这简直就是小白的利器~

 

开源地址:https://github.com/elitegit/asm-intellij-plugin

 

打开插件中心,搜索“asm”,点击安装即可

在当前类文件上,右击菜单上选择 Show Bytecode outline

之后,便会出现当前Java代码对应的字节码文件

 

面板下有三项内容:

 

  • Bytecode 表示对应的class字节码文件

  • ASMified 表示利用ASM框架生成字节码对应的代码

  • Groovified 对应的是class字节码指令

 

有了这个工具,你不懂字节码,也能写出漂亮的asm代码~

  相关解决方案