Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
semantic_firewall — توليد بصمات دلالية حتمية لدوال Go. اكتشاف الأبواب الخلفية على نمط xz والتحقق من التكافؤ الدلالي باستخدام تحليل الإسناد الأحادي الثابت (SSA) والتطور القياسي (Scalar Evolution). | Kitploit
أدوات/GitHubGitHub/blackvectorops/semantic_firewall
أدوات دفاعيةالتحليل الثابتتحليل الشفرة الثابت (SAST)تحليل الثغرات الأمنيةتحليل الكودتحليل البرمجيات الخبيثةDevSecOpsأمن سلسلة التوريدالهندسة العكسية بمساعدة الذكاء الاصطناعي

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
GitHubblackvectorops/semantic_firewall

semantic_firewall

توليد بصمات دلالية حتمية لدوال Go. اكتشاف الأبواب الخلفية على نمط xz والتحقق من التكافؤ الدلالي باستخدام تحليل الإسناد الأحادي الثابت (SSA) والتطور القياسي (Scalar Evolution).

عرض المستودع
36143منذ يوم واحدتمت المراجعة من قبل Kitploit
مشاركة

Semantic Firewall

Go Reference License: MIT Marketplace Semantic Check

sfw هو محلل ساكن لشيفرة Go المصدرية. يبني SSA باستخدام golang.org/x/tools/go/ssa، ويعيد كتابة كل دالة إلى IR قانوني، ويأخذ بصمة الدالة كقيمة SHA-256 لتلك IR. وفوق البصمة:

  • يقارن sfw diff ملفين دالة بدالة. يطابق الدوال المعاد تسميتها حسب الطوبولوجيا، ويقيّم كل تغيير بناءً على القدرات التي يصل إليها حديثًا والحُرّاس والفحوصات وإعدادات الأمان التي يزيلها.
  • يقارن sfw deps diff الشيفرة الخارجية التي تُجمّعها شجرتان من وحدة نمطية: الدوال المتغيرة، والدوال المصدَّرة التي تصل حديثًا إلى قدرة ما، والملفات المتغيرة التي لا يستطيع التحليل رؤيتها.
  • يرسل sfw audit التغييرات عالية الخطورة في الفرق، ومصدرها، ورسالة الالتزام إلى LLM، الذي يقرأ الشيفرة (عبر أدوات، باستخدام نموذج Claude) ويقرر ما إذا كانت الرسالة تصف التغيير.
  • يطابق sfw index وsfw scan طوبولوجيات الدوال مقابل مخزن توقيعات (PebbleDB أو JSON).

لا ينفّذ التحليل الشيفرة قيد الاختبار أبدًا.

[!CAUTION] تُقدَّم هذه الأداة لأغراض البحث الأمني الدفاعي والاختبار المصرَّح به فقط. لا تستخدمها لإنشاء البرمجيات الخبيثة أو توزيعها أو نشرها. يتحمل المستخدمون مسؤولية الامتثال للقوانين والسياسات التنظيمية المعمول بها. لا يتحمل المؤلف أي مسؤولية عن سوء الاستخدام.

المحتويات

  • التثبيت
  • الأوامر
  • sfw check
  • sfw diff
  • تقييم المخاطر
  • نطاق الكشف
  • sfw deps diff
  • sfw audit
  • sfw index و sfw scan
  • مخزن التوقيعات
  • خط أنابيب البصمات
  • Semantic Zipper
  • طوبولوجيا الدوال
  • الإنتروبيا والتشويش
  • بيئة العزل
  • GitHub Action
  • استخدام المكتبة
  • التطوير

التثبيت

go install github.com/BlackVectorOps/semantic_firewall/v7/cmd/[email protected]

يعلن go.mod عن go 1.27.2. يطبع sfw version معلومات البناء:

Semantic Firewall CLI
Build: v7.1.1 (Pebble/Gob+PackedIdx)

الأوامر

يجب أن تأتي العلامات (flags) قبل الوسائط الموضعية. يحلّل CLI كل أمر باستخدام حزمة flag في Go، والتي تتوقف عند أول وسيط غير علامة؛ يتم تجاهل العلامات الموضوعة بعد اسم الملف بصمت.

الأمرالعلامات (الافتراضي)الوسائطمعزول (Sandboxed)
check--strict (false)، --scan (false)، --db ("")، --no-sandbox (false)<file.go|dir>نعم
diff--no-sandbox (false)، --batch ("")<old.go> <new.go>، أو لا شيء مع --batch <pairs-file>نعم
deps diff--no-sandbox (false)<old-module-dir> <new-module-dir>نعم
audit--model (claude-opus-5-5)، --api-key ("")، --api-base ("")، --no-sandbox (false)<old.go> <new.go> "<commit message>"نعم (خطوة diff)
index--name (مطلوب)، --severity (HIGH)، --category (malware)، --db ("")<file.go|dir>لا
scan--db ("")، --threshold (0.75)، --exact (false)، --deps (false)، --deps-depth (direct)، --no-sandbox (false)<file.go|dir>نعم
migrate--from (مطلوب)، --to (مطلوب)لا شيءلا
stats--db ("")لا شيءلا
versionلا شيءلا شيءلا

يسرد sfw <command> -h علامات الأمر. يتم تخزين --severity كما هو مُعطى، دون تحقق. أي قيمة لـ --deps-depth غير transitive تُعامَل على أنها direct.

رموز الخروج:

الأمرالخروج 0الخروج 1
checkتم تشغيل التحليل، حتى عندما فشل تحميل ملف (يُبلَّغ عنه في حقل error الخاص بذلك الملف)--strict وأي ملف به خطأ؛ أخطاء قاتلة
diffتم إنتاج diff، بغض النظر عن المخاطرأخطاء قاتلة
diff --batchتم إجراء diff لكل زوج، بغض النظر عن المخاطرفشل أي زوج (بعد طباعة جميع النتائج)؛ أخطاء قاتلة
deps diffتم إنتاج diff، بغض النظر عن المخاطرفشل تحميل أي من الشجرتين؛ أخطاء قاتلة
scanتم تشغيل الفحص، بغض النظر عن التنبيهاتأخطاء قاتلة (مثل عدم وجود قاعدة بيانات)
auditالحكم MATCHالحكم LIE أو SUSPICIOUS أو ERROR

يعامل diff ملف الإدخال المفقود كملف فارغ.

sfw check

يطبع مصفوفة JSON تحتوي على إدخال واحد لكل ملف. يتم التنقل في الدليل بشكل تكراري، مع تخطي vendor/ والدلائل المخفية وملفات _test.go. أسماء الدوال مؤهلة باسم الحزمة: الملف المحمّل بمفرده ينتمي إلى command-line-arguments.

sfw check --no-sandbox new.go
[
  {
    "file": "new.go",
    "functions": [
      { "function": "command-line-arguments.Handle",   "fingerprint": "4acdccda3895dd4cec3af2d55ad43489f91860cd226f82091eaf0a2429849e2f", "file": "/work/new.go", "line": 5 },
      { "function": "command-line-arguments.Handle$1", "fingerprint": "1777c5c3ae9a69e395f6bbe8f35a1e447d25534afec7bb907eacf873e7d4917c", "file": "/work/new.go", "line": 7 },
      { "function": "command-line-arguments.Sum",      "fingerprint": "7cc1efa6ef6ca643863de5dcb0a68f7c80cd6dae8c530697706f40ce737030ae", "file": "/work/new.go", "line": 10 },
      { "function": "command-line-arguments.init",     "fingerprint": "825a2d206f4eb4ea4413c050e4ca9e4b8e439c2067219829a8fef891031a1850", "file": "" }
    ]
  }
]

تم التقاط المخرجات أعلاه من تشغيل حقيقي، مع تقصير المسار المطلق إلى /work ووضع كل كائن على سطر واحد. new.go هو الملف في مثال sfw diff.

  • --strict: تجعل تعليمة SSA غير المعالجة أداة canonicalizer تفشل بدلاً من إصدار UnhandledInstr<T>، وأي خطأ على مستوى الملف يجعل الأمر يخرج بالرمز 1.
  • --scan: تُطابَق أيضاً طوبولوجيا كل دالة مقابل قاعدة بيانات التوقيعات (--db، أو الدقة الافتراضية) عند حد ثابت قدره 0.75. تذهب المطابقات إلى حقل scan_results. قاعدة البيانات المفقودة خطأ فادح.

sfw diff

المدخلات:

// old.go
package p

import "fmt"

func Handle(cmd string) { fmt.Println(cmd) }

func Add(a, b int) int { return a + b }
// new.go
package p

import "net"

func Handle(cmd string) {
	net.Dial("tcp", cmd)
	go func() {}()
}

func Sum(a, b int) int { return a + b }

sfw diff --no-sandbox old.go new.go يطبع ما يلي. هذا هو الناتج الكامل، باستثناء أن مدخلة init مختصرة إلى حالتها وقيمتها التراكمية.

تنزيل الأداة