自动反编译闭源应用,创建codeql数据库
首先下载ecj.jar和idea提供反编译的java-decompiler.jar,将其放置在脚本的相同目录中。
1.在windows上使用
2.第二步不是必须项,可以直接执行第一步,然后就可以开始创建数据库
3.最好限制下要分析的包范围,过大反而不利于分析。
默认情况下使用java-decompiler.jar进行反编译,会在项目源代码路径的父级目录创建以项目名+_save+时间戳命名的目录
参数-a
:指定项目源代码路径
参数-d
:指定反编译代码的依赖包路径
python3 codeql_compile.py -a D:\project\java\apps\2\cloud -d D:\project\java\apps\BOOT-INF\lib
执行后会在当前目录生成 [项目名]save[时间戳] 目录,该目录的run.cmd是编译代码的执行文件
对java-decompiler反编译的内容先编译一遍确认失败文件,再使用procyon反编译替换失败文件
先下载procyon.jar,将其放置在脚本的相同目录中
参数-o
:指定成功反编译代码存放的路径,即先前java-decompiler.jar反编译后的路径
参数-c
:启用校验
python3 codeql_compile.py -a D:\project\java\apps\2\cloud -o D:\project\java\apps\2\cloud_save_1641018608 -c
参数--command
:指定生成的run.cmd
D:\codeql.exe database create D:\codeql\databases\demo-database --language="java" --source-root=D:\codeql\demo_save_1641018608 --command="run.cmd"