taibeihacker
Moderator
CS 二次开发
工具:IDEA 自帶的java-decompiler.jar
1 CS 反编译
以MAC 為例,IDEA 自帶的java-decompiler.jar 地址為:/Applications/IntelliJ IDEA.app/Contents/plugins/java-decompiler/lib/java-decompiler.jar
因為MANIFEST.MF 中沒有main class 屬性,沒有指定主類,因此不能直接使用java -jar,如果想要執行java 包中具體的類,要使用java -cp 輸入如下命令:
使用方法:
1
java -cp java-decompiler.jar org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true cs_bin/cobaltstrike.jar cs_src

反編譯後,會自動打包成jar 包,右鍵解壓後打開可以看到都是.java 了,使用這個方法會非常方便,就不需要第三方工具,這個反編譯出來的就可以直接放入IntelliJ IDEA 中,可直接實現代碼搜索,相關的交叉引用。

2 CS 二次开发准备工作
2.1 创建工程
打開IntelliJ IDEA 選擇Create New Project 一直選擇Next。
創建工程目錄:

創建好後需要先建立兩個文件夾,右擊選擇New Directory 建立一個decompiled_src 文件夾,之後再建立一個lib 文件夾。
2.2 配置依赖关系
把剛剛反編譯好的CobaltStrike 複製到decompiled_src 中,然後把它解壓出來,可看到一個完整的反編譯後的目錄。
隨後把原始的未編譯的CobaltStrike 放到剛剛新建的lib 中去。
接下來需要對這個項目進行設置,點擊File 中的Project Structure 在Modules 對Dependencies 進行設置。


點擊添加Jar or Directories,添加./lib 下的原始JAR 包,並勾選Export:

2.3 寻找 Main Class
點擊./lib/META_INF/MANIFEST.MF ,複製Main-Class:
將原始包中MANIFEST.MF 的內容複製到項目中的MANIFEST.MF
2.4 配置 Artifacts


接下來在decompiled_src 目錄中找到已經反編譯完的aggressor 主類,右擊選擇Refactor ——Copy File 到src 下的相同目錄:


2.5 修改后编译
點擊Build - Build Artifacts - build3 IDEA 其它 Tips
3.1 比对 JAR 包
在進行bin 文件對比時,自動進行反編譯命令行形式:
1
2
3
4
5
windows:
/path/to/idea/bin/idea64.exe diff absolute/path/to/file1 absolute/path/to/file2
mac:
/Applications/IntelliJ IDEA.app/Contents/MacOS/idea absolute/path/to/file1 absolute/path/to/file2

在IDEA 中:
選中要比對的兩個文件,Command + D 進行比對