VVS Discord Stealer Using Pyarmor for Obfuscation and Detect... #1728
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🤖 Automated Content Update
This PR was automatically generated by the HackTricks News Bot based on a technical blog post.
📝 Source Information
🎯 Content Summary
Unit 42 provides a technical teardown of VVS ("VVS $tealer"), a Python Discord-focused infostealer marketed on Telegram as early as April 2025, with analysis published January 2, 2026. The key technical value is a repeatable workflow to extract, decompile, and statically deobfuscate PyInstaller malware protected with Pyarmor v9 (including BCC mode and AES-CTR protections), then interpret the recovered stealer behaviors.
This is not a CVE/product vulnerability; it is malware tradecraft. The impa...
🔧 Technical Details
PyInstaller raw-bytecode recovery: when a PyInstaller binary contains Python bytecode in bare marshal form, extract it with pyi-archive_viewer and rebuild a valid .pyc by restoring the missing header (at minimum the correct magic number for the embedded interpreter) so decompilers accept the file.
Pyarmor v9 static unpacking: parse the Pyarmor header (signature/license, Python version bytes, BCC indicator, embedded ELF start/end offsets, and the 12-byte CTR nonce split across header fields). Identify wrappers (LOAD_CONST pyarmor_enter*_ and LOAD_CONST pyarmor_exit*_) that surround an AES-CTR-encrypted bytecode region; then decrypt using the runtime-derived AES key and reconstruct the per-region nonce by XORing a payload-specific 12-byte XOR key with the 12 bytes at the end marker. While parsing, handle Pyarmor’s modified code objects (co_flags bit 0x20000000 and an extra length-prefixed field) and disable CPython deopt_code() to make decryption succeed. After decryption, look ...
🤖 Agent Actions
Summary:
Tests:
This PR was automatically created by the HackTricks Feed Bot. Please review the changes carefully before merging.