Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
egodeath — क्रिप्टोग्राफ़िक इंडिस्टिंगुइशेबिलिटी ऑबफस्केशन तकनीकों पर आधारित एक JavaScript ऑबफस्केटर | Kitploit
उपकरण/GitHubGitHub/nstarke/egodeath
स्थैतिक विश्लेषणकोड विश्लेषणरिवर्स इंजीनियरिंगपेपर और शोधलर्निंग और शिक्षा
GitHubnstarke/egodeath

egodeath

क्रिप्टोग्राफ़िक इंडिस्टिंगुइशेबिलिटी ऑबफस्केशन तकनीकों पर आधारित एक JavaScript ऑबफस्केटर

रिपॉजिटरी देखें
535138 दिन पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

egodeath

यह परियोजना अविभेद्यता अस्पष्टीकरण (indistinguishability obfuscation) प्राप्त नहीं करती है। आपको इस उत्पाद का उपयोग रहस्यों की सुरक्षा के लिए नहीं करना चाहिए। यह रिवर्स इंजीनियरिंग को रोकने के लिए नहीं, बल्कि हतोत्साहित करने के लिए मौजूद है।

Tests

images/screenshot.png एक JavaScript अस्पष्टीकरणकर्ता (obfuscator) जो मनुष्यों और LLM दोनों के लिए कोड को पढ़ने और विश्लेषण करने में अत्यंत कठिन बनाने के लिए डिज़ाइन किया गया है। TypeScript में लिखा गया। सहकर्मी-समीक्षित क्रिप्टोग्राफ़िक अस्पष्टीकरण अनुसंधान से तकनीकों को लागू करता है।

Installation

npm install
npm run build

CLI Usage

# Basic usage
node dist/index.js input.js > output.js

# With target token budget (default: 2,000,000)
node dist/index.js --target-tokens 500000 input.js > output.js

# Minimal obfuscation (small output)
node dist/index.js --target-tokens 10000 input.js > output.js

# Maximum bloat (10M tokens)
node dist/index.js --target-tokens 10000000 input.js > output.js

# Using environment variable
INPUT_FILE=input.js node dist/index.js > output.js

# Help
node dist/index.js --help

Options

OptionDefaultDescription
--target-tokens <n>2000000टोकनों में लक्ष्य आउटपुट आकार। छोटे इनपुट इस सीमा तक फुलाए जाते हैं। बड़े इनपुट बजट के भीतर रहने के लिए कम फुलाव उत्पन्न करते हैं।
--help, -hसहायता संदेश दिखाएँ

npm scripts

npm run build              # Compile TypeScript to dist/
npm run start              # Run the obfuscator (reads input.js)
npm run test               # Run the test suite
npm run obfuscate-package  # Run compatibility tests against npm packages

Programmatic API

const { obfuscate } = require('./dist/obfuscator');

const code = 'function add(a, b) { return a + b; }';
const obfuscated = obfuscate(code);

// With options
const obfuscated = obfuscate(code, { targetTokens: 500000 });

Transform Pipeline

अस्पष्टीकरणकर्ता 4 चरणों में 20 ट्रांसफ़ॉर्म लागू करता है। प्रत्येक चरण पिछले चरण पर आधारित होता है।

चरण 1: सुरक्षा और एंटी-विश्लेषण पूर्व-ट्रांसफ़ॉर्म

OrderTransformFileDescription
1Anti-Debug Trapstransforms/antiDebug.tseval("debugger") कथनों और अभाज्य-संख्या अंतराल (5s-600s) वाले 10-20 setInterval लूप इंजेक्ट करता है जो बार-बार डिबगर ब्रेकपॉइंट ट्रिगर करते हैं। प्रत्येक उदाहरण अद्वितीय एन्कोडेड स्ट्रिंग्स का उपयोग करता है।
2Punctured Program Tripwirestransforms/tripwires.tsपैरामीटर हैश की तुलना गुप्त मानों से करने वाले छिपे हुए चेक एम्बेड करता है। 5 हैश पैटर्न (बिटवाइज़ फ़िंगरप्रिंट, मॉड्यूलर अंकगणित, charCodeAt, संख्यात्मक हैश, typeof+length)। गुप्त इनपुट पर मौन स्थिति भ्रष्टाचार, व्यस्त लूप, या थ्रो ट्रिगर करता है। [पेपर 4]
3LPN Noise Injectiontransforms/noiseInjection.tsअंकगणितीय गणनाओं में विभाजित पथों के माध्यम से यादृच्छिक शोर जोड़ता और रद्द करता है। 6 पैटर्न: जोड़/घटाव, XOR, गुणा/भाग, विभाजित द्वि-चर, गणना हैश-श्रृंखला, बिट-रोटेट। पूर्ण रद्दीकरण का पता लगाए बिना मध्यवर्ती मान अर्थहीन होते हैं। [पेपर 7]

चरण 2: संरचनात्मक पूर्व-ट्रांसफ़ॉर्म

OrderTransformFileDescription
4Control Flow Flatteningtransforms/controlFlowFlattening.tsफ़ंक्शन बॉडी को while(true) { switch((_s * P) % M) { ... } } स्टेट मशीनों में परिवर्तित करता है, मॉड्यूलर अंकगणित डिस्पैच के साथ — केस मान यादृच्छिक अभाज्य पैरामीटरों का उपयोग करके (stateId * multiplier) % modulus के माध्यम से एन्कोड किए जाते हैं। [पेपर 3]
5Opaque Predicatestransforms/opaquePredicates.tsऐसी if शर्तें इंजेक्ट करता है जो हमेशा सही या गलत निकलती हैं लेकिन गणितीय रूप से सिद्ध करना कठिन होता है (जैसे (x*x+x)%2===0)। मॉड्यूलर अंकगणित, बिटवाइज़ और टाइप-चेक श्रेणियों में 15 प्रेडिकेट सूत्र।
6Proxy Functionstransforms/proxyFunctions.tsसभी फ़ंक्शन कॉल्स को दो डिस्पैचरों के माध्यम से रूट करता है: सरल कॉल्स के लिए _fc(fn, ...args), मेथड कॉल्स के लिए _mc(obj, prop, ...args)। लचीलेपन के लिए स्थानीय चर में कैप्चर किए गए Function.prototype.apply का उपयोग करता है।
7Context Window Exhaustiontransforms/contextExhaustion.tsएक्सप्रेशन को गहरे नेस्टेड टर्नरी, अपारदर्शी शर्तों, void-एक्सप्रेशन श्रृंखलाओं और सशर्त void पैडिंग के साथ लपेटता है। LLM को शोर पर कॉन्टेक्स्ट विंडो टोकन बर्बाद करने के लिए मजबूर करता है।
8Comma Expression Mergingtransforms/commaExpressions.tsक्रमिक एक्सप्रेशन स्टेटमेंट्स को एकल कॉमा एक्सप्रेशन में संक्षिप्त करता है: a(); b(); return c() बन जाता है return a(), b(), c()।

चरण 3: पहचानकर्ता पास

OrderPassFileDescription
9Pass 1: Catalogpasses/firstPass.tsAST को ट्रैवर्स करता है और हर पहचानकर्ता को सूचीबद्ध करता है, एक ग्लोबल्स मैप बनाता है जो प्रत्येक को 16 स्क्रिप्ट रेंज (CJK, हंगुल, ग्रीक, सिरिलिक, देवनागरी, थाई, अरबी, काताकाना, आदि) से लिया गया यादृच्छिक 6-16 वर्णों वाला यूनिकोड नाम प्रदान करता है।
10Pass 2: Substitutepasses/secondPass.tsसभी पहचानकर्ता नामों को उनके अस्पष्टीकृत यूनिकोड समकक्षों से बदलता है। require() तर्कों को String.fromCharCode(...) के रूप में एन्कोड करता है। स्थिर import/export स्रोतों को यूनिकोड-एस्केप्ड स्ट्रिंग लिटरल के रूप में एन्कोड करता है। क्लास superClass संदर्भों, टेम्पलेट लिटरल एक्सप्रेशन, डिस्ट्रक्चरिंग पैटर्न को प्रतिस्थापित करता है।
11Pass 3: Dummy Parameterspasses/thirdPass.tsहर फ़ंक्शन घोषणा और एक्सप्रेशन में 0-15 यादृच्छिक अप्रयुक्त पैरामीटर इंजेक्ट करता है। रेस्ट पैरामीटर वाले फ़ंक्शन छोड़ देता है। सभी टिप्पणियाँ हटा देता है।

चरण 4: पोस्ट-ट्रांसफ़ॉर्म

OrderTransformFileDescription
12Global Variable Encodingtransforms/globalVariableEncoding.tsग्लोबल्स के संदर्भों (डायनामिक रूप से globalThis + window पैकेज से खोजे गए) को eval("Name<suffix>".replace(new RegExp("<suffix>$"), "")) से बदलता है। दोनों स्ट्रिंग्स स्ट्रिंग ऐरे से होकर गुजरती हैं।
13Property Key Encodingtransforms/propertyKeyEncoding.tsडॉट एक्सेस को प्रति-स्कोप रजिस्ट्रियों के साथ कंप्यूटेड एक्सेस में परिवर्तित करता है। क्रॉस-स्कोप एक्सेस काम करता है क्योंकि सभी सफिक्स रनटाइम पर .replace() के माध्यम से एक ही प्रॉपर्टी नाम पर हल होते हैं।
14Number Encodingtransforms/numberEncoding.ts11 एन्कोडिंग रणनीतियाँ: shift+add, XOR आइडेंटिटी, कॉम्प्लिमेंट, डिवीज़न, नेस्टेड शिफ्ट, डबल-NOT, मॉड्यूलर, आदि। प्रत्येक उदाहरण विशिष्ट रूप से उत्पन्न होता है। प्रॉपर्टी कुंजियाँ और स्विच केस मान छोड़ देता है।
15Self-Integrity Verificationtransforms/selfIntegrity.ts2-4 रनटाइम चेक इंजेक्ट करता है: eval नेटिव-कोड सत्यापन, Function.prototype.toString अखंडता, समय विसंगति का पता लगाना, कोड संरचना सत्यापन। एंटी-टैम्पर प्रतिक्रियाएँ: व्यस्त प्रतीक्षा, थ्रो, मौन भ्रष्टाचार। [पेपर 10]
16String Array Extractiontransforms/stringArrayExtraction.tsसभी स्ट्रिंग्स को एक ही ऐरे में एकत्र करता है जिसमें श्रृंखलाबद्ध XOR डिक्रिप्शन (प्रविष्टि N की कुंजी प्रविष्टि N-1 की डिकोड की गई सामग्री पर निर्भर करती है) और स्पार्स स्थिति-निर्भर त्रुटि पैटर्न (प्रत्येक वर्ण को एक अलग XOR कुंजी मिलती है, चुनिंदा स्थितियों पर LPN-प्रेरित स्पार्स त्रुटियों के साथ)। [पेपर 2, 9]
17Console Stubsobfuscator.tsडायनामिक रूप से सभी console मेथड खोजता है और प्रत्येक को no-op फ़ंक्शन पर सेट करता है।
18Terser Minificationobfuscator.tsterser के माध्यम से व्हाइटस्पेस/फ़ॉर्मेटिंग हटाता है (mangle: false, compress: false)। यदि terser आउटपुट पार्स नहीं कर सकता तो regex-आधारित स्ट्रिपिंग पर वापस चला जाता है।

डेड कोड इंजेक्शन

डेड कोड को दो जनरेशन रणनीतियों के साथ कई बिंदुओं पर इंजेक्ट किया जाता है:

टूल डाउनलोड करें