Linux下Joern环境配置
2022/2/23 7:23:36
本文主要是介绍Linux下Joern环境配置,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、Joern简介
Joern 是一个用于静态代码分析的命令行工具。Joern 可以帮助您找到并纠正具有数十万行代码的程序中的安全漏洞,包括难以通过模糊测试检测到的缺陷。它包括以代码属性图为中心的交互式外壳和自动化功能。
二、环境配置
1.jdk配置
注意jdk版本要是jdk11,jdk8亲测不可用。jdk配置可参考Linux下安装JDK11 - 小毅同学 - 博客园
2.安装预构建的二进制文件
要安装最新版本,只需执行以下命令
mkdir joern && cd joern curl -L "https://github.com/joernio/joern/releases/latest/download/joern-install.sh" -o joern-install.sh chmod u+x joern-install.sh ./joern-install.sh --interactive
并按照安装程序说明进行操作。默认情况下,joern 将安装在~/bin/joern
.
可以按如下方式测试你的安装:
有可能出现No java installation was detected的错误,输入source /etc/profile解决。进行joern测试时,一定要到joern的路径测试,我的joern路径是/home/lh/bin/joern/joern-cli
3.要从源代码构建 joern-cli,您需要安装 Scala 构建工具 (sbt),您可以按照sbt - Download上的说明进行安装。
三、实例
在开始 Joern 之前,您应该准备好一个可供分析的程序。克隆以下 git 存储库,其中包含一个名为的简单程序X42:
git clone https://github.com/ShiftLeftSecurity/x42.git
其中c程序是这样的:
// X42.c #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char *argv[]) { if (argc > 1 && strcmp(argv[1], "42") == 0) { fprintf(stderr, "It depends!\n"); exit(42); } printf("What is the meaning of life?\n"); exit(0); }
启动joern
导入代码,inputPath是c程序所在的路径;projectName是项目名,可以随便命名,方便以后打开该项目。
importCode(inputPath="/home/lh/桌面/x42/c",projectName="x42-c")
得到以下结果,证明环境配置没有问题。
查看含有“stderr”的代码:
cpg.call.argument.code("stderr").toList
生成代码的抽象语法树AST,需要有graphviz的支持,输入以下指令安装graphviz。
sudo apt-get install graphviz sudo apt-get install graphviz graphviz-doc
安装成功后,需要以下指令,生成AST。
cpg.method("main").plotDotAst
生成的AST如下图所示,图片太宽,只放了部分。
先输入close指令关闭项目,再输入exit,再输入y,保存修改并退出joern。
其他常用的操作,可以参考Joern的手册,Quickstart | Joern Documentation
这篇关于Linux下Joern环境配置的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法