
ابحث عن الأبواب الخلفية في موارد FiveM قبل تشغيلها: محمّلات مخفية، استدعاء load() عن بُعد، حمولات مُشوَّهة، رموز مميزة مسرَّبة. أداة سطر أوامر، وخطوة في CI، ومكتبة.
يفحص موارد FiveM بحثًا عن أبواب خلفية قبل تشغيلها. يقرأ ملفات .lua و.js، ويحلّل Lua ويبحث
عن الأنماط التي تستخدمها أبواب FiveM الخلفية المعروفة: محمّل مخفي خلف آلاف المسافات، وشيفرة تُنزَّل عبر HTTP وتُمرَّر
إلى load()، وحمولات مشفّرة، وقراءات لمفتاح الترخيص أو كلمة مرور RCON، ورموز متروكة في الملفات.
كما يبلّغ عن الملفات التنفيذية والمسارات غير الآمنة داخل الحزمة.
لا يُنفَّذ أي شيء ولا يُرفَع أي شيء. القواعد نفسها المتبعة في نسخة المتصفح المجانية على RPScripts، والتي تقبل أيضًا ملف ZIP أو مجلد خادم كامل عبر السحب والإفلات.
Node.js 18 أو أحدث. لا حاجة إلى تثبيت:
npx github:rpScripts/fivem-backdoor-scanner ./resources
افحص موردًا واحدًا، أو عدة مجلدات، أو ملف ZIP (حتى 300 ميغابايت)، أو احصل على JSON لأدواتك الخاصة:
npx github:rpScripts/fivem-backdoor-scanner ./resources/[shops]/my_shop ./resources/[jobs]
npx github:rpScripts/fivem-backdoor-scanner ./downloaded-pack.zip
npx github:rpScripts/fivem-backdoor-scanner ./resources --json > report.json
رمز الخروج 0 = لم يتم العثور على شيء، 1 = توجد نتائج، 2 = استخدام خاطئ، 3 = تعذّر تشغيل فحص (مسار مفقود، أو ملف ZIP
غير قابل للقراءة أو يتجاوز 300 ميغابايت). وهذا يجعله صالحًا للاستخدام كخطوة في CI:
# .github/workflows/backdoor-scan.yml
on: [push, pull_request]
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: 20 }
- run: npx --yes github:rpScripts/fivem-backdoor-scanner ./resources
| الرمز | الخطورة | ما يكتشفه |
|---|---|---|
| LAB-SEC-107 | error | شيفرة مدفوعة خارج مجال الرؤية بعد أكثر من 400 مسافة أو محرف جدولة (حيلة المُحمِّل الخاصة بعائلة أبواب خلفية معروفة) |
| LAB-SEC-101 | warning | load() / loadstring() على جسم استجابة HTTP |
| LAB-SEC-102 | warning | load() على نص يُفكّ ترميزه وقت التشغيل (string.char، بايتات مُهرَّبة، مفكّكات base64/hex) |
| LAB-SEC-103 | warning | بيانات مُشوَّشة: سلاسل بايتات مُهرَّبة طويلة، base64/hex بطول 400+ محرف، قوائم string.char طويلة |
| LAB-SEC-104 | warning | قراءة sv_licenseKey أو rcon_password أو sv_tebexSecret أو سلسلة MySQL في ملف يرسل HTTP |
| LAB-SEC-105 | warning | طلبات HTTP إلى عنوان IP عام خام أو إلى عنوان يُفكّ ترميزه وقت التشغيل |
| LAB-SEC-106 | warning | os.execute، io.popen، الكتابة خارج المورد الخاص، SaveResourceFile داخل موارد أخرى |
| LAB-SEC-108 | warning | رمز بوت Discord حقيقي الشكل، أو Discord webhook، أو مفتاح ترخيص Cfx، أو رمز GitHub في الملفات |
| LAB-PKG-004 | warning | .exe، .dll، .bat، .cmd، .ps1، .sh، .vbs، .jar، .scr في مجلد أو أرشيف (يُتوقَّع وجود .dll بجانب *.net.dll، وهو مورد C#) |
| LAB-PKG-005 | warning | مدخل أرشيف يحتوي على .. أو مسار مطلق أو حرف محرك أقراص: استخراجه قد يكتب خارج المجلد الهدف |
التحذيرات أنماط وليست دليلًا قاطعًا: يمكن لمسجّل webhook أن يستدعي عنوان IP خام بشكل مشروع. اقرأ السطر المُبلَّغ عنه وقرّر.
خطأ (LAB-SEC-107) يعني التعامل مع الحزمة على أنها مخترقة. كل نتيجة تحمل severity وconfidence
وmethod ونص إصلاح ومراجع؛ النصوص موجودة في rules/catalog.json، والإصدارات في
rules/CHANGELOG.md. رموز القواعد لا يتغيّر معناها أبدًا.
.fxap المشفّرة بـ escrow، أو Lua
مُجمَّعة، أو Lua لم تُحلَّل نحويًا، أو JavaScript حيث تُشغَّل فحوصات النص فقط، أو ملفات تتجاوز 2 ميغابايت، أو أرشيفات داخل الملف المرفوع).النتائج تفوز دائمًا على التغطية. النتيجة النظيفة تغطي هذه الأنماط فقط. وهي لا تُثبت أن المورد آمن.
+=، ?.، <const>، تجزئات backtick، /* */) مدعومة..zip، .rar، .7z) تُدرَج ولا تُفكّ. يُقرأ .zip فقط.node_modules و.git في فحص المجلد. تُفحص مجلدات stream.import { scanFiles, scanPath, securityRules } from "fivem-backdoor-scanner";
const one = securityRules("server.lua", source); // { findings, parsed }
const report = await scanPath("./resources"); // folder, ZIP or file
const inMemory = scanFiles({ "server.lua": source });
console.log(report.verdict, report.findings);
هل وجدت بابًا خلفيًا يفوته الماسح الضوئي، أو نتيجة إيجابية خاطئة في مورد معروف؟ افتح issue مع النمط (وليس أبدًا حمولة حية أو رمزًا مميزًا)؛ راجع CONTRIBUTING.md. للإبلاغ عن عائلة دون نشرها، راجع SECURITY.md.
git clone https://github.com/rpScripts/fivem-backdoor-scanner.git
cd fivem-backdoor-scanner && npm ci && npm test
يُصان بواسطة RPScripts. مرخّص بموجب MIT. يُقدَّم البرنامج "كما هو"، دون أي ضمان من أي نوع.