反编译扫描 - Chanzi-keji/chanzi GitHub Wiki
功能介绍
- 铲子提供了反编译扫描java代码漏洞的功能,以帮助用户在没有完整代码,但是有class或jar文件的情况下进行扫描。
适用场景
- 只有class文件或jar包,没有源代码
- 有一部分代码,还有一部分逻辑在class或jar文件
反编译扫描过程
- 创建任务>打开反编译>选择需要反编译的文件>开始任务
- 扫描引擎获取需要反编译的 class 和 jar 文件列表
- 反编译列表中的 class 文件
- 解压列表中的 jar 文件,解压时跳过不需要反编译的 package
- 对解压后的 jar 文件中的 class 进行反编译
- 对整个代码目录进行扫描(包括目录中不需要反编译的代码 和 反编译之后的java代码)
- 任务开始后,扫描输出窗口会显示需要反编译的jar/class文件数量,以及每个jar文件中需要反编译的package/class的数量
- 注意:如果是war包、或者jar包里嵌套jar包,需要您手动做一次解压操作
开启反编译操作
- 在创建任务时开启反编译
- 选择需要反编译的 jar 或 class
- 针对 jar 文件您可以只选择其中的一部分 package 进行反编译
- 如果您需要反编译的文件较多,逐个勾选就会特别繁琐,您可以通过关键字匹配来快速勾选
操作演示
- 如图勾选反编译-> 右键按关键字勾选-> 通过关键字选择package或class
- 选择包主要用于 jar 文件里的 class 反编译时缩小反编译范围
- 尽量按需勾选,这样可以更快速的完成扫描,选择大量 jar 包可能导致扫描时间过长或内存溢出
- 关键字勾选:匹配jar文件中的包路径、匹配非jar里的class的文件路径
