Jorn عبارة عن منصة لتحليل التعليمات البرمجية المصدرية والكود الثانوي والملفات التنفيذية الثنائية. يقوم بإنشاء رسوم بيانية لخصائص التعليمات البرمجية (CPGs)، وهي تمثيل بياني للتعليمات البرمجية لتحليل التعليمات البرمجية عبر اللغات. يتم تخزين الرسوم البيانية لخصائص التعليمات البرمجية في قاعدة بيانات الرسم البياني المخصصة. يسمح هذا باستخراج التعليمات البرمجية باستخدام استعلامات البحث التي تمت صياغتها بلغة استعلام خاصة بالمجال تعتمد على Scala. تم تطوير Jorn بهدف توفير أداة مفيدة لاكتشاف الثغرات الأمنية والبحث في تحليل البرامج الثابتة.
موقع الكتروني: 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 أن تدعم وحدة المعالجة المركزية 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
يتم إنشاء إصدار جديد تلقائيًا مرة واحدة يوميًا. يمكن للمساهمين أيضًا تشغيل سير عمل الإصدار يدويًا إذا كانوا بحاجة إلى الإصدار عاجلاً.
شكرًا لك على الوقت الذي أمضيته للمساهمة في Jorn! فيما يلي بعض الإرشادات لضمان دمج طلب السحب الخاص بك في أقرب وقت ممكن:
[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
، تصبح جاهزًا لبدء كتابة التعليمات البرمجية لـ Jorn طريقة سريعة لتطوير واختبار QueryDB:
sbt stage
./querydb-install.sh
./joern-scan --list-query-names
يقوم الأمر الأخير بطباعة جميع الاستعلامات المتاحة - قم بإضافة استعلامك الخاص في querydb، وقم بتشغيل الأوامر المذكورة أعلاه مرة أخرى لترى أنه تم نشر استعلامك. مزيد من التفاصيل في الملف التمهيدي querydb المنفصل