Feysh-Group / corax-community

Corax for Java: A general static analysis framework for java code checking.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

无法正常使用

LoRexxar opened this issue · comments

我遇到的问题比较模糊,所以不清楚是哪一步出问题了,我从头到尾讲下过程。

  • 编译规则检查器,编译成功,但单测失败
    image
    单测失败的原因是版本问题,我认为可能是有别的问题就忽略了,毕竟编译成功了
    image

  • 扫描没有结果
    这里我扫的是java-sec-code的代码
    https://github.com/JoyChou93/java-sec-code

按照文档给出的执行命令

corax-java-cli-community-2.0-product> java -jar .\corax-cli-community-2.0.jar --verbosity info --output build/output --enable-data-flow true --target java --result-type sarif --auto-app-classes D:\program\java_pro\java-sec-code-1.0.0.jar

顺利跑完了,但是没有结果
image
image
image

看提示显示 class major version 63 (java 19), 引擎里的class解析库支持的版本较低导致的,也就是您编译class时候java版本太高,或者运行分析器时的 java 解释器版本太高,我们目前只在java 17版本上进行测试,大于17的java都可能出现问题。麻烦改为17哈,cmd 里面 set JAVA_HOME=jdk17path 再用 gradlew 编译

另外您的参数 --auto-app-classes D:\program\java_pro\java-sec-code-1.0.0.jar 只指向了一个jar包,此参数在文档中强调了必须要完整项目源码,不然无法正确分类您的class而找不到分析目标, 可以再添加一个 --auto-app-classes D:\program\java_pro\java-sec-code\ 参数涵盖源码。一般的如果项目中包含二进制产物和库和完整源码,则非常建议 --auto-app-classes 直接指向项目根目录即可,它会自动搜索加载,哪怕是jar中包含jar

我再试试看

另外版本问题可以说明白些,毕竟你提到的是不低于17即可

已经更新文档限制了java版本,感谢

https://iotaa.cn/archives/corax-community 可以看下这个

完整看了一遍,看来是程序分析高手呀,手动扩展一个checker,👍