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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
jsdeob-workbench — Reverse engineer obfuscated JavaScript visually. Chain transforms, inspect AST changes, write reusable deobfuscation plugins. हिंदी अनुवाद: ऑब्स्क्योर जावास्क्रिप्ट को दृश्य रूप से रिवर्स इंजीनियर करें। ट्रांसफ़ॉर्म को चेन करें, AST बदलाव का निरीक्षण करें, पुन: प्रयोज्य डी-ऑब्स्क्योरेशन प्लगइन लिखें। | Kitploit
उपकरण/GitHubGitHub/owl4444/jsdeob-workbench
स्थैतिक विश्लेषणकोड विश्लेषणरिवर्स इंजीनियरिंगस्क्रिप्टिंग और स्वचालनडीबगर्समालवेयर विश्लेषणबाइनरी विश्लेषणलर्निंग और शिक्षा
GitHubowl4444/jsdeob-workbench

jsdeob-workbench

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

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

सभी देखें →

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

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

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

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

विवरण

Reverse engineer obfuscated JavaScript visually. Chain transforms, inspect AST changes, write reusable deobfuscation plugins. हिंदी अनुवाद: ऑब्स्क्योर जावास्क्रिप्ट को दृश्य रूप से रिवर्स इंजीनियर करें। ट्रांसफ़ॉर्म को चेन करें, AST बदलाव का निरीक्षण करें, पुन: प्रयोज्य डी-ऑब्स्क्योरेशन प्लगइन लिखें।

साझा करें

jsdeob-workbench

JavaScript को डीऑबफसकेट करने के लिए एक दृश्य कार्यक्षेत्र। ट्रांसफॉर्म चेन बनाएं, उनमें कदम दर कदम आगे बढ़ें, अपने स्वयं के प्लगइन लिखें।

img

img

YouTube डेमो

  • https://www.youtube.com/watch?v=7zuqKoJT2BM
  • https://www.youtube.com/watch?v=bOVnPIfjoco

यह क्या है?

यह एप्लिकेशन JavaScript प्रोग्राम के Abstract Syntax Tree (AST) को प्रकट करता है। यह विचार एक obfuscatio.io से संबंधित मैलवेयर नमूने का विश्लेषण करते समय आया, जिसके परिणामस्वरूप मैंने डीऑबफसकेट के लिए BabelJS के बारे में और अधिक सीखा। यदि आपने कभी अस्पष्ट JS को रिवर्स इंजीनियर करने का प्रयास किया है (सोचें: webpack बंडल, obfuscator.io आउटपुट, पैक किए गए मैलवेयर नमूने), तो आप जानते हैं कि यह दर्दनाक है। यह उपकरण आपको अनुमति देता है:

  • BabelJS पर आधारित ट्रांसफॉर्मेशन स्क्रिप्ट लिखें
  • ASTViewer से AST का त्वरित संदर्भ लें
  • एक साथ कई ट्रांसफॉर्म को दृश्य रूप से श्रृंखलित करें और परिवर्तन देखने के लिए सारांश प्राप्त करें।
  • सहयोगियों के साथ प्लगइन साझा करें (मैन्युअल) और कॉन्फ़िगरेशन निर्यात करें।
  • पैटर्न लिखें जिन्हें आप प्लगइन के रूप में पुन: उपयोग के लिए फिर से उपयोग कर सकते हैं।
  • अन्य JS नमूनों का विश्लेषण करते समय प्रोजेक्ट सहेजें।

त्वरित प्रारंभ

root@kitploit:~
npm install
npm start
# Open http://localhost:3000

बस इतना ही।

इंटरफ़ेस

बायाँ साइडबार - सभी उपलब्ध ट्रांसफॉर्म (बिल्ट-इन + आपकी रेसिपी प्लगइन के रूप में) जिसमें रेसिपी चेन शामिल है। (साइबरशेफ की तरह सोचें)

मध्य - इनपुट/आउटपुट संपादक। अपना अस्पष्ट कोड बाईं ओर पेस्ट करें और दाईं ओर रूपांतरित कोड देखें।

दाएँ पैनल - AST व्यूअर, स्कोप विश्लेषक, आसानी से देखने योग्य सारांश।

img

स्कोप विश्लेषण

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

img

ट्रांसफॉर्म लिखना

स्क्रिप्ट संपादक खोलने के लिए + बटन दबाएं या Ctrl+N दबाएं। ट्रांसफॉर्म केवल JS कोड हैं जिनमें निम्न तक पहुंच है:

root@kitploit:~
// Available globals:
ast        // The parsed Babel AST
traverse   // Walk the tree: traverse({ Identifier(path) { ... } })
t          // Babel types: t.isStringLiteral(node), t.identifier('x')
config     // User config from the recipe card
stats      // Track your changes: stats.replaced = 5
parser     // Parse code: parser.parse('var x = 1')
generate   // Generate code: generate(node).code
run        // Eval helper: run('1+1') => 2 (DANGER. THIS IS MEANT TO BE RUN ON YOUR OWN MACHINE IN A SANDBOX)

उदाहरण - सभी "debug" स्ट्रिंग्स हटाएं (StringLiteral):

root@kitploit:~
// The following two will appear as parameter in recipe chain as seen in the next screenshot
const targetValue = config.targetValue || 'debug';
const removeMatches = config.removeMatches !== false;

traverse({
  StringLiteral(path) {
    if (path.node.value === targetValue) {
      if (removeMatches) {
        path.remove();
        stats.removed = (stats.removed || 0) + 1;
      }
    }
  }
});

आप चुन सकते हैं:

  • त्वरित परीक्षण के लिए इस स्क्रिप्ट को सीधे (CTRL + ENTER) के माध्यम से चलाएं
  • लिखी गई स्क्रिप्ट को प्लगइन के रूप में सहेजे बिना रेसिपी चेन में जोड़ें (जैसा कि स्क्रीनशॉट में दिखाया गया है)। आप इसे बाद में सहेज सकते हैं
  • एक बार जब आपको पता चल जाए कि यह काम करता है और आप इस प्लगइन को दूसरों के साथ साझा करना चाहते हैं, तो इसे प्लगइन के रूप में सहेजें।

नीचे दिया गया स्क्रीनशॉट दिखाता है:

  1. स्क्रिप्ट संपादक (ऊपर बाईं ओर नए बटन पर क्लिक करें या Ctrl-E शॉर्टकट)
  2. BabelJS स्क्रिप्ट लिखने के बाद, इसे रेसिपी चेन में जोड़ें।
  3. रेसिपी में, पहचाने गए पैरामीटर के साथ, हम प्लगइन के व्यवहार को संशोधित कर सकते हैं।
  4. आउटपुट संपादक सफल रूपांतरण दिखाता है।

img

बिल्ट-इन ट्रांसफॉर्म

ध्यान दें कि ये अस्पष्टता तकनीक के आधार पर विफल हो सकते हैं और कस्टम स्क्रिप्ट की आवश्यकता हो सकती है। आप उन्हें संशोधित भी कर सकते हैं और नई कस्टम स्क्रिप्ट के रूप में सहेज सकते हैं।

नामयह क्या करता है
Beautifyकोड को अच्छी तरह से फ़ॉर्मेट करता है
Constant Folding1 + 2 → 3, "a" + "b" → "ab"
Decode Strings\x48\x65\x6c\x6c\x6f → "Hello" डिकोड करता है
Inline Array Valuesसरल ऐरे तत्व एक्सेस को इनलाइन करता है
Inline String Arrayऑबफसकेटर्स द्वारा उपयोग किए जाने वाले स्ट्रिंग ऐरे को इनलाइन करता है
Opaque Predicate Removalहमेशा सत्य/असत्य शर्तों को हटाता है
Remove Commentsकोड से सभी टिप्पणियाँ हटाता है
Remove IIFE(function(){...})() रैपर को हटाता है
Remove Unused Codeमृत चर और फ़ंक्शन हटाता है
Simplify Literals!0 → true, void 0 → undefined

प्लगइन्स

अपनी स्वयं की .js फ़ाइलों को plugins/<category>/ उपफ़ोल्डर में डालें। वे फ़ोल्डर के अनुसार समूहित साइडबार में दिखाई देंगी।

img

उदाहरण के लिए:

  • नाम: फ़ाइल नाम से व्युत्पन्न (Bracket-to-dot-notation.js → "Decode Strings")
  • श्रेणी: उपफ़ोल्डर नाम (plugins/Utilities/ → श्रेणी "nyx")
root@kitploit:~
/**
 * Bracket to Dot Notation
 * Changes things like  console["log"] to console.log
 * 
 * Category: utilities
 */

// Script Editor - Ctrl+Enter to run, Ctrl+E to close
// Use traverse(visitor) to modify the AST
// Access 't' for Babel types

traverse({
  MemberExpression(path) {
    if(path.node.computed === true){
      // this is the bracket notation
      
      prop = path.node.property
      if(t.isStringLiteral(prop)  &&
          /^[a-zA-Z_][a-zA-Z_0-9]*$/.test(prop.value)
       ){

        path.node.computed = false; // step 1

      // step 2 change literal to identifier
        path.node.property = t.identifier(prop.value)
      

      }
    }
  }

});

पैरामीटर जोड़ने के दो तरीके हैं:

  1. (यह प्राथमिकता लेता है और अत्यधिक अनुशंसित है) कोड में इस प्रारूप का पालन करने पर, स्क्रिप्ट संपादक दो पैरामीटर (targetValue और removeMatches) बनाने का प्रयास करेगा।
root@kitploit:~
const targetValue = config.targetValue || 'debug';
const removeMatches = config.removeMatches !== false;
  1. यदि किनारे के मामलों के कारण कोई पैरामीटर छूट जाता है, तो प्लगइन के रूप में सहेजने से छूटे हुए अतिरिक्त पैरामीटर जोड़ने की अनुमति मिलती है।

img

मुख्य सारांश

इसमें शामिल है:

  • प्रत्येक प्लगइन चलने में लिया गया समय
  • कोड आकार परिवर्तन के आंकड़े
  • परिवर्तनों के दृश्यीकरण के लिए ग्राफ

img

कीबोर्ड शॉर्टकट

कुंजीकार्रवाई
Ctrl+Eस्क्रिप्ट संपादक टॉगल करें
Ctrl+Shift+Eeval पैनल टॉगल करें (खतरनाक)
Ctrl+Sप्रोजेक्ट सहेजें

स्टैंडअलोन EXE बनाना

ध्यान दें कि यदि बहुत सारे नेस्टेड नोड हैं तो स्टैंडअलोन में समस्याएं हो सकती हैं। कार्य के आसपास कभी-कभी काम नहीं कर सकता।

npm के साथ बनाने के लिए, हम निम्नलिखित का उपयोग कर सकते हैं

root@kitploit:~
npm run build        # Windows only

आउटपुट dist/ पर जाता है। यदि आप अपने कस्टम ट्रांसफॉर्म चाहते हैं तो plugins/ फ़ोल्डर को exe के बगल में कॉपी करें।

स्टैक आकार की समस्याएं

गहराई से नेस्टेड कोड (JSFuck की तरह) स्टैक को उड़ा सकता है। बिल्ड स्क्रिप्ट Windows पर इसे स्वचालित रूप से बढ़ाने का प्रयास करती है। यदि आपको स्टैक ओवरफ्लो मिलता है, तो npm start के साथ स्रोत से चलाने का प्रयास करें (--stack-size=65536 का उपयोग करता है)

मुझे यह पता नहीं चला है कि स्टैंडअलोन एक्जीक्यूटेबल में बनाते समय स्टैक आकार कैसे बढ़ाया जाए। यदि आप जानते हैं कि कैसे, तो कृपया मुझे बताएं!

श्रेय

इसके साथ बनाया गया:

  • Babel - AST पार्सिंग और ट्रांसफॉर्म
  • Monaco Editor - कोड संपादक
  • Express - बैकएंड सर्वर

img

प्रश्न? समस्याएं? GitHub issue खोलें।

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