何为反编译?
顾名思义,反编译的的概念与编译相反,说白了就是将已封装好的程式还原到未封装的状态,目的是找出程序的源代码
首先我们先找到 IntelliJ IDEA 中的 java-decompiler.jar
文件,java-decompiler.jar
是 IntelliJ IDEA 自带的反编译插件,一般存在此目录下:
IntelliJ IDEA存放位置\plugins\java-decompiler\lib\
然后将 coablt_strike
拷贝到进行二次开发的目录中,再新建两个目录(这里我命名为 cs-begin
和 cs-end
),其中 cs-begin
用来存放未反编译的 Cobalt Strike , cs-end
用来存放反编译后的源码,因为这里我们是对原版 Cobalt Strike 进行二次开发,所以文件夹中不存放 CSAgent (Cobalt Strike 破解工具),只放入 cobaltstrike.jar
,再把 java-decompiler.jar
放在你需要反编译的jar包路径的上级目录
随后执行命令(这里我写的有点麻烦了,大家写绝对路径就可以),一开始我使用的是 JDK 15 报 加载主类时出现 LinkageError
错误,改为 JDK 17 后解决,如果懒得折腾 JDK 版本,可以用 jd-gui
或 CFR
这类反编译工具,这些工具通常都有独立的可执行文件,不需要使用 java 命令来运行 jar 文件
java -cp java-decompiler.jar org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dsg=true D:\ShenTou\CobaltStrike\coablt_strike(2)\cs-begin\cobaltstrike.jar
D:\ShenTou\CobaltStrike\coablt_strike(2)\cs-end# java -cp java-decompiler.jar org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dsg=true cs原版路径 二次开发目录
运行成功后,会出现这样的页面,稍等 2-3 分钟就好
之后我们在解压缩一下 cobaltstrike.jar
就可以获得源码了
如果成功反编译,你解压缩后的文件是 .java
格式
反之,如果没有成功,文件是 .class
格式
★
欢 迎 加 入 星 球 !
代码审计+免杀+渗透学习资源+各种资料文档+各种工具+付费会员
进成员内部群
星球的最近主题和星球内部工具一些展示
加入安全交流群
关 注 有 礼
还在等什么?赶紧点击下方名片关注学习吧!
推荐阅读