1717新版本砍掉了原先的功能,只支持批量搜索文件夹下的jar文件反编译分析
1818
1919# 使用说明
20- 原使用说明可以参考公众号文章:https://mp.weixin.qq.com/s/fRAnIqa8OieuTt2iLuKdCg?token=329619276&lang=zh_CN
2120
22- 注意!更新后请参考公众号新文章使用,原方法已不适用
21+ ## 1) 命令行模式
2322
24- 在config.properties中配置源码所在文件夹、源码输出文件夹、搜索字符串
25- 分别对应配置字段:csDirectory、outputDirectory、searchText
23+ ``` bash
24+ java -jar JarMethodFinder-1.0-SNAPSHOT.jar < jarDirectory> < keywords> [cfrJarPath] [outputDir]
25+ ```
26+
27+ - ` jarDirectory ` : 待审计 JAR 根目录(会递归扫描)
28+ - ` keywords ` : 搜索关键字,支持逗号分隔多个,例如:` exec,Runtime.getRuntime,ProcessBuilder `
29+ - ` cfrJarPath ` (可选): CFR 反编译器路径,不传则读取环境变量 ` CFR_JAR_PATH ` ,再兜底 ` ./cfr.jar `
30+ - ` outputDir ` (可选): 导出目录(用于 JSON/TXT 结果导出)
31+
32+ 示例:
33+
34+ ``` bash
35+ java -jar JarMethodFinder-1.0-SNAPSHOT.jar /data/jars " exec,Runtime.getRuntime" /tools/cfr.jar /tmp/search-output
2636```
27- csDirectory=C:\\Users\\xxxx
28- outputDirectory=C:\\Users\\xxxx\\output
29- searchText=where,Concat,...
37+
38+ ## 2) config.properties 模式(推荐)
39+
40+ ``` bash
41+ java -jar JarMethodFinder-1.0-SNAPSHOT.jar --config config.properties
42+ # 或
43+ java -jar JarMethodFinder-1.0-SNAPSHOT.jar config.properties
3044```
31- searchText可以配置多个字符串关键字,并用,号进行分割
3245
33- 指定配置文件执行jar文件后,在输出文件夹中对每个方法输出结果文件
46+ 配置示例:
47+
48+ ``` properties
49+ jarDirectory =/data/jars
50+ keywords =exec,Runtime.getRuntime,ProcessBuilder
51+ cfrJarPath =/tools/cfr.jar
52+ outputDir =/tmp/search-output
53+ outputFormat =all
54+ caseSensitive =false
55+ contextLines =3
56+ ```
3457
35- 每个文件中记录了方法名称和方法中的利用链,还会展示上下文5行代码,更加直观的显示
58+ 字段说明:
3659
37- 如下指定关键字为MapFilePath,搜索出相关代码的效果
60+ - ` jarDirectory ` : JAR 扫描目录
61+ - ` keywords ` : 关键字列表(逗号分隔)
62+ - ` cfrJarPath ` : CFR 路径(可选)
63+ - ` outputDir ` : 导出目录(可选)
64+ - ` outputFormat ` : ` txt ` / ` json ` / ` all `
65+ - ` caseSensitive ` : 是否大小写敏感,默认 ` false `
66+ - ` contextLines ` : 匹配上下文行数(上下各 N 行),默认 ` 3 `
3867
3968
4069# 更新日志
@@ -43,19 +72,11 @@ searchText可以配置多个字符串关键字,并用,号进行分割
4372- 2026-03-06 优化JAR审计流程:
4473 - 支持跨平台CFR路径配置(第三参数或环境变量 ` CFR_JAR_PATH ` )
4574 - 修复反编译输出路径处理,减少误报“反编译失败”
75+ - 新增 ` config.properties ` 模式
76+ - 新增结果导出(` JSON/TXT/all ` )
77+ - 新增多关键字逗号分隔搜索
4678 - 优化匹配输出逻辑与去重,提升稳定性
4779
48- ## 新版执行示例
49-
50- ``` bash
51- # 方式1:命令行直接传 CFR 路径
52- java -jar JarMethodFinder-1.0-SNAPSHOT.jar /path/to/jars Runtime.getRuntime /path/to/cfr.jar
53-
54- # 方式2:环境变量配置 CFR 路径
55- export CFR_JAR_PATH=/path/to/cfr.jar
56- java -jar JarMethodFinder-1.0-SNAPSHOT.jar /path/to/jars Runtime.getRuntime
57- ```
58-
5980** 本工具由Code4th安全团队开发维护**
6081
6182![ image] ( https://ice.frostsky.com/2024/08/18/5559fc7abc47065e9e5e53a7dba2142b.jpeg )
0 commit comments