Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
lm-fingerprint — أداة فريدة لتحديد بصمة نماذج اللغات الكبيرة (Large Language Models) بناءً على مُرمِّزاتها (tokenizers) وسلوكها. | Kitploit
أدوات/GitLabGitLab/wattocyber/lm-fingerprint
الاستطلاعجمع المعلوماتاختبار الاختراقالفريق الأحمرأمن واجهات برمجة التطبيقاتأمن الذكاء الاصطناعي
GitLabwattocyber/lm-fingerprint

lm-fingerprint

أداة فريدة لتحديد بصمة نماذج اللغات الكبيرة (Large Language Models) بناءً على مُرمِّزاتها (tokenizers) وسلوكها.

عرض المستودع
منذ 2س 33دلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
الموقع الإلكتروني

LM-Fingerprint

LM-Fingerprint

يُبصم مكدس الخدمة الكامن خلف نقطة نهاية محادثة متوافقة مع OpenAI.

يسجّل محاسبة المُرمِّز (tokenizer)، وإزاحة القالب المخفية، ونصوص التحقق، وشكل JSON/SSE، وقبول الأدوار، والحدود المسماة، وترويسات البوابة. لا يُحمّل الأوزان، ولا يخزّن مفاتيح API، ولا يسأل النموذج عن هويته.

الاستيرادlm_fingerprint
سطر الأوامرlm-fingerprint
ما هومسابير بنية تحتية مُرقّمة ضد /chat/completions. مكتبة تركيبية دون اتصال. تحقق محلي من مُرمِّز Hugging Face (بدون أوزان).
ما ليس هوليس هجوم تدرج. ليس كسر حماية. ليس هوية خريطة ترميز (tokprint). ليس “أي ثنائي يعمل على هذا المنفذ” (Julius).

python license repro

للاستخدام المصرح به فقط: نقاط نهاية تملكها، ومختبرات تتحكم بها، وبرامج مكافآت ضمن النطاق، واختبارات اختراق مكتوبة. انظر SECURITY.md. --api-key-env يسمّي متغير بيئة. المفتاح لا يُسجَّل أبدًا.

المحتويات

  1. المشكلة
  2. ما هي البصمة
  3. البنية
  4. نموذج التهديد
  5. التثبيت وبوابة إعادة الإنتاج
  6. أول تشغيل
  7. ضد نقطة نهاية حية
  8. مُرمِّزات Hugging Face المحلية
  9. سطر الأوامر
  10. المكتبة
  11. قراءة JSON الناتج
  12. المقاس مقابل ModelPrint
  13. قواعد النزاهة
  14. أدوات قريبة
  15. الترخيص

المشكلة

المحادثة المتوافقة مع OpenAI واجهة شائعة. vLLM وSGLang وبوابة مختبر وبائع إعادة بيع يمكنهم جميعًا التحدث عبر /chat/completions. حقل model هو تسمية فقط. يمكن للمضيف تبديل الخلفية، أو تغليف المُرمِّز، أو وضع موجّه في المقدمة. مسابير الشخصية تتحرك عندما يتحرك نظام التلقين.

ما يبقى ثابتًا هو السباكة: كيف يعدّ الخادم الرموز، وكم عدد رموز القالب المخفية التي يضيفها، والنثر الذي كتبه مُتحقِّقه، ولهجة SSE، والأدوار التي يقبلها، والرقم الذي يذكره عندما يكون max_tokens مبالغًا فيه، وترويسات Server / المزود.

هذا هو السؤال الذي يجيب عنه هذا الدليل: أي مكدس يعالج مسار المحادثة هذا؟ ليس أي نقطة تفتيش، وليس أي عملية مرتبطة بالمنفذ، وليس من كتب إكمالًا.

ModelPrint طرح السؤال نفسه في المتصفح بتسعة مسابير. هذه الحزمة هي شكل سطر الأوامر والمكتبة: مسابير مُرقّمة، ومكتبة قابلة للتسجيل، وأدلة زوجية، وانجراف، ومسار مُرمِّز محلي لا يستدعي أبدًا واجهة برمجة تطبيقات استدلال مستضافة.

ما هي البصمة

البصمة سجل JSON مُرقّم لقيم المسبار values. يجب أن يُعيد كل مسبار القيمة نفسها عند ضرب نفس المكدس مرتين. الطوابع الزمنية والمعرّفات ووقت الاستجابة والمفاتيح تُزال.

حسابات المُرمِّز تعيد استخدام نصوص ModelPrint 1.0.0 (MIT، unclecode/modelprint) بايتًا-بالبايت، ناقصًا خط الأساس "a" المكوَّن من حرف واحد بحيث يلغى قالب مخفي. هذه الأرقام الأربعة هي إسقاط لخريطة الترميز (T). التطابق في الحسابات لا يعني (T_1 \equiv T_2). GPT-2 وOPT يتصادمان عليها؛ بينما تجزئة خط أنابيب الصدأ لا تتصادم.

hf_identity (مسار HF المحلي فقط) هو SHA-256 لالتزام خط الأنابيب هذا بالإضافة إلى تجزئة قالب المحادثة. نفس (T) ونفس القالب يتطابقان (tiny-gpt2 / gpt2). هذا عائلة + قالب، وليس نقطة تفتيش.

البنية

الترتيب:

root@kitploit:~
src/lm_fingerprint/
  cli.py         argparse. --api-key-env فقط. لا يوجد --api-key.
  client.py      HttpTransport, InProcessTransport, redact_secrets
  probes.py      23 صف ProbeSpec (tokenizer / errors / shape / roles / limits / proxy)
  engine.py      تشغيل المجموعة ← Fingerprint
  schema.py      schema_version=1, probe_suite_version=lm-fingerprint-probes-v1
  similarity.py  تطابق تام موزون، تغطية، ثقة، ترتيب مكتبة، انجراف
  library.py     تسجيل / مطابقة. الصفوف المضمّنة تجهيزات تركيبية
  synthetic.py   مكدسات داخل العملية للاختبارات وللمكتبة المرفقة
  hf.py          AutoTokenizer محلي + ملف تحقق مسمّى. بلا أوزان
  localmap.py    التزام encode-pipeline-v2 (tokenizer.json بلغة rust)
  proof.py       هوية ModelPrint المقاسة بتسعة مسابير
  report.py      تقارير نصية
  data/library.json

مساران إلى نفس مجموعة المسابير:

root@kitploit:~
live endpoint                         local Hub tokenizer (optional [hf])
     |                                         |
 HttpTransport.chat                      HfChatTransport
 POST /chat/completions                  encode / chat_template for counts
     |                                   synthetic profile for errors/shape
     +------------------+----------------------+
                        |
                   engine.run_probes
                        |
              Fingerprint (JSON, keyless)
                        |
          compare | match | drift | enroll

تأليف المسابير: docs/PROBES.md. خريطة الوحدات: docs/ARCHITECTURE.md.

نموذج التهديد

التطابق بنية تحتية مشتركة. يمكن لمختبر واحد خدمة نقطتي تفتيش على مكدس واحد. يمكن لموجّه أن يرد بغلاف الأخطاء الخاص به. تطابق الحسابات ليس هوية (T).

التثبيت وبوابة إعادة الإنتاج

بايثون 3.10+. وقت التشغيل الأساسي هو المكتبة القياسية.

root@kitploit:~
git clone https://gitlab.com/WattoCyber/lm-fingerprint.git
cd lm-fingerprint
pip install -e ".[dev]"
PYTHONPATH=src python3 scripts/repro.py

توقّع REPRO_OK. هذه البوابة دون اتصال: لا GPU، ولا واجهات برمجة تطبيقات إنتاج. اختبارات HF المحلية تُتخطى إذا لم يكن المُرمِّز مخزّنًا مؤقتًا.

root@kitploit:~
pip install -e ".[hf]"    # transformers, لـ fingerprint-hf / verify-hf

أول تشغيل

root@kitploit:~
lm-fingerprint list-probes
lm-fingerprint list

list يعرض المكدسات المرفقة: openai-chat-strict, glm-compat, router-openai, permissive-compat. تلك تجهيزات، وليست مزودين مجلودين. قارن اثنين منها دون شبكة:

root@kitploit:~
from lm_fingerprint.client import InProcessTransport
from lm_fingerprint.engine import fingerprint_endpoint
from lm_fingerprint.similarity import compare_fingerprints
from lm_fingerprint.synthetic import SYNTHETIC_STACKS, handler_for

def fp(stack_id):
    t = InProcessTransport(handler_for(stack_id), headers=SYNTHETIC_STACKS[stack_id].headers)
    return fingerprint_endpoint(t, model=f"synthetic/{stack_id}", base_url=f"inprocess://{stack_id}")

print(compare_fingerprints(fp("openai-chat-strict"), fp("router-openai"))["note"])

نفس مُرمِّز الكلمات، وأخطاء وترويسات مختلفة. النتيجة حول 0.58. حسابات ModelPrint الأربعة متطابقة؛ هذه الأداة لا تسمّي ذلك مكدسًا مشتركًا.

ضد نقطة نهاية حية

root@kitploit:~
lm-fingerprint fingerprint \
  --base-url https://your-lab.example/v1 \
  --model the-label \
  --api-key-env OPENAI_API_KEY \
  --out lab.json

lm-fingerprint match --fingerprint lab.json
lm-fingerprint enroll --fingerprint lab.json --stack-id my-lab --library my-lib.json

لا تمرّر المفتاح في سطر الأوامر. لا تجلود واجهات برمجة تطبيقات إنتاج لملء مكتبة عامة.

مُرمِّزات Hugging Face المحلية

root@kitploit:~
lm-fingerprint fingerprint-hf --model sshleifer/tiny-gpt2 --local-files-only
lm-fingerprint verify-hf --local-files-only

تأتي الحسابات من apply_chat_template عندما يوجد قالب، وإلا من encode(..., add_special_tokens=False). تصنيف الأخطاء يأتي من ملف تركيبي مسمّى (الافتراضي openai-chat-strict) بحيث يبقى التشغيل دون اتصال. المقابض البعيدة (https://, api://, …) مرفوضة.

سطر الأوامر

root@kitploit:~
lm-fingerprint list-probes
lm-fingerprint list [--library PATH]
lm-fingerprint fingerprint --base-url URL --model MODEL --api-key-env VAR [--out PATH]
lm-fingerprint fingerprint-hf --model HANDLE [--profile NAME] [--local-files-only]
lm-fingerprint verify-hf [--models a,b,c] [--local-files-only]
lm-fingerprint prove [--local-files-only]
lm-fingerprint compare --a a.json --b b.json
lm-fingerprint match --fingerprint a.json [--library PATH]
lm-fingerprint drift --baseline old.json --current new.json
lm-fingerprint enroll --fingerprint a.json --stack-id ID --library PATH
lm-fingerprint export --fingerprint a.json

لا يوجد علم --api-key. JSON الأقدم wireprint-fingerprint / stackprint-fingerprint ما يزال يُحمَّل.

المكتبة

root@kitploit:~
from lm_fingerprint import (
    StackLibrary,
    compare_fingerprints,
    fingerprint_endpoint,
    fingerprint_hf,
    match_library,
)
from lm_fingerprint.client import HttpTransport

fp = fingerprint_endpoint(HttpTransport(url, api_key=key), model="x", base_url=url)
hit = match_library(fp, StackLibrary.load())
local = fingerprint_hf("sshleifer/tiny-gpt2", local_files_only=True)

قراءة JSON الناتج

schema_version = 1, probe_suite_version = lm-fingerprint-probes-v1.

المقارنة: تطابق تام موزون على المسابير التي تكون ok وstable على الجانبين. الثقة هي score × coverage. مطابقة المكتبة تُبلغ certainty (exact / strong / possible / unknown) والهامش إلى الجار الثاني.

المقاس مقابل ModelPrint

إعادة التشغيل:

root@kitploit:~
lm-fingerprint prove --local-files-only

نفس البقايا مثل ModelPrint (تسعة مسابير في probes/index.js). README الخاص بهم هو قاعدة التسجيل: البصمات المتطابقة تُثبت بنية تحتية مشتركة، وليس هوية.

التقرير: docs/PROOF.md.

قواعد النزاهة

  1. التطابق سباكة مشتركة، وليس نفس نقطة التفتيش.
  2. متجهات الحسابات إسقاط لـ (T). ليست هي (T).
  3. المكتبة المرفقة تركيبية. المستخدم يسجّل التشغيلات المصرح بها.
  4. fingerprint-hf لا يُحمّل الأوزان أبدًا ولا يستدعي Inference مستضافًا أبدًا.
  5. المفاتيح تأتي من --api-key-env. يجب ألا تحتوي القطع الأثرية على sk- أو Authorization.
  6. scripts/repro.py هو بوابة المنتج. لا تدّعي النجاح إلا إذا شغّلته للتو.

أدوات قريبة

الترخيص

MIT. انظر LICENSE. نصوص مُرمِّز ModelPrint تبقى MIT (unclecode/modelprint) وبايتًا-بالبايت.

تنزيل الأداة
تمتلكما يمكنك ملاحظتهما تفعله هذه الأداة
رابط أساسي متوافق مع OpenAI ومصرح به + مفتاحمحادثة HTTP: الاستخدام، الأخطاء، الترويسات، SSEfingerprint / compare / match / drift
ملفات مُرمِّز محليةencode وchat_templatefingerprint-hf / verify-hf. الأوزان تبقى على القرص
لا شيء سوى host:portلافتة / /health / /api/tagsخارج النطاق. استخدم Julius
الحقلالمعنى
kindlm-fingerprint
target.model / target.base_url_hostما تم توجيه الأداة إليه. المضيف فقط؛ بلا مفتاح
features.tokenizer_normأربعة حسابات من فئة ModelPrint (الإنجليزية، الصينية، البرمجيات، الإيموجي)
features.template_offsetحجم قالب الخدمة المخفي
probes.<id>.valueخلية قابلة للمقارنة. يجب أن تكون ثابتة
probes.<id>.weightالمساهمة في التشابه
keys_storedدائمًا false
weights_loadedدائمًا false
الاختبارModelPrintهذه الأداة
نفس المُرمِّز، مكدس مختلف (openai-chat-strict مقابل router-openai)مُرمِّز 4/4 + تطابق القالبنتيجة 0.58، مُصنَّفة كمحاسبة مشتركة
gpt2 مقابل facebook/opt-125mالحسابات الأربعة و القالب يتصادمانencode_commitment يفصل بينهما
Qwen2 / 2.5 / 3مُرمِّز 4/4 تتصادم؛ القالب يفصلhf_identity يفصل
tiny-gpt2 مقابل gpt2تطابق (نفس (T))تطابق (مطلوب)
مجموعة المسابير923 + التزامات HF للترميز/القالب
logprobs, شكل الدفق, دور النظاممذكورة كأفكارمرفقة
الأداةالغرض
ModelPrintنفس البقايا، متصفح، تسعة مسابير
tokprintمعرّف عائلة خريطة الترميز المحلية. يعيش في gradient-untangler
gradient-untanglerتدرجات عبر الأوزان المحلية
Juliusأي برنامج خادم يعمل على منفذ
TokenPrint / LLMmap / UTFنص مُولَّد، أو سلالة، أو رموز مزروعة