Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

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

egodeath

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

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

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

सभी देखें →

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

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

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

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

egodeath

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

Tests

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

Installation

root@kitploit:~
npm install
npm run build

CLI Usage

root@kitploit:~
# 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

root@kitploit:~
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

root@kitploit:~
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: सुरक्षा और एंटी-विश्लेषण पूर्व-ट्रांसफ़ॉर्म

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

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

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

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

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

StrategySourceDescription

डेड कोड इंजेक्शन बिंदु:

  • CFF डेड स्विच केस (प्रति फ़ंक्शन ~30% अतिरिक्त, बजट द्वारा स्केल किया गया)
  • अपारदर्शी प्रेडिकेट else शाखाएँ
  • गैर-CFF फ़ंक्शनों में स्टैंडअलोन डेड ब्लॉक (बजट-नियंत्रित)

Research Paper References

कई ट्रांसफ़ॉर्म सहकर्मी-समीक्षित क्रिप्टोग्राफ़िक अस्पष्टीकरण अनुसंधान से प्रेरित हैं:

Verification Tools

दो सत्यापन उपकरण अस्पष्टीकरण गुणवत्ता मापते हैं, जो src/verification/ में स्थित हैं:

Null Circuit Test (verification/nullCircuitTest.ts)

एक वास्तविक फ़ंक्शन और एक "नल" फ़ंक्शन (समान आकार, कुछ नहीं करता) को अस्पष्टीकृत करता है, फिर यह स्कोर करने के लिए 14 संरचनात्मक मेट्रिक्स की तुलना करता है कि वे कितने विभेदनीय हैं। उच्च समानता = बेहतर अस्पष्टीकरण।

root@kitploit:~
import { runNullCircuitTest } from './verification/nullCircuitTest';
const result = runNullCircuitTest(realCode, paramCount, stmtCount, threshold, targetTokens);
console.log('Similarity:', result.similarity); // 0.0-1.0

Unobfuscatable Function Tests (verification/unobfuscatableTests.ts)

पेपर 1 के असंभाव्यता प्रमाणों से 7 परीक्षण मामले जो अस्पष्टीकृत कोड से रहस्य निकालने का प्रयास करते हैं:

root@kitploit:~
import { runAllTests, printSummary } from './verification/unobfuscatableTests';
console.log(printSummary(runAllTests(10000)));

परीक्षण: पॉइंट फ़ंक्शन (पासवर्ड), मैजिक नंबर, कैनरी स्ट्रिंग्स, एम्बेडेड कुंजियाँ, URLs, regex पैटर्न, नियंत्रण प्रवाह हस्ताक्षर।

Output Size Budget

--target-tokens विकल्प आउटपुट आकार को एक ब्लोट बजट के माध्यम से नियंत्रित करता है जो डेड कोड इंजेक्शन (प्राथमिक वॉल्यूम लीवर) को स्केल करता है। बजट-गेटेड ट्रांसफ़ॉर्म:

बजट अनुपातसक्षम ट्रांसफ़ॉर्म
> 3Anti-debug, tripwires, CFF, opaque predicates, comma merging
> 5Proxy functions, property key encoding, noise injection, self-integrity
> 8Context window exhaustion
> 10Global variable encoding

डेड कोड गुणक 1x (अनुपात 30) से 150x (अनुपात 1500+) तक स्केल होता है, जो डेड स्विच केस और अपारदर्शी प्रेडिकेट शाखाओं की संख्या और आकार को नियंत्रित करता है।

Project Structure

root@kitploit:~
src/
  index.ts              CLI entry point
  obfuscator.ts         Main pipeline orchestrator (20 transforms)
  options.ts            Budget system and options
  types.ts              AST type definitions
  random.ts             Random Unicode name generation (6-16 chars, 16 script ranges)
  ast.ts                AST node factory functions
  keywords.ts           Dynamic keyword discovery (globalThis + window package)
  globals.ts            Global state management (null-prototype maps)
  substitute.ts         Identifier substitution utilities
  declarations.d.ts     Module type declarations
  passes/
    firstPass.ts        Identifier cataloging
    secondPass.ts       Identifier substitution + string encoding
    thirdPass.ts        Dummy parameter injection
  transforms/
    antiDebug.ts        eval("debugger") traps + setInterval loops
    tripwires.ts        Punctured program secret-input checks [Paper 4]
    noiseInjection.ts   LPN-inspired arithmetic noise [Paper 7]
    controlFlowFlattening.ts  while/switch + modular arithmetic dispatch [Paper 3]
    opaquePredicates.ts       15 always-true/false math predicates
    proxyFunctions.ts         Call graph flattening dispatchers
    contextExhaustion.ts      Ternary/void noise for LLM context filling
    commaExpressions.ts       Statement merging via comma operator
    globalVariableEncoding.ts eval+replace for globals
    propertyKeyEncoding.ts    Computed property access with per-scope registries
    numberEncoding.ts         11 bitwise/arithmetic encoding strategies
    selfIntegrity.ts          Anti-tamper runtime checks [Paper 10]
    stringArrayExtraction.ts  Chained XOR + sparse position errors [Papers 2, 9]
    deadCodeInjection.ts      Template + mutation-based dead code [Paper 3]
  verification/
    nullCircuitTest.ts        Dead code quality scoring [Paper 10]
    unobfuscatableTests.ts    Secret extraction test cases [Paper 1]
  __tests__/                  300+ unit tests across 21 suites
tools/
  obfuscate-package.ts  Webpack-based npm package compatibility testing
tests/
  input*.js             Original test input files

Testing

root@kitploit:~
# Run all tests
npm test

# Run a specific test suite
npx jest controlFlowFlattening
npx jest tripwires
npx jest noiseInjection

# Test against npm packages (clones repos, webpack-bundles, obfuscates, runs tests)
npm run obfuscate-package                    # All 10 packages
npm run obfuscate-package -- minimist semver # Specific packages

Compatibility Test Tool

tools/obfuscate-package.ts उपकरण वास्तविक npm पैकेजों के विरुद्ध अस्पष्टीकरणकर्ता का परीक्षण करता है:

  1. पैकेज के git रिपॉज़िटरी को क्लोन करता है
  2. सभी डिपेंडेंसी स्थापित करता है (परीक्षण के लिए devDependencies सहित)
  3. यदि पैकेज में बिल्ड स्क्रिप्ट है तो उसे बिल्ड करता है
  4. लाइब्रेरी के मुख्य एंट्री पॉइंट को एकल CommonJS फ़ाइल में बंडल करने के लिए webpack का उपयोग करता है
  5. बंडल की गई फ़ाइल पर अस्पष्टीकरणकर्ता चलाता है
  6. लाइब्रेरी की मुख्य एंट्री को अस्पष्टीकृत बंडल से बदलता है
  7. अस्पष्टीकृत संस्करण के विरुद्ध लाइब्रेरी की अपनी परीक्षण सूट चलाता है

आउटपुट स्थान

PathContents
dist/obfuscated/<package>/bundle.jsप्रत्येक पैकेज के लिए अस्पष्टीकृत webpack बंडल
dist/obfuscated/report.jsonबंडल आकार, अस्पष्टीकरण स्थिति, परीक्षण आउटपुट के साथ पूर्ण JSON रिपोर्ट

License

MIT - कॉपीराइट 2026 Nicholas Starke

टूल डाउनलोड करें
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]
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()।
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 यादृच्छिक अप्रयुक्त पैरामीटर इंजेक्ट करता है। रेस्ट पैरामीटर वाले फ़ंक्शन छोड़ देता है। सभी टिप्पणियाँ हटा देता है।
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-आधारित स्ट्रिपिंग पर वापस चला जाता है।
Template-basedtransforms/deadCodeInjection.ts9 टेम्पलेट प्रकार: लूप संचय, ऐरे निर्माण, ऑब्जेक्ट हेरफेर, स्ट्रिंग संयोजन, नेस्टेड कंडिशनल, try/catch, while काउंटडाउन, switch कंप्यूटेड, बिटवाइज़ श्रृंखलाएँ। टेम्पलेट वास्तविक स्कोप चर का संदर्भ देते हैं।
Mutation-basedtransforms/deadCodeInjection.tsवास्तविक कथनों को क्लोन करता है और उन्हें उत्परिवर्तित करता है: समतुल्यता समूहों के भीतर ऑपरेटरों की अदला-बदली करता है, स्थिरांकों को विक्षुब्ध करता है, पहचानकर्ताओं का नाम बदलता है। AST-संरचनात्मक रूप से समान डेड कोड उत्पन्न करता है जो अकेले संरचना द्वारा वास्तविक कोड से अप्रभेद्य होता है। [पेपर 3]
PaperAuthorsTechnique Implemented
[पेपर 1] प्रोग्रामों को अस्पष्टीकृत करने की (अ)संभाव्यता परBarak, Goldreich, Impagliazzo, Rudich, Sahai, Vadhan, YangUnobfuscatable फ़ंक्शन परीक्षण मामले — सत्यापन उपकरण जो जाँचता है कि क्या रहस्य अस्पष्टीकरण में बचे रहते हैं
[पेपर 2] सभी सर्किटों के लिए उम्मीदवार iO और कार्यात्मक एन्क्रिप्शनGarg, Gentry, Halevi, Raykova, Sahai, Watersश्रृंखलाबद्ध स्ट्रिंग डिक्रिप्शन — किलियन-शैली यादृच्छीकरण जहाँ प्रत्येक प्रविष्टि की कुंजी पिछली डिकोड की गई स्ट्रिंग पर निर्भर करती है
[पेपर 3] मल्टीलीनियर सबग्रुप एलिमिनेशन धारणा से iOGentry, Lewko, Sahai, Watersउत्परिवर्तन-आधारित डेड कोड (वास्तविक कोड के संरचनात्मक रूप से समान); CFF में मॉड्यूलर अंकगणित राज्य संक्रमण
[पेपर 4] iO का उपयोग कैसे करें: अस्वीकार्य एन्क्रिप्शन, और अधिकSahai, Watersपंक्चर्ड प्रोग्राम ट्रिपवायर — छिपे हुए चेक जो गुप्त इनपुट पर ट्रिगर होते हैं
[पेपर 7] सुस्थापित धारणाओं से iOJain, Lin, Sahaiसंख्यात्मक गणनाओं में LPN-प्रेरित शोर इंजेक्शन
[पेपर 9] बाइलीनियर मैप्स और LPN वेरिएंट से iORagavan, Vafa, Vaikuntanathanस्थिति-निर्भर त्रुटि पैटर्न के साथ स्पार्स XOR एन्कोडिंग
[पेपर 10] नल क्वांटम सर्किट और अनुप्रयोगों का iOBartusek, Malavoltaडेड कोड गुणवत्ता सत्यापन के लिए नल सर्किट परीक्षण; स्व-अखंडता सत्यापन (दोहरी-मोड)