Joern เป็นแพลตฟอร์มสำหรับการวิเคราะห์ซอร์สโค้ด ไบต์โค้ด และไฟล์ปฏิบัติการแบบไบนารี มันสร้างกราฟคุณสมบัติโค้ด (CPG) ซึ่งเป็นการแสดงกราฟของโค้ดสำหรับการวิเคราะห์โค้ดข้ามภาษา กราฟคุณสมบัติของโค้ดจะถูกจัดเก็บไว้ในฐานข้อมูลกราฟแบบกำหนดเอง ซึ่งช่วยให้สามารถขุดโค้ดได้โดยใช้คำค้นหาที่สร้างขึ้นในภาษาสืบค้นเฉพาะโดเมนที่ใช้ Scala Joern ได้รับการพัฒนาโดยมีเป้าหมายในการจัดหาเครื่องมือที่มีประโยชน์สำหรับการค้นหาช่องโหว่และการวิจัยในการวิเคราะห์โปรแกรมแบบคงที่
เว็บไซต์: https://joern.io
เอกสารประกอบ: https://docs.joern.io/
ข้อมูลจำเพาะ: https://cpg.joern.io
overflowdb.traversal.Traversal
การเปลี่ยนแปลงนี้ไม่สามารถเข้ากันได้แบบย้อนหลังได้อย่างสมบูรณ์ ดูที่นี่สำหรับการเขียนรายละเอียด wget https://github.com/joernio/joern/releases/latest/download/joern-install.sh
chmod +x ./joern-install.sh
sudo ./joern-install.sh
joern
██╗ ██████╗ ███████╗██████╗ ███╗ ██╗
██║██╔═══██╗██╔════╝██╔══██╗████╗ ██║
██║██║ ██║█████╗ ██████╔╝██╔██╗ ██║
██ ██║██║ ██║██╔══╝ ██╔══██╗██║╚██╗██║
╚█████╔╝╚██████╔╝███████╗██║ ██║██║ ╚████║
╚════╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═══╝
Version: 2.0.1
Type `help` to begin
joern>
หากสคริปต์การติดตั้งล้มเหลวไม่ว่าด้วยเหตุผลใดก็ตาม ให้ลอง
./joern-install --interactive
docker run --rm -it -v /tmp:/tmp -v $(pwd):/app:rw -w /app -t ghcr.io/joernio/joern joern
วิธีรัน joern ในโหมดเซิร์ฟเวอร์:
docker run --rm -it -v /tmp:/tmp -v $(pwd):/app:rw -w /app -t ghcr.io/joernio/joern joern --server
Almalinux 9 ต้องการให้ CPU รองรับ SSE4.2 สำหรับ kvm64 VM ให้ใช้เวอร์ชัน Almalinux 8 แทน
docker run --rm -it -v /tmp:/tmp -v $(pwd):/app:rw -w /app -t ghcr.io/joernio/joern-alma8 joern
ระบบจะสร้างรุ่นใหม่โดยอัตโนมัติวันละครั้ง ผู้มีส่วนร่วมยังสามารถเรียกใช้เวิร์กโฟลว์การเผยแพร่ได้ด้วยตนเอง หากต้องการการเผยแพร่เร็วกว่านี้
ขอขอบคุณที่สละเวลาบริจาคให้กับ Joern! ต่อไปนี้เป็นหลักเกณฑ์บางประการเพื่อให้แน่ใจว่าคำขอดึงของคุณจะถูกรวมเข้าด้วยกันโดยเร็วที่สุด:
[javasrc2cpg] Addition Operator Fix
sbt scalafmt Test/scalafmt
sbt
ในพื้นที่เก็บข้อมูล joern ในพื้นที่ของคุณ รัน compile
และเปิดไว้ - ซึ่งจะทำให้เราใช้ BSP บิลด์ในขั้นตอนถัดไปBSP project
(เช่น ไม่ใช่ sbt project
!)Build -> build project
หรือรันการทดสอบ ms-vscode-remote.remote-containers
Folder contains a Dev Container configuration file. Reopen to folder to develop in a container.
Reopen in Container
เพื่อเปิดโฟลเดอร์อีกครั้งในคอนเทนเนอร์ที่สร้างโดยไฟล์ .devcontainer/Dockerfile
scalameta.metals
ใน VSCode และเลือก import build
ใน BUILD COMMANDS
import build
สำเร็จ คุณก็พร้อมที่จะเริ่มเขียนโค้ดสำหรับ Joern วิธีที่รวดเร็วในการพัฒนาและทดสอบ QueryDB:
sbt stage
./querydb-install.sh
./joern-scan --list-query-names
คำสั่งสุดท้ายจะพิมพ์ข้อความค้นหาที่มีอยู่ทั้งหมด - เพิ่มข้อความค้นหาของคุณเองใน querydb เรียกใช้คำสั่งด้านบนอีกครั้งเพื่อดูว่าคำค้นหาของคุณได้รับการปรับใช้แล้ว รายละเอียดเพิ่มเติมใน QueryDB readme แยกต่างหาก