
विंडोज शेलकोड रनर और सहायक उपयोगिताओं का एक भंडार। एप्लिकेशन विभिन्न API कॉल या तकनीकों का उपयोग करके शेलकोड को लोड और निष्पादित करते हैं।
go-shellcode विंडोज शेलकोड रनर और सहायक उपयोगिताओं का एक भंडार है। एप्लिकेशन विभिन्न API कॉल या तकनीकों का उपयोग करके शेलकोड लोड और निष्पादित करते हैं।
उपलब्ध शेलकोड रनर में शामिल हैं:
यह एप्लिकेशन Kernel32.dll से विंडोज CreateFiber फ़ंक्शन का उपयोग करके इस एप्लिकेशन की प्रक्रिया के भीतर शेलकोड निष्पादित करता है। यह उपयोगी है जब आप रिमोट प्रक्रिया इंजेक्शन से बचना चाहते हैं और CreateThread को कॉल करने से बचना चाहते हैं। यह एप्लिकेशन golang.org/x/sys/windows पैकेज के फ़ंक्शंस का उपयोग नहीं करता। सबसे महत्वपूर्ण अंतर यह है कि यह एप्लिकेशन स्वयं सभी आवश्यक DLL और प्रक्रियाओं को लोड करता है और प्रक्रिया के Call() फ़ंक्शन का उपयोग करता है।
नोट: मैंने प्रक्रिया से बाहर निकलने का तरीका नहीं खोजा है और आपको इसे मैन्युअल रूप से समाप्त करना होगा।
एप्लिकेशन को प्रोजेक्ट की रूट डायरेक्टरी से विंडोज होस्ट पर निम्नलिखित कमांड के साथ संकलित किया जा सकता है:
set GOOS=windows GOARCH=amd64;go build -o CreateFiber.exe .\cmd\CreateFiber\main.go
यह एप्लिकेशन Kernel32.dll से विंडोज CreateProcess फ़ंक्शन का उपयोग करता है। प्रक्रिया को निलंबित अवस्था में बनाया जाता है, IMAGE_OPTIONAL_HEADER संरचना में AddressOfEntryPoint को चाइल्ड प्रक्रिया में शेलकोड निष्पादित करने के लिए अपडेट किया जाता है, और फिर प्रक्रिया को फिर से शुरू किया जाता है। यह एक प्रकार का प्रोसेस हॉलोइंग है लेकिन मौजूदा PE को मैप नहीं किया गया है और ThreadContext को अपडेट नहीं किया गया है। प्रदान की गई शेलकोड आर्किटेक्चर (जैसे x86 या x64) चाइल्ड प्रक्रिया की आर्किटेक्चर से मेल खाना चाहिए।
एप्लिकेशन को प्रोजेक्ट की रूट डायरेक्टरी से विंडोज होस्ट पर निम्नलिखित कमांड के साथ संकलित किया जा सकता है:
set GOOS=windows GOARCH=amd64;go build -o CreateProcess.exe .\cmd\CreateProcess\main.go
यह एप्लिकेशन Kernel32.dll से विंडोज CreateProcess फ़ंक्शन का उपयोग करता है। प्रक्रिया को निलंबित अवस्था में बनाया जाता है, IMAGE_OPTIONAL_HEADER संरचना में AddressOfEntryPoint को चाइल्ड प्रक्रिया में शेलकोड निष्पादित करने के लिए अपडेट किया जाता है, और फिर प्रक्रिया को फिर से शुरू किया जाता है। यह एक प्रकार का प्रोसेस हॉलोइंग है लेकिन मौजूदा PE को मैप नहीं किया गया है और ThreadContext को अपडेट नहीं किया गया है। प्रदान की गई शेलकोड आर्किटेक्चर (जैसे x86 या x64) चाइल्ड प्रक्रिया की आर्किटेक्चर से मेल खाना चाहिए।
यह एप्लिकेशन CreateProcess से भिन्न है क्योंकि यह चाइल्ड प्रक्रिया में STDOUT या STDERR पर लिखे गए किसी भी डेटा को एकत्र करेगा और उसे पैरेंट प्रक्रिया में वापस करेगा। डेटा को CreatePipe फ़ंक्शन का उपयोग करके एक अनाम पाइप बनाकर एकत्र किया जाता है जिस पर पैरेंट और चाइल्ड प्रक्रिया संचार करती हैं। यह उपयोगी है जब Donut जैसे टूल का उपयोग करके एक .NET असेंबली को चाइल्ड प्रक्रिया में शेलकोड के रूप में निष्पादित किया जाता है और निष्पादित प्रोग्राम का आउटपुट प्राप्त किया जाता है। Donut v0.9.3 के साथ Seatbelt चलाने के लिए स्थिति-स्वतंत्र शेलकोड उत्पन्न करने के लिए निम्नलिखित कमांड का उपयोग किया जा सकता है:
.\donut.exe -o donut_v0.9.3_Seatbelt.bin -x 2 -c Seatbelt.Program -m Main -p "ARPTable" Seatbelt.exe
एप्लिकेशन को प्रोजेक्ट की रूट डायरेक्टरी से विंडोज होस्ट पर निम्नलिखित कमांड के साथ संकलित किया जा सकता है:
set GOOS=windows GOARCH=amd64;go build -o CreateProcessWithPipe.exe .\cmd\CreateProcessWithPipe\main.go
यह एप्लिकेशन Kernel32.dll से विंडोज CreateRemoteThread फ़ंक्शन का उपयोग करके रिमोट प्रक्रिया में शेलकोड निष्पादित करता है। एप्लिकेशन के लिए आवश्यक है कि इंजेक्ट करने के लिए लक्ष्य प्रक्रिया पहले से चल रही हो। परीक्षण के लिए रनटाइम पर -pid कमांड लाइन फ़्लैग का उपयोग करके लक्ष्य प्रक्रिया पहचानकर्ता (PID) प्रदान किया जा सकता है। परिचालन उपयोग के लिए निम्नलिखित कोड लाइन में 0 को अपने लक्ष्य PID से बदलकर PID को हार्डकोड करें:
pid := flag.Int("pid", 0, "Process ID to inject shellcode into")
यह एप्लिकेशन जहाँ संभव हो, golang.org/x/sys/windows पैकेज के फ़ंक्शंस का उपयोग करता है, जैसे windows.OpenProcess()। एप्लिकेशन को प्रोजेक्ट की रूट डायरेक्टरी से विंडोज होस्ट पर निम्नलिखित कमांड के साथ संकलित किया जा सकता है:
set GOOS=windows GOARCH=amd64;go build -o CreateRemoteThread.exe .\cmd\CreateRemoteThread\main.go
यह एप्लिकेशन Kernel32.dll से विंडोज CreateRemoteThread फ़ंक्शन का उपयोग करके रिमोट प्रक्रिया में शेलकोड निष्पादित करता है। एप्लिकेशन के लिए आवश्यक है कि इंजेक्ट करने के लिए लक्ष्य प्रक्रिया पहले से चल रही हो। परीक्षण के लिए रनटाइम पर -pid कमांड लाइन फ़्लैग का उपयोग करके लक्ष्य प्रक्रिया पहचानकर्ता (PID) प्रदान किया जा सकता है। परिचालन उपयोग के लिए निम्नलिखित कोड लाइन में 0 को अपने लक्ष्य PID से बदलकर PID को हार्डकोड करें:
pid := flag.Int("pid", 0, "Process ID to inject shellcode into")
यह एप्लिकेशन golang.org/x/sys/windows पैकेज के फ़ंक्शंस का उपयोग नहीं करता। सबसे महत्वपूर्ण अंतर यह है कि यह एप्लिकेशन स्वयं सभी आवश्यक DLL और प्रक्रियाओं को लोड करता है और प्रक्रिया के Call() फ़ंक्शन का उपयोग करता है। एप्लिकेशन को प्रोजेक्ट की रूट डायरेक्टरी से विंडोज होस्ट पर निम्नलिखित कमांड के साथ संकलित किया जा सकता है:
set GOOS=windows GOARCH=amd64;go build -o CreateRemoteThreadNative.exe .\cmd\CreateRemoteThreadNative\main.go
यह एप्लिकेशन Kernel32.dll से विंडोज CreateThread फ़ंक्शन का उपयोग करके इस एप्लिकेशन की प्रक्रिया के भीतर शेलकोड निष्पादित करता है। यह उपयोगी है जब आप रिमोट प्रक्रिया इंजेक्शन से बचना चाहते हैं। यह एप्लिकेशन जहाँ संभव हो, golang.org/x/sys/windows पैकेज के फ़ंक्शंस का उपयोग करता है, जैसे windows.VirtualAlloc()। एप्लिकेशन को प्रोजेक्ट की रूट डायरेक्टरी से विंडोज होस्ट पर निम्नलिखित कमांड के साथ संकलित किया जा सकता है:
set GOOS=windows GOARCH=amd64;go build -o CreateThread.exe .\cmd\CreateThread\main.go
यह एप्लिकेशन Kernel32.dll से विंडोज CreateThread फ़ंक्शन का उपयोग करके इस एप्लिकेशन की प्रक्रिया के भीतर शेलकोड निष्पादित करता है। यह उपयोगी है जब आप रिमोट प्रक्रिया इंजेक्शन से बचना चाहते हैं। यह एप्लिकेशन golang.org/x/sys/windows पैकेज के फ़ंक्शंस का उपयोग नहीं करता। सबसे महत्वपूर्ण अंतर यह है कि यह एप्लिकेशन स्वयं सभी आवश्यक DLL और प्रक्रियाओं को लोड करता है और प्रक्रिया के Call() फ़ंक्शन का उपयोग करता है। एप्लिकेशन को प्रोजेक्ट की रूट डायरेक्टरी से विंडोज होस्ट पर निम्नलिखित कमांड के साथ संकलित किया जा सकता है:
set GOOS=windows GOARCH=amd64;go build -o CreateThreadNative.exe .\cmd\CreateThreadNative\main.go
एप्लिकेशन निलंबित अवस्था में एक प्रक्रिया बनाने के लिए विंडोज CreateProcess फ़ंक्शन का उपयोग करता है। एक बार चाइल्ड प्रक्रिया निलंबित हो जाने पर, विंडोज QueueUserAPC फ़ंक्शन का उपयोग चाइल्ड प्रक्रिया में एक UserAPC जोड़ने के लिए किया जाता है जो आवंटित शेलकोड को इंगित करता है। इसके बाद, ResumeThread को कॉल किया जाता है, जो बदले में अप्रलेखित NtTestAlert फ़ंक्शन को कॉल करता है जो बनाए गए UserAPC और बदले में शेलकोड को निष्पादित करेगा। यह उपयोगी है क्योंकि शेलकोड AV/EDR द्वारा पहचान का समर्थन करने के लिए फ़ंक्शंस को हुक करने से पहले निष्पादित होगा। संदर्भ New 'Early Bird' Code Injection Technique Discovered. एप्लिकेशन को प्रोजेक्ट की रूट डायरेक्टरी से विंडोज होस्ट पर निम्नलिखित कमांड के साथ संकलित किया जा सकता है:
export GOOS=windows GOARCH=amd64;go build -o goEarlyBird.exe cmd\EarlyBird\main.go
यह एप्लिकेशन ntdll.dll से विंडोज EtwpCreateEtwThread फ़ंक्शन का उपयोग करके इस एप्लिकेशन की प्रक्रिया के भीतर शेलकोड निष्पादित करता है। मूल कार्य TheWover द्वारा। यह उपयोगी है जब आप रिमोट प्रक्रिया इंजेक्शन से बचना चाहते हैं। यह एप्लिकेशन golang.org/x/sys/windows पैकेज के फ़ंक्शंस का उपयोग नहीं करता। सबसे महत्वपूर्ण अंतर यह है कि यह एप्लिकेशन स्वयं सभी आवश्यक DLL और प्रक्रियाओं को लोड करता है और प्रक्रिया के Call() फ़ंक्शन का उपयोग करता है। एप्लिकेशन को प्रोजेक्ट की रूट डायरेक्टरी से विंडोज होस्ट पर निम्नलिखित कमांड के साथ संकलित किया जा सकता है:
set GOOS=windows GOARCH=amd64;go build -o EtwpCreateEtwThread.exe .\cmd\EtwpCreateEtwThread\main.go
यह एप्लिकेशन शेलकोड निष्पादित करने के लिए वर्तमान प्रक्रिया के वर्तमान थ्रेड में एक "Special User APC" बनाने के लिए अप्रलेखित NtQueueApcThreadEx का उपयोग करता है। चूंकि शेलकोड वर्तमान प्रक्रिया में लोड और निष्पादित होता है, यह "local" है। इसी तकनीक का उपयोग रिमोट प्रक्रिया के लिए भी किया जा सकता है। नोट: यह केवल Windows 7 या बाद के संस्करण पर काम करेगा। संदर्भ APC Series: User APC API.
export GOOS=windows GOARCH=amd64;go build -o goNtQueueApcThreadEx-Local.exe cmd\NtQueueApcThreadEx-Local\main.go
यह एप्लिकेशन ntdll.dll से विंडोज RtlCreateUserThread फ़ंक्शन का उपयोग करके रिमोट प्रक्रिया में शेलकोड निष्पादित करता है। एप्लिकेशन के लिए आवश्यक है कि इंजेक्ट करने के लिए लक्ष्य प्रक्रिया पहले से चल रही हो। परीक्षण के लिए रनटाइम पर -pid कमांड लाइन फ़्लैग का उपयोग करके लक्ष्य प्रक्रिया पहचानकर्ता (PID) प्रदान किया जा सकता है। परिचालन उपयोग के लिए निम्नलिखित कोड लाइन में 0 को अपने लक्ष्य PID से बदलकर PID को हार्डकोड करें:
pid := flag.Int("pid", 0, "Process ID to inject shellcode into")
यह एप्लिकेशन golang.org/x/sys/windows पैकेज के फ़ंक्शंस का उपयोग नहीं करता। सबसे महत्वपूर्ण अंतर यह है कि यह एप्लिकेशन स्वयं सभी आवश्यक DLL और प्रक्रियाओं को लोड करता है और प्रक्रिया के Call() फ़ंक्शन का उपयोग करता है। एप्लिकेशन को प्रोजेक्ट की रूट डायरेक्टरी से विंडोज होस्ट पर निम्नलिखित कमांड के साथ संकलित किया जा सकता है:
set GOOS=windows GOARCH=amd64;go build -o RtlCreateUserThread.exe .\cmd\RtlCreateUserThread\main.go
यह एप्लिकेशन शेलकोड के प्रवेश बिंदु पर एक Syscall करके वर्तमान चल रही प्रक्रिया में शेलकोड निष्पादित करता है। यह एप्लिकेशन golang.org/x/sys/windows पैकेज के फ़ंक्शंस का उपयोग नहीं करता। एप्लिकेशन को प्रोजेक्ट की रूट डायरेक्टरी से विंडोज होस्ट पर निम्नलिखित कमांड के साथ संकलित किया जा सकता है:
set GOOS=windows GOARCH=amd64;go build -o Syscall.exe .\cmd\Syscall\main.go
यह एप्लिकेशन एक मेमोरी एड्रेस पर शेलकोड लोड करने के लिए विंडोज UuidFromStringA फ़ंक्शन का उपयोग करता है और फिर शेलकोड को निष्पादित करने के लिए EnumSystemLocalesA फ़ंक्शन को कॉल करता है। शेलकोड लोड करने और निष्पादित करने की यह विधि nccgroup के RIFT: Analysing a Lazarus Shellcode Execution Method से ली गई है। इस एप्लिकेशन के लिए, मेमोरी हीप पर आवंटित की जाती है और यह VirtualAlloc का उपयोग नहीं करता है। एप्लिकेशन को प्रोजेक्ट की रूट डायरेक्टरी से विंडोज होस्ट पर निम्नलिखित कमांड के साथ संकलित किया जा सकता है:
set GOOS=windows GOARCH=amd64;go build -o UuidFromString.exe .\cmd\UuidFromString\main.go
यह एप्लिकेशन शेलकोड बाइनरी फ़ाइलों को रूपांतरित करने के लिए उपयोग किया जाता है। प्रोग्राम इस बात पर निर्भर करता है कि इनपुट फ़ाइल एक बाइनरी फ़ाइल (.bin) है जिसमें शेलकोड के हेक्स बाइट्स होते हैं। ShellcodeUtils आपकी इनपुट फ़ाइल को केवल base64 एन्कोड कर सकता है या इसे XOR, RC4, या AES256-GCM एन्क्रिप्ट कर सकता है। उपकरण फ़ाइलों को डिक्रिप्ट भी कर सकते हैं।
ShellcodeUtils सहायता मेनू:
-base64
आउटपुट को Base64 एन्कोड करें। एन्क्रिप्शन के साथ या बिना उपयोग किया जा सकता है
-i string
बाइनरी फ़ाइल का इनपुट फ़ाइल पथ
-key string
एन्क्रिप्शन कुंजी
-mode string
इनपुट फ़ाइल पर निष्पादित करने के लिए ऑपरेशन का मोड [encrypt,decrypt] (डिफ़ॉल्ट "encrypt")
-nonce string
AES256 इनपुट फ़ाइल को डिक्रिप्ट करने के लिए उपयोग किया जाने वाला हेक्स में नॉन्स। केवल डिक्रिप्शन के दौरान उपयोग किया जाता है
-o string
आउटपुट फ़ाइल पथ
-salt string
Argon2 के माध्यम से AES256 32-बाइट कुंजी उत्पन्न करने के लिए उपयोग किया जाने वाला हेक्स में सॉल्ट। केवल डिक्रिप्शन के दौरान उपयोग किया जाता है
-type string
उपयोग करने के लिए एन्क्रिप्शन का प्रकार [xor, aes256, rc4, null]
-v वर्बोज़ आउटपुट सक्षम करें
केवल इनपुट फ़ाइल को Base64 एन्कोड करने और इसे टेक्स्ट फ़ाइल में सहेजने का उदाहरण:
PS C:\Users\bob> .\ShellcodeUtils.exe -i C:\Users\bob\calc.bin -o C:\Users\bob\calc.b64.txt -base64 -v
[-]आउटपुट निर्देशिका: C:\Users\bob\
[-]आउटपुट फ़ाइल का नाम: calc.b64.txt
[-]फ़ाइल सामग्री (हेक्स): 505152535657556a605a6863616c6354594883ec2865488b32488b7618488b761048ad488b30488b7e3003573c8b5c17288b741f204801fe8b541f240fb72c178d5202ad813c0757696e4575ef8b741f1c4801fe8b34ae4801f799ffd74883c4305d5f5e5b5a5958c3
[-]कोई एन्क्रिप्शन प्रकार प्रदान नहीं किया गया, जारी रखा जा रहा है...
[+]आउटपुट (स्ट्रिंग):
UFFSU1ZXVWpgWmhjYWxjVFlIg+woZUiLMkiLdhhIi3YQSK1IizBIi34wA1c8i1wXKIt0HyBIAf6LVB8kD7csF41SAq2BPAdXaW5Fde+LdB8cSAH+izSuSAH3mf/XSIPEMF1fXltaWVjD
[+] इनपुट एन्क्रिप्ट किया गया और 140 बाइट्स यहां लिखे गए: C:\Users\bob\calc.b64.txt
Sh3!1z कुंजी के साथ इनपुट फ़ाइल को XOR एन्क्रिप्ट करने और आउटपुट को base64 एन्कोड करने का उदाहरण:
PS C:\Users\bob> .\ShellcodeUtils.exe -i C:\Users\bob\calc.bin -o C:\Users\bob\calc.xor.b64.txt -mode encrypt -type xor -key Sh3!1z -v
[-]आउटपुट निर्देशिका: C:\Users\bob\
[-]आउटपुट फ़ाइल का नाम: calc.xor.b64.txt
[-]फ़ाइल सामग्री (हेक्स): 505152535657556a605a6863616c6354594883ec2865488b32488b7618488b761048ad488b30488b7e3003573c8b5c17288b741f204801fe8b541f240fb72c178d5202ad813c0757696e4575ef8b741f1c4801fe8b34ae4801f799ffd74883c4305d5f5e5b5a5958c3
[-]कुंजी के साथ इनपुट फ़ाइल को XOR एन्क्रिप्ट किया जा रहा है: Sh3!1z
[+]आउटपुट (हेक्स):
03396172672d0602537b5919320450756832d0841b4479f16120b8572932d81e23699c32d8587baa4f4a503f0faa6d6d7be3473e11325296b8752e5e5cdf1f36bc2851c5b21d362d3a067654def127772f693084d85c9d69308dca97e469b2be63356c7f6a200a30f0
[+]xor इनपुट एन्क्रिप्ट किया गया और 105 बाइट्स यहां लिखे गए: C:\Users\bob\calc.xor.b64.txt
आउटपुट को base64 एन्कोड किए बिना Sh3!1z पासवर्ड के साथ इनपुट फ़ाइल को AES256-GCM एन्क्रिप्ट करने का उदाहरण:
PS C:\Users\bob> .\ShellcodeUtils.exe -i C:\Users\bob\calc.bin -o C:\Users\bob\calc.aes.bin -mode encrypt -type aes256 -key Sh3!1z -v
[-]आउटपुट निर्देशिका: C:\Users\bob\
[-]आउटपुट फ़ाइल का नाम: calc.aes.bin
[-]फ़ाइल सामग्री (हेक्स): 505152535657556a605a6863616c6354594883ec2865488b32488b7618488b761048ad488b30488b7e3003573c8b5c17288b741f204801fe8b541f240fb72c178d5202ad813c0757696e4575ef8b741f1c4801fe8b34ae4801f799ffd74883c4305d5f5e5b5a5958c3
[-]इनपुट फ़ाइल को AES256 एन्क्रिप्ट किया जा रहा है
[+]Argon2 सॉल्ट (हेक्स): db6126d3ac640f8aaa67cda74b8cf1d2c54513db7bf4fbe3422d1b276af1367e
[+]इनपुट पासवर्ड Sh3!1z से प्राप्त AES256 कुंजी (32-बाइट) (हेक्स): 096a40f1aef38dd9b5d63284acc19727c4420dd98f21ea052112bef63eb7d94a
[+]AES256 नॉन्स (हेक्स): 13802153c4b2fb6a3e545ff4
[+]आउटपुट (हेक्स):
44a974233e37b460dc2181b16846f265e8e3a07959abf9c8760f7d0ac8029575e67571ea5b313bc8b011739db57c690ec156a4b0bba4e4d632c35c1490aeaac24f5ae05e90934adf57798ee3c702a3c27073fe976fbcc6ee5db355da186c1add58913e41a8c5716a0fcfc27371f0cae906e50e680366496a00
[+]aes256 इनपुट एन्क्रिप्ट किया गया और 121 बाइट्स यहां लिखे गए: C:\Users\bob\calc.aes.bin
AES256 के लिए 32-बाइट कुंजी की आवश्यकता होती है। यह प्रोग्राम -key इनपुट पैरामीटर के साथ प्रदान किए गए पासवर्ड से Argon2 ID एल्गोरिदम का उपयोग करके 32-बाइट कुंजी प्राप्त करता है, जबकि यादृच्छिक रूप से उत्पन्न सॉल्ट का उपयोग करता है। फ़ाइल को सफलतापूर्वक डिक्रिप्ट करने के लिए आपको समान इनपुट पासवर्ड और Argon2 एल्गोरिदम के साथ उपयोग किए गए सॉल्ट और AES256 एल्गोरिदम के साथ उपयोग किए गए समान नॉन्स की आवश्यकता होगी। वैकल्पिक रूप से, डिक्रिप्शन फ़ंक्शन को इनपुट पासवर्ड और सॉल्ट के बजाय केवल 32-बाइट Argon2 कुंजी का उपयोग करने के लिए अपडेट किया जा सकता है।
नोट: ऑपरेटर पर निर्भर है कि वह उत्पन्न Argon2 कुंजी का उपयोग करे या पासवर्ड और सॉल्ट का उपयोग करे जो पासवर्ड उत्पन्न करने के लिए उपयोग किए जाते हैं।
इनपुट फ़ाइल को AES256 डिक्रिप्ट करने का उदाहरण:
PS C:\Users\bob> .\ShellcodeUtils.exe -i C:\Users\bob\calc.aes.bin -o C:\Users\bob\calc.aes.decrypted.bin -mode decrypt -type aes256 -key Sh3!1z -nonce 13802153c4b2fb6a3e545ff4 -salt db6126d3ac640f8aaa67cda74b8cf1d2c54513db7bf4fbe3422d1b276af1367e -v
[-]आउटपुट निर्देशिका: C:\Users\bob\
[-]आउटपुट फ़ाइल का नाम: calc.aes.decrypted.bin
[-]फ़ाइल सामग्री (हेक्स): 44a974233e37b460dc2181b16846f265e8e3a07959abf9c8760f7d0ac8029575e67571ea5b313bc8b011739db57c690ec156a4b0bba4e4d632c35c1490aeaac24f5ae05e90934adf57798ee3c702a3c27073fe976fbcc6ee5db355da186c1add58913e41a8c5716a0fcfc27371f0cae906e50e680366496a00
[-]इनपुट फ़ाइल को AES256 डिक्रिप्ट किया जा रहा है
[-]Argon2 सॉल्ट (हेक्स): db6126d3ac640f8aaa67cda74b8cf1d2c54513db7bf4fbe3422d1b276af1367e
[-]AES256 कुंजी (हेक्स): 096a40f1aef38dd9b5d63284acc19727c4420dd98f21ea052112bef63eb7d94a
[-]AES256 नॉन्स (हेक्स): 13802153c4b2fb6a3e545ff4
[+]आउटपुट (हेक्स):
505152535657556a605a6863616c6354594883ec2865488b32488b7618488b761048ad488b30488b7e3003573c8b5c17288b741f204801fe8b541f240fb72c178d5202ad813c0757696e4575ef8b741f1c4801fe8b34ae4801f799ffd74883c4305d5f5e5b5a5958c3
[+]aes256 इनपुट डिक्रिप्ट किया गया और 105 बाइट्स यहां लिखे गए: C:\Users\bob\calc.aes.decrypted.bin
एप्लिकेशन को प्रोजेक्ट की रूट डायरेक्टरी से विंडोज होस्ट पर निम्नलिखित कमांड के साथ संकलित किया जा सकता है:
set GOOS=windows GOARCH=amd64;go build -o ShellcodeUtils.exe .\cmd\ShellcodeUtils\main.go