
FiveM संसाधनों को शुरू करने से पहले उनमें बैकडोर खोजें: छिपे हुए लोडर, रिमोट load(), अस्पष्ट पेलोड, लीक हुए टोकन। CLI, CI चरण, लाइब्रेरी।
FiveM संसाधनों को शुरू करने से पहले उनमें बैकडोर की जाँच करता है। यह .lua और .js फ़ाइलों को पढ़ता है, Lua को पार्स करता है और उन पैटर्नों को खोजता है जिनका उपयोग ज्ञात FiveM बैकडोर करते हैं: हज़ारों स्पेस के पीछे छिपा एक लोडर, HTTP के माध्यम से डाउनलोड किया गया और load() को पास किया गया कोड, अस्पष्ट (obfuscated) पेलोड, आपकी लाइसेंस कुंजी या RCON पासवर्ड का पढ़ा जाना, और फ़ाइलों में छोड़े गए टोकन।
यह किसी पैकेज में एक्ज़ीक्यूटेबल्स और असुरक्षित पाथ को भी फ़्लैग करता है।
कुछ भी निष्पादित नहीं होता और कुछ भी अपलोड नहीं होता। वही नियम जो मुफ़्त RPScripts पर ब्राउज़र संस्करण में हैं, जो ड्रैग एंड ड्रॉप द्वारा एक ZIP या पूरा सर्वर फ़ोल्डर भी लेता है।
Node.js 18 या नया। किसी इंस्टॉल की आवश्यकता नहीं:
npx github:rpScripts/fivem-backdoor-scanner ./resources
एक संसाधन, कई फ़ोल्डर, एक ZIP (300 MB तक) स्कैन करें, या अपनी टूलींग के लिए 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 MB से अधिक)। यह इसे 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 | HTTP प्रतिक्रिया के बॉडी पर load() / loadstring() |
| LAB-SEC-102 | warning | रनटाइम पर डिकोड किए गए टेक्स्ट पर load() (string.char, एस्केप्ड बाइट्स, base64/hex डिकोडर) |
| LAB-SEC-103 | warning | अस्पष्ट (obfuscated) डेटा: लंबे एस्केप्ड-बाइट स्ट्रिंग्स, 400+ अक्षरों वाला base64/hex, लंबी string.char सूचियाँ |
| LAB-SEC-104 | warning | ऐसी फ़ाइल में sv_licenseKey, rcon_password, sv_tebexSecret, या MySQL स्ट्रिंग पढ़ता है जो HTTP भेजती है |
| LAB-SEC-105 | warning | किसी सार्वजनिक रॉ IP या रनटाइम पर डिकोड किए गए पते पर HTTP अनुरोध |
| LAB-SEC-106 | warning | os.execute, io.popen, अपने ही रिसोर्स के बाहर लिखना, अन्य रिसोर्स में SaveResourceFile |
| LAB-SEC-108 | warning | फ़ाइलों में वास्तविक आकार का Discord बॉट टोकन, Discord वेबहुक, Cfx लाइसेंस कुंजी या GitHub टोकन |
| LAB-PKG-004 | warning | किसी फ़ोल्डर या आर्काइव में .exe, .dll, .bat, .cmd, .ps1, .sh, .vbs, .jar, .scr (.dll किसी *.net.dll, एक C# रिसोर्स, के साथ अपेक्षित है) |
| LAB-PKG-005 | warning | .., किसी निरपेक्ष पथ या ड्राइव अक्षर वाली आर्काइव प्रविष्टि: इसे निकालने पर लक्ष्य फ़ोल्डर के बाहर लिखा जा सकता है |
चेतावनियाँ पैटर्न हैं, प्रमाण नहीं: एक वेबहुक लॉगर वैध रूप से किसी रॉ IP को कॉल कर सकता है। रिपोर्ट की गई पंक्ति पढ़ें और निर्णय लें।
एक error (LAB-SEC-107) का अर्थ है कि पैकेज को समझौता-ग्रस्त (compromised) मानें। प्रत्येक निष्कर्ष में severity, confidence,
method, एक फ़िक्स टेक्स्ट और संदर्भ होते हैं; टेक्स्ट rules/catalog.json में हैं, संस्करण
rules/CHANGELOG.md में। नियम कोड कभी अर्थ नहीं बदलते।
.fxap फ़ोल्डर, कंपाइल्ड
Lua, ऐसा Lua जो पार्स नहीं हुआ, JavaScript जहाँ केवल टेक्स्ट जाँच चलती है, 2 MB से बड़ी फ़ाइलें, अपलोड के अंदर मौजूद आर्काइव)।निष्कर्ष हमेशा कवरेज पर भारी पड़ते हैं। एक clean परिणाम केवल इन पैटर्न को कवर करता है। यह सिद्ध नहीं करता कि कोई रिसोर्स सुरक्षित है।
+=, ?., <const>, बैकटिक हैश, /* */) समर्थित है।.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 लाइसेंस प्राप्त। सॉफ़्टवेयर "जैसा है" प्रदान किया गया है, बिना किसी प्रकार की वारंटी के।