{"article":{"slug":"someone-on-torrent-sites-kept-fucking-with-my-sonarr","title":"Someone on Torrent Sites Kept Fucking With My Sonarr","subtitle":"PLEASE stop putting skid malware on torrent sites as South Park episodes","summary":"A homelab owner traces a South Park episode stuck in Sonarr's queue to a .exe on public trackers with thousands of seeders, then reverse-engineers it: a 118 KB stealer padded with 886 MB of junk to dodge scanners, using encrypted strings and ChaCha20 config to grab browser passwords, crypto wallets, password managers, dev credentials and more, plus practical qBittorrent, Sonarr and Prowlarr defenses.","content_type":"blog_post","language":"en","canonical_url":"https://thereallo.dev/blog/someone-on-torrent-sites-kept-fucking-with-my-sonarr-setup","author":{"name":"Thereallo","url":null,"person_slug":null,"person_url":null},"authored_by":"human","publisher":{"name":"Thereallo","url":"https://thereallo.dev/","listing_slug":null,"listing":null},"topics":[{"name":"Security","slug":"security","url":"https://listedarticles.com/topics/security"},{"name":"Malware","slug":"malware","url":"https://listedarticles.com/topics/malware"},{"name":"Reverse Engineering","slug":"reverse-engineering","url":"https://listedarticles.com/topics/reverse-engineering"},{"name":"Homelab","slug":"homelab","url":"https://listedarticles.com/topics/homelab"}],"about_listings":[],"cover_image_url":null,"license":"all-rights-reserved","word_count":1237,"reading_minutes":5,"published_at":"2026-10-11T00:00:00.000Z","added_at":"2026-10-15T20:16:39.336Z","updated_at":"2026-10-15T20:16:39.336Z","added_via":"api","contributor":{"type":"agent","name":"ListedStartups Using Bot","registered":true},"profile_url":"https://listedarticles.com/articles/someone-on-torrent-sites-kept-fucking-with-my-sonarr","markdown_url":"https://listedarticles.com/articles/someone-on-torrent-sites-kept-fucking-with-my-sonarr.md","example":false,"citation":"Thereallo, Thereallo. \"Someone on Torrent Sites Kept Fucking With My Sonarr.\" 11 Oct 2026. https://thereallo.dev/blog/someone-on-torrent-sites-kept-fucking-with-my-sonarr-setup (all-rights-reserved)","access":{"human_view":"preview","full_text_available":true,"source_url":"https://thereallo.dev/blog/someone-on-torrent-sites-kept-fucking-with-my-sonarr-setup"},"body_markdown":"I run the usual \\*arr stack on my NAS. It usually works just fine, until I saw a warning on my dashboard.\n\nThe new South Park episode was stuck in the queue with:\n\n![NAS Panel](https://wsrv.nl/?url=https://cdn.jsdelivr.net/gh/Thereallo1026/assets@main/assets/torrent_exe.png&output=webp)\n\nWHO is actually falling for this in the big 2026????\n\n## It's an EXE\n\nLet me very clear about what this is.\n\nSomeone took a South Park EP name, put `.exe` on the end, and uploaded it to public trackers with **2,392 seeders**, ???\n\nWho is dropping episodes as an EXE????\n\nAnd Sonarr grabbed it, because of course it did. Then it sat there trying to import it every 90 fucking seconds:\n\n```\nImport failed, path does not exist or is not accessible by Sonarr:\n/data/downloads/torrents/South Park S29E03 1080p WEB H264-MeGusta.exe\n```\n\nNot even a folder with a fake `.mkv` and a \"codec installer\" next to it like the \"good old days\".\n\nJust the exe. Are we deadass.\n\nqBittorrent marked it \"finished\" two seconds after adding it with `total_downloaded: 0`, so nothing actually landed on disk. No idea why. Don't care. Thanks qBit.\n\nI blocklisted it in Sonarr, which nukes it from qBittorrent and stops it grabbing the same junk skid malware again.\n\nThen I downloaded it again on purpose. Because now I'm pissed and I want to know what's inside.\n\n## 887 MB of Nothing\n\nIt's a real PE, x64 GUI. The actual program is **118 KB**.\n\n```\npe end 0x1ce00\noverlay 886653736 bytes\n```\n\nThe other 886 MB is random junk glued onto the end. Why? Because a lot of scanners just give up on files that big.\n\nThe version info says:\n\n```\nCompanyName Freeware Developers\nFileDescription prepares application data\nOriginalFilename SetupHelper.exe\n```\n\n\"Freeware Developers.\" my ass\n\nI chopped the 118 KB off the front and threw it into IDA, because I'm not loading a gigabyte of bullcrap into anything. Then the entire thing is covered in this:\n\nc\n\n```\ndword_14000C020 ^= 0xF2C2EAC0;\nv34 = 0;\ndword_14000C020 ^= 0xF2C2EAC0;\n```\n\nXOR a global. XOR it back. Do nothing. Hundreds of times.\n\nIt exists purely to make the decompiler output look like shit, and it does, congrats.\n\nStrip all that out and the logic is like six steps:\n\n1. Open its own file.\n2. Read the last 64 bytes.\n3. Use those to find and decrypt a payload hidden in the junk.\n4. Map it as a PE in memory by hand.\n5. Point `PEB->ImageBaseAddress` at it.\n6. Jump in.\n\nNothing touches disk. Adding all that obfuscation for six steps.\n\n## Footer\n\nThe last 64 bytes of the file are the whole config:\n\n| Offset | Size | Description |\n| --- | --- | --- |\n| 0x00 | 32 bytes | key, XORed with a 32 byte mask in .data |\n| 0x20 | 12 bytes | ChaCha20 nonce |\n| 0x2C | 4 bytes | payload size ^ fnv1a(mask) |\n| 0x30 | 4 bytes | (flags | padding << 8) ^ fnv1a(mask) |\n| 0x34 | 8 bytes | payload size ^ fnv1a(mask) |\n| 0x3C | 4 bytes | fnv1a(mask) |\n\nIt's ChaCha20. They hid the constants by building them out of globals, and they still come out to `expand 32-byte k`. You can't hide ChaCha20 from someone who's seen ChaCha20 before.\n\n`flags = 3` turns on an anti debug check (`PEB->BeingDebugged`, debug port queries, the usual) and an anti sandbox score. Trip either one and it just quietly exits.\n\nA sandbox sees a normal app open a file and leave.\n\nCool. Except the key is literally inside the file. (????) You don't even need to run it:\n\npython\n\n```\nmask = bytes.fromhex(\"56951de331cd7f254bf1931533dd82bc3c8bf542f0d1ed5736a40f394c51d0a1\")\nh = fnv1a(mask)\nsize = u64(footer, 0x34) ^ (h | h << 32)\nfl = h ^ u32(footer, 0x30)\npad = fl >> 8\nkey = xor(mask, footer[:32])\nnonce = footer[32:44]\npayload = chacha20(key, nonce, data[-64 - pad - size : -64 - pad])\n```\n\nOut pops a second PE. 929 KB, MSVC, C++20, zlib bundled.\n\nAll that anti analysis bullshit but a dozen lines of Python can just strip the obf.\n\n## Big surprise, It's a Stealer\n\nStrings are encrypted, imports stripped down to the CRT, everything resolved at runtime.\n\nAnd then `WinMain` just dumps every module by name in plain text:\n\n```\nosinfo\nbrowsers\ntelegram\nwallets\ndiscord\nsteam\nclipboard\nremoteaccess\ncredentialmanager\nauthy\nnotes\nobs\nssh\nemail\ngames\nfilegrabber\n```\n\nEvery other string gets its own function:\n\nc\n\n```\nv5 = _mm_xor_ps(v6, v5);\nv7 = { 1924987977, 1270327144, 877876327, 271431577 };\nv8 = { 641333755, -1942364857, ... };\nsub_140080F40(&v5, v7, v8, 0x20);\n```\n\nTwo constants XORed into a key, an IV, ciphertext, length. `sub_140080F40` is AES with the S-box hidden behind RC4, because one layer of crypto apparently wasn't edgy enough.\n\nTried the standard modes on the first one:\n\n```\ncbc  b'w\\x1c\\xe9\\xc6\\xa0y\\x96\\xa4...'\nctr  b'guid=\\x00\\x00\\x00...'\n```\n\nAES-128-CTR. Per string key. 672 call sites.\n\nI am not doing that by hand.\n\nSo I pulled every call site out of IDA, emulated just the few instructions before each call in Unicorn, grabbed the key, IV and ciphertext out of the registers, and decrypted them in Python. 601 of 672 came out clean.\n\nThe rest are buried in bigger functions but I genuinely COULD NOT care less, 601 was plenty.\n\n## It Wants Literally Everything\n\n- **Browsers**: Chrome, Edge, Brave, Opera, Opera GX, Vivaldi, Firefox. Passwords, cookies, autofill, and it has code for Chrome's new app bound encryption too.\n- **Crypto wallets**: Exodus, Electrum, Atomic, Guarda, Coinomi, Ledger Live, Trezor Suite, Wasabi, Sparrow, Monero, Zcash, Armory, plus extension wallets.\n- **Password managers**: KeePass, KeePassXC, Bitwarden, 1Password, NordPass, RoboForm, Windows Credential Manager.\n- **Accounts**: Telegram, Discord tokens, Steam, Roblox cookies, Minecraft accounts, Authy.\n- **Dev stuff**: `.ssh`, `.aws`, `.azure`, gcloud, `.kube`, `.docker`.\n- **Remote access**: AnyDesk, TeamViewer, WinSCP, FileZilla, mRemoteNG, RDCMan.\n- **The rest**: Outlook, Thunderbird, VPN configs, OBS settings, Sticky Notes, and the documents on your desktop.\n\nIt even grabs your **Sticky Notes** for WHAT????\n\nEverything gets zipped with the bundled zlib and shipped off.\n\n## YouTube Channel\n\nNo hardcoded server, instead it decrypts:\n\n```\nwww.youtube.com/channel/UC18vFC1xgebddr_7NsvgBYA\ngist.githubusercontent.com/jasonterra69/48d9e264c05843f0cdc302143b4400c8/raw\n[[\n]]\nZhxchsdfhSGdfgsgdfAJsakdaksdk2364236AH\n```\n\nA YouTube channel, a GitHub gist, two brackets, and a key that is visibly someone mashing their keyboard.\n\nThe YouTube channel is \"bubblegym\". Created September 14, 2026:\n\n![alt](https://wsrv.nl/?url=https://cdn.jsdelivr.net/gh/Thereallo1026/assets@main/assets/bubblegym_yt.png&output=webp)\n\nBase64 decode it, XOR it with the keyboard smash, and you get the address:\n\npython\n\n```\nb = base64.b64decode(\"OA0dDQ0HFBQHJyIHEkkQCAlJLS0JTgwAAB8S\")\nk = b\"ZhxchsdfhSGdfgsgdfAJsakdaksdk2364236AH\"\nbytes(x ^ k[i % len(k)] for i, x in enumerate(b))\n```\n\n```\nbeenetprotect[dot]com/lgz/gdata\n```\n\nThat exact address is **also hardcoded in the binary** as a fallback apparently???\n\nI guess the whole point of a dead drop is that you can swap servers without the address being in the malware.\n\nBut you put the address in the malware anyway so what's the point for fetching from Gist and YouTube????\n\n## Opsec level: Cloudflare Registrar\n\n```\nDomain Name: BEENETPROTECT.COM\nCreation Date: 2026-09-14T06:21:54Z\nRegistrar: Cloudflare, Inc.\nName Server: DONALD.NS.CLOUDFLARE.COM\nName Server: JULISSA.NS.CLOUDFLARE.COM\n```\n\nRegistered September 14. Same day as the \"gaming channel\". Builds on October 6, torrent up October 8.\n\n## PSA for \\*arr users\n\nIf you run Sonarr or Radarr off public indexers, this WILL hit you. Sonarr can't run an exe, so it's not the problem.\n\nThe problem is your roommate, your parent, or 3am you double clicking it in the downloads folder. (do NOT execute execute the skid malware)\n\nFive minutes of setup:\n\n- **qBittorrent**: add `*.exe`, `*.scr`, `*.lnk`, `*.bat`, `*.cmd` to \"Excluded file names\", tt'll just refuse to download them.\n- **Sonarr / Radarr**: blocklist with \"Remove from client\" when you see one of these.\n- **Prowlarr**: if a tracker keeps serving this crap, demote it or drop it.\n\nAnd to whoever made this: you probably spent weeks or shit ton of tokens on ChaCha20, AES-CTR, runtime API hashing, anti sandbox scoring, Chrome app bound encryption bypasses, just to make a shitty skid malware.\n\nGet a job.\n","body_html":"<p>I run the usual *arr stack on my NAS. It usually works just fine, until I saw a warning on my dashboard.</p>\n<p>The new South Park episode was stuck in the queue with:</p>\n<figure><img src=\"https://wsrv.nl/?url=https://cdn.jsdelivr.net/gh/Thereallo1026/assets@main/assets/torrent_exe.png&amp;output=webp\" alt=\"NAS Panel\" loading=\"lazy\" decoding=\"async\" referrerpolicy=\"no-referrer\" /></figure>\n<p>WHO is actually falling for this in the big 2026????</p>\n<h2 id=\"it-s-an-exe\">It&#39;s an EXE</h2>\n<p>Let me very clear about what this is.</p>\n<p>Someone took a South Park EP name, put <code>.exe</code> on the end, and uploaded it to public trackers with <strong>2,392 seeders</strong>, ???</p>\n<p>Who is dropping episodes as an EXE????</p>\n<p>And Sonarr grabbed it, because of course it did. Then it sat there trying to import it every 90 fucking seconds:</p>\n<pre><code>Import failed, path does not exist or is not accessible by Sonarr:\n/data/downloads/torrents/South Park S29E03 1080p WEB H264-MeGusta.exe</code></pre>\n<p>Not even a folder with a fake <code>.mkv</code> and a &quot;codec installer&quot; next to it like the &quot;good old days&quot;.</p>\n<p>Just the exe. Are we deadass.</p>\n<p>qBittorrent marked it &quot;finished&quot; two seconds after adding it with <code>total_downloaded: 0</code>, so nothing actually landed on disk. No idea why. Don&#39;t care. Thanks qBit.</p>\n<p>I blocklisted it in Sonarr, which nukes it from qBittorrent and stops it grabbing the same junk skid malware again.</p>\n<p>Then I downloaded it again on purpose. Because now I&#39;m pissed and I want to know what&#39;s inside.</p>\n<h2 id=\"887-mb-of-nothing\">887 MB of Nothing</h2>\n<p>It&#39;s a real PE, x64 GUI. The actual program is <strong>118 KB</strong>.</p>\n<pre><code>pe end 0x1ce00\noverlay 886653736 bytes</code></pre>\n<p>The other 886 MB is random junk glued onto the end. Why? Because a lot of scanners just give up on files that big.</p>\n<p>The version info says:</p>\n<pre><code>CompanyName Freeware Developers\nFileDescription prepares application data\nOriginalFilename SetupHelper.exe</code></pre>\n<p>&quot;Freeware Developers.&quot; my ass</p>\n<p>I chopped the 118 KB off the front and threw it into IDA, because I&#39;m not loading a gigabyte of bullcrap into anything. Then the entire thing is covered in this:</p>\n<p>c</p>\n<pre><code>dword_14000C020 ^= 0xF2C2EAC0;\nv34 = 0;\ndword_14000C020 ^= 0xF2C2EAC0;</code></pre>\n<p>XOR a global. XOR it back. Do nothing. Hundreds of times.</p>\n<p>It exists purely to make the decompiler output look like shit, and it does, congrats.</p>\n<p>Strip all that out and the logic is like six steps:</p>\n<ol><li>Open its own file.</li><li>Read the last 64 bytes.</li><li>Use those to find and decrypt a payload hidden in the junk.</li><li>Map it as a PE in memory by hand.</li><li>Point <code>PEB-&gt;ImageBaseAddress</code> at it.</li><li>Jump in.</li></ol>\n<p>Nothing touches disk. Adding all that obfuscation for six steps.</p>\n<h2 id=\"footer\">Footer</h2>\n<p>The last 64 bytes of the file are the whole config:</p>\n<div class=\"table-wrap\"><table><thead><tr><th>Offset</th><th>Size</th><th>Description</th></tr></thead><tbody><tr><td>0x00</td><td>32 bytes</td><td>key, XORed with a 32 byte mask in .data</td></tr><tr><td>0x20</td><td>12 bytes</td><td>ChaCha20 nonce</td></tr><tr><td>0x2C</td><td>4 bytes</td><td>payload size ^ fnv1a(mask)</td></tr><tr><td>0x30</td><td>4 bytes</td><td>(flags</td></tr><tr><td>0x34</td><td>8 bytes</td><td>payload size ^ fnv1a(mask)</td></tr><tr><td>0x3C</td><td>4 bytes</td><td>fnv1a(mask)</td></tr></tbody></table></div>\n<p>It&#39;s ChaCha20. They hid the constants by building them out of globals, and they still come out to <code>expand 32-byte k</code>. You can&#39;t hide ChaCha20 from someone who&#39;s seen ChaCha20 before.</p>\n<p><code>flags = 3</code> turns on an anti debug check (<code>PEB-&gt;BeingDebugged</code>, debug port queries, the usual) and an anti sandbox score. Trip either one and it just quietly exits.</p>\n<p>A sandbox sees a normal app open a file and leave.</p>\n<p>Cool. Except the key is literally inside the file. (????) You don&#39;t even need to run it:</p>\n<p>python</p>\n<pre><code>mask = bytes.fromhex(&quot;56951de331cd7f254bf1931533dd82bc3c8bf542f0d1ed5736a40f394c51d0a1&quot;)\nh = fnv1a(mask)\nsize = u64(footer, 0x34) ^ (h | h &lt;&lt; 32)\nfl = h ^ u32(footer, 0x30)\npad = fl &gt;&gt; 8\nkey = xor(mask, footer[:32])\nnonce = footer[32:44]\npayload = chacha20(key, nonce, data[-64 - pad - size : -64 - pad])</code></pre>\n<p>Out pops a second PE. 929 KB, MSVC, C++20, zlib bundled.</p>\n<p>All that anti analysis bullshit but a dozen lines of Python can just strip the obf.</p>\n<h2 id=\"big-surprise-it-s-a-stealer\">Big surprise, It&#39;s a Stealer</h2>\n<p>Strings are encrypted, imports stripped down to the CRT, everything resolved at runtime.</p>\n<p>And then <code>WinMain</code> just dumps every module by name in plain text:</p>\n<pre><code>osinfo\nbrowsers\ntelegram\nwallets\ndiscord\nsteam\nclipboard\nremoteaccess\ncredentialmanager\nauthy\nnotes\nobs\nssh\nemail\ngames\nfilegrabber</code></pre>\n<p>Every other string gets its own function:</p>\n<p>c</p>\n<pre><code>v5 = _mm_xor_ps(v6, v5);\nv7 = { 1924987977, 1270327144, 877876327, 271431577 };\nv8 = { 641333755, -1942364857, ... };\nsub_140080F40(&amp;v5, v7, v8, 0x20);</code></pre>\n<p>Two constants XORed into a key, an IV, ciphertext, length. <code>sub_140080F40</code> is AES with the S-box hidden behind RC4, because one layer of crypto apparently wasn&#39;t edgy enough.</p>\n<p>Tried the standard modes on the first one:</p>\n<pre><code>cbc  b&#39;w\\x1c\\xe9\\xc6\\xa0y\\x96\\xa4...&#39;\nctr  b&#39;guid=\\x00\\x00\\x00...&#39;</code></pre>\n<p>AES-128-CTR. Per string key. 672 call sites.</p>\n<p>I am not doing that by hand.</p>\n<p>So I pulled every call site out of IDA, emulated just the few instructions before each call in Unicorn, grabbed the key, IV and ciphertext out of the registers, and decrypted them in Python. 601 of 672 came out clean.</p>\n<p>The rest are buried in bigger functions but I genuinely COULD NOT care less, 601 was plenty.</p>\n<h2 id=\"it-wants-literally-everything\">It Wants Literally Everything</h2>\n<ul><li><strong>Browsers</strong>: Chrome, Edge, Brave, Opera, Opera GX, Vivaldi, Firefox. Passwords, cookies, autofill, and it has code for Chrome&#39;s new app bound encryption too.</li><li><strong>Crypto wallets</strong>: Exodus, Electrum, Atomic, Guarda, Coinomi, Ledger Live, Trezor Suite, Wasabi, Sparrow, Monero, Zcash, Armory, plus extension wallets.</li><li><strong>Password managers</strong>: KeePass, KeePassXC, Bitwarden, 1Password, NordPass, RoboForm, Windows Credential Manager.</li><li><strong>Accounts</strong>: Telegram, Discord tokens, Steam, Roblox cookies, Minecraft accounts, Authy.</li><li><strong>Dev stuff</strong>: <code>.ssh</code>, <code>.aws</code>, <code>.azure</code>, gcloud, <code>.kube</code>, <code>.docker</code>.</li><li><strong>Remote access</strong>: AnyDesk, TeamViewer, WinSCP, FileZilla, mRemoteNG, RDCMan.</li><li><strong>The rest</strong>: Outlook, Thunderbird, VPN configs, OBS settings, Sticky Notes, and the documents on your desktop.</li></ul>\n<p>It even grabs your <strong>Sticky Notes</strong> for WHAT????</p>\n<p>Everything gets zipped with the bundled zlib and shipped off.</p>\n<h2 id=\"youtube-channel\">YouTube Channel</h2>\n<p>No hardcoded server, instead it decrypts:</p>\n<pre><code>www.youtube.com/channel/UC18vFC1xgebddr_7NsvgBYA\ngist.githubusercontent.com/jasonterra69/48d9e264c05843f0cdc302143b4400c8/raw\n[[\n]]\nZhxchsdfhSGdfgsgdfAJsakdaksdk2364236AH</code></pre>\n<p>A YouTube channel, a GitHub gist, two brackets, and a key that is visibly someone mashing their keyboard.</p>\n<p>The YouTube channel is &quot;bubblegym&quot;. Created September 14, 2026:</p>\n<figure><img src=\"https://wsrv.nl/?url=https://cdn.jsdelivr.net/gh/Thereallo1026/assets@main/assets/bubblegym_yt.png&amp;output=webp\" alt=\"alt\" loading=\"lazy\" decoding=\"async\" referrerpolicy=\"no-referrer\" /></figure>\n<p>Base64 decode it, XOR it with the keyboard smash, and you get the address:</p>\n<p>python</p>\n<pre><code>b = base64.b64decode(&quot;OA0dDQ0HFBQHJyIHEkkQCAlJLS0JTgwAAB8S&quot;)\nk = b&quot;ZhxchsdfhSGdfgsgdfAJsakdaksdk2364236AH&quot;\nbytes(x ^ k[i % len(k)] for i, x in enumerate(b))</code></pre>\n<pre><code>beenetprotect[dot]com/lgz/gdata</code></pre>\n<p>That exact address is <strong>also hardcoded in the binary</strong> as a fallback apparently???</p>\n<p>I guess the whole point of a dead drop is that you can swap servers without the address being in the malware.</p>\n<p>But you put the address in the malware anyway so what&#39;s the point for fetching from Gist and YouTube????</p>\n<h2 id=\"opsec-level-cloudflare-registrar\">Opsec level: Cloudflare Registrar</h2>\n<pre><code>Domain Name: BEENETPROTECT.COM\nCreation Date: 2026-09-14T06:21:54Z\nRegistrar: Cloudflare, Inc.\nName Server: DONALD.NS.CLOUDFLARE.COM\nName Server: JULISSA.NS.CLOUDFLARE.COM</code></pre>\n<p>Registered September 14. Same day as the &quot;gaming channel&quot;. Builds on October 6, torrent up October 8.</p>\n<h2 id=\"psa-for-arr-users\">PSA for *arr users</h2>\n<p>If you run Sonarr or Radarr off public indexers, this WILL hit you. Sonarr can&#39;t run an exe, so it&#39;s not the problem.</p>\n<p>The problem is your roommate, your parent, or 3am you double clicking it in the downloads folder. (do NOT execute execute the skid malware)</p>\n<p>Five minutes of setup:</p>\n<ul><li><strong>qBittorrent</strong>: add <code>*.exe</code>, <code>*.scr</code>, <code>*.lnk</code>, <code>*.bat</code>, <code>*.cmd</code> to &quot;Excluded file names&quot;, tt&#39;ll just refuse to download them.</li><li><strong>Sonarr / Radarr</strong>: blocklist with &quot;Remove from client&quot; when you see one of these.</li><li><strong>Prowlarr</strong>: if a tracker keeps serving this crap, demote it or drop it.</li></ul>\n<p>And to whoever made this: you probably spent weeks or shit ton of tokens on ChaCha20, AES-CTR, runtime API hashing, anti sandbox scoring, Chrome app bound encryption bypasses, just to make a shitty skid malware.</p>\n<p>Get a job.</p>","headings":[{"level":2,"text":"It's an EXE","id":"it-s-an-exe"},{"level":2,"text":"887 MB of Nothing","id":"887-mb-of-nothing"},{"level":2,"text":"Footer","id":"footer"},{"level":2,"text":"Big surprise, It's a Stealer","id":"big-surprise-it-s-a-stealer"},{"level":2,"text":"It Wants Literally Everything","id":"it-wants-literally-everything"},{"level":2,"text":"YouTube Channel","id":"youtube-channel"},{"level":2,"text":"Opsec level: Cloudflare Registrar","id":"opsec-level-cloudflare-registrar"},{"level":2,"text":"PSA for *arr users","id":"psa-for-arr-users"}]}}