Analysis Date: June 2026Target: EXM-2.1.1-installer.exe (NSIS installer, 147 MB)Vendor: EXM TWEAKS, s.r.o. (Bratislava, Slovakia)Certificate: DigiCert SHA2 High Assurance Code Signing CA (valid)Scope:
Analysis Date: June 2026
Target:EXM-2.1.1-installer.exe(NSIS installer, 147 MB)
Vendor: EXM TWEAKS, s.r.o. (Bratislava, Slovakia)
Certificate: DigiCert SHA2 High Assurance Code Signing CA (valid)
Scope: Full static analysis of the installer, Electron app, embedded binaries, encrypted/obfuscated JS, kernel drivers, API backend, and Windows service.
⚠️ PRIVACY NOTICE: This repository contains a reverse engineering analysis of the EXM Tweaks application. Specific API endpoints, private domains, authentication keys, internal infrastructure URLs (including AWS ALB, S3 buckets, staging/test servers), and other proprietary backend details discovered during analysis have been redacted or removed for privacy and security reasons. The original extracted application source files containing plaintext endpoints have been deleted from the repository. The analysis findings and methodology are preserved without exposing the vendor's live backend infrastructure.
EXM Tweaks v2.1.1 is a commercial Windows PC optimization and gaming performance tool built as an Electron v22.19.0 desktop application with a React + Vite + Tailwind CSS frontend. It is digitally signed by a Slovak company (EXM TWEAKS, s.r.o.) with a valid DigiCert code signing certificate.
Risk Rating: MODERATE — The software is not malware, but exhibits concerning behaviors:
Aggressive anti-piracy/anti-debugging measures (background watchdog service)
Remote kill switch capability (vendor can remotely brick installations)
Unsigned kernel-mode USB driver (HIDUSBF) — BSOD risk
Runs tweaks as SYSTEM via NSudoLC
Full PostHog telemetry with hardware fingerprinting
All JS code heavily obfuscated (javascript-obfuscator + custom RC4 string encoding)
AES-256-CBC encrypted local configuration storage
Recommended for: Gaming use cases where vendor trust is accepted.
Not recommended for: Enterprise, security-sensitive, or regulatory environments.
Property | Value |
|---|---|
Filename | EXM-2.1.1-installer.exe |
Size | 147 MB (154,349,568 bytes) |
Type | NSIS (Nullsoft Scriptable Install System) Unicode |
Signature | DigiCert SHA2 High Assurance Code Signing CA |
Signer | EXM TWEAKS, s.r.o. (IČO: 56 964 611, Bratislava, SK) |
Signed | January 2026 |
The NSIS installer was extracted using 7-Zip, yielding 1,443 files across the following structure:
EXM_app/
├── EXM.exe # Electron main executable (193 MB)
├── chrome_100_percent.pak # Chromium resources
├── chrome_200_percent.pak
├── d3dcompiler_47.dll # Microsoft Direct3D HLSL Compiler
├── ffmpeg.dll # (file present, version info empty)
├── icudtl.dat # ICU Unicode data
├── libEGL.dll # ANGLE GL-EGL wrapper (v2.1.25161)
├── libGLESv2.dll # ANGLE GLESv2 implementation (v2.1.25161)
├── LICENSES.chromium.html
├── resources/
│ ├── app.asar # Electron application bundle (163 MB)
│ └── app.asar.unpacked/ # Unpacked native resources
│ ├── node_modules/ # Node.js dependencies
│ ├── resources/ # Bundled third-party binaries
│ └── windows-service/ # Background service source
├── resources.pak
├── snapshot_blob.bin # V8 snapshot
├── v8_context_snapshot.bin
├── vk_swiftshader.dll # SwiftShader Vulkan (v5.0.0)
├── vulkan-1.dll # Vulkan Loader (v1.4.311.0)
└── node.dll # Node.js runtime library
The app was built with electron-builder (detected from app.asar.unpacked structure and electron-updater dependency). The embedded Node.js runtime (v18.18.2) occupies 71 MB within the app.asar.unpacked/node_modules directory.
Layer | Technology |
|---|---|
Shell | Electron v22.19.0 |
Runtime | Node.js v18.18.2 (bundled) |
Frontend | React 18+ with TypeScript |
Bundler | Vite |
Styling | Tailwind CSS + tw-animate-css |
State | Zustand v5 |
Routing | React Router v7 |
Forms | React Hook Form + Zod |
Auth | OAuth (Google, Discord, Facebook) + custom JWT |
Analytics | PostHog v1.293 (JS) + v5.14 (Node) |
Updates | electron-updater v6 (S3-hosted releases) |
UI | HeroUI, Radix UI primitives |
Service | node-windows + WinSW v1.17.0 |
Renderer Process (Vite/React)
↓ IPC (contextBridge)
Preload Script (out/preload/preload.js)
↓ IPC (ipcRenderer.invoke/send)
Main Process (out/main/main.js)
↓ IPC
Background Service (EXMantitamperingservice.exe)
└─ monitor.js — Watchdog process scanning
└─ security.js — Encryption + HW fingerprinting
└─ config.js — Config management
└─ httpServer.js — Local API (port 5000)
└─ reporter.js — Telemetry reporter
└─ installer.js — Service installer
└─ revertManager.js — Tweak rollback
└─ uninstallDetector.js
Page/Component | Bundle Size | Description |
|---|---|---|
| 35 KB | Main dashboard |
| 49 KB | Gaming optimization settings |
| 64 KB | Windows debloating tools |
| 31 KB | Hardware information |
| 1.4 KB | Advanced tweaks |
| 20 KB | Backup management |
| 13 KB | Application settings |
| 8.5 KB | Subscription/pricing page |
| 42 KB | First-run wizard |
| 79 KB | Welcome/landing screen |
| 3.9 KB | OAuth redirect handler |
| 13 KB | General system settings |
| 9.7 KB | Quick system fixes |
| 7.6 KB | Hardware tweaks |
| 6.9 KB | Auto-detection UI |
| 379 KB | PostHog analytics library |
| 1.1 MB | Main app bundle (includes all routes) |
| 14 KB | HWID collection module |
index.html)default-src 'self' res:;
connect-src 'self' res:
http://localhost:5000
http://localhost:5001
http://localhost:8000
http://eda2-alb-XXXXXXXXX.eu-north-X.elb.amazonaws.com (redacted for privacy)
https://eda2-alb-XXXXXXXXX.eu-north-X.elb.amazonaws.com (redacted for privacy)
https://test.XXXXXXX.com (redacted for privacy)
https://XXXXXXX.com (redacted for privacy)
https://ai.XXXXXXX.com (redacted for privacy)
https://XXXXXXXXX.com (redacted for privacy)
https://XXXXXXX.fancystudio.sk (redacted for privacy)
https://*.i.posthog.com
https://XXXXXXX.s3.eu-north-X.amazonaws.com (redacted for privacy);
script-src 'self';
style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;
font-src 'self' https://fonts.gstatic.com;
img-src 'self' data: res:
http://localhost:5000
https://cdn.discordapp.com
https://lh3.googleusercontent.com
https://graph.facebook.com
https://platform-lookaside.fbsbx.com;
Notable: An AWS ALB endpoint is present (eda2-alb-XXXXXXXXX.eu-north-X.elb.amazonaws.com — redacted for privacy) — likely the production API gateway. CSP allows images from Discord and social platforms (auth avatars). No unsafe-eval in script-src (good).
Property | Value |
|---|---|
Executable |
|
Publisher | Wagnardsoft |
Purpose | Custom NVIDIA driver installation (strips telemetry/NVIDIA Experience) |
Risk | Low — legitimate tool, run with admin privileges |
Property | Value |
|---|---|
Executable |
|
Publisher | Orbmu2k |
Purpose | Modify hidden NVIDIA GPU driver profile settings |
Risk | Low — legitimate tool |
Profiles | 6 |
Property | Value |
|---|---|
Executable |
|
Companion |
|
Publisher | HIDUSBF (community USB overclocking project) |
Purpose | Modifies USB polling rate on HID-compliant mice (1kHz–8kHz) |
Risk | HIGH — unsigned kernel driver, ring 0 access, BSOD potential |
Property | Value |
|---|---|
Executable |
|
Publisher | NirSoft |
Purpose | Device manager alternative (command-line device enumeration/management) |
Risk | Low — legitimate NirSoft tool |
Property | Value |
|---|---|
Executable |
|
Publisher | M2Team |
Purpose | Run processes as SYSTEM (highest Windows privilege level) |
Risk | HIGH — used to elevate tweaks beyond Administrator |
Property | Value |
|---|---|
Executable |
|
Publisher | WinSW (Windows Service Wrapper) |
Purpose | Runs the Node.js background service as a Windows service |
Risk | Low — legitimate wrapper |
Property | Value |
|---|---|
Location |
|
Size | 71 MB (entire |
Purpose | Embedded Node.js runtime for background Windows service |
Risk | Low — official Node.js build |
From package.json:
{
"name": "exm",
"version": "2.1.1",
"main": "out/main/main.js",
"dependencies": {
"@0biwank/gethwid": "^1.0.3",
"@electron-toolkit/preload": "^3.0.2",
"@electron-toolkit/utils": "^4.0.0",
"@heroui/slider": "^2.4.21",
"@heroui/system": "^2.4.20",
"@heroui/theme": "^2.4.20",
"@hookform/resolvers": "^5.1.1",
"@posthog/react": "^1.4.0",
"@radix-ui/react-*": "^1.x",
"axios": "^1.6.0",
"bytenode": "^1.5.7",
"electron-log": "^5.4.3",
"electron-store": "^11.0.2",
"electron-updater": "^6.6.2",
"lucide-react": "^0.511.0",
"next-themes": "^0.4.6",
"node-machine-id": "^1.1.12",
"node-windows": "^1.0.0-beta.8",
"posthog-js": "^1.293.0",
"posthog-node": "^5.14.0",
"react-router-dom": "^7.7.0",
"remark-gfm": "^4.0.1",
"sonner": "^2.0.5",
"sudo-prompt": "^9.2.1",
"uuid": "^13.0.0",
"zod": "^3.25.67",
"zustand": "^5.0.6"
}
}
Package | Purpose | Risk |
|---|---|---|
| Hardware ID generation | Low — HWID for licensing |
| Compile JS to V8 bytecode | Medium — can hide code |
| Machine fingerprint | Low — HWID component |
| Windows service management | Medium — service manipulation |
| Full-session analytics | Medium — extensive telemetry |
| Elevate processes | Medium — admin escalation |
| Auto-update (S3-hosted) | Low — standard update mechanism |
All application JS files (main process, renderer, Windows service) are obfuscated using javascript-obfuscator with a multi-layered encoding scheme:
Obfuscation Layers:
Control Flow Flattening — Linear code converted to state-machine loops with switch/case dispatchers
String Concealing — All string literals replaced with indexed lookups into encoded arrays
Custom Base64 + RC4 Encoding — Strings are base64-encoded then RC4-encrypted with rotating context keys
Dead Code Injection — Randomized unreachable branches with opaque predicates (while(!![]), parseInt checks)
Identifier Renaming — _0xXXXX pattern for all variables and function names
Context-Key Rotation — Each file has unique RC4 keys that rotate per string lookup
Decoder function pattern (present in every obfuscated file):
function _0xXXXX(_0xYYYY, _0xZZZZ) {
// Custom base64 alphabet: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/="
// Decodes base64 → RC4-decrypts with rotating key derived from context
}
Deobfuscation was achieved by:
Extracting the encoded string arrays
Identifying the RC4 decryption keys embedded as context variables
Running the native decoder function against all encoded indexes
Reassembling the plaintext source
Algorithm: AES-256-CBC + HMAC-SHA256
Config stored at %ProgramData%\EXM\config.json
Encrypted with AES-256-CBC using a derived key
Integrity verified with HMAC-SHA256
Key material generated from machine-specific entropy
Key management:
%ProgramData%\EXM\security\hmac.key — HMAC verification key
%ProgramData%\EXM\security\key_version.txt — Key version tracking
CURRENT_VERSION = "2025-12-01" — Embedded version string
The preload script exposes secureStorage API via contextBridge:
secureStorage: {
isEncryptionAvailable: () => { /* checks Electron safeStorage */ },
encryptString: (str) => { /* uses safeStorage.encryptString() → base64 */ },
decryptString: (encoded) => { /* base64 → safeStorage.decryptString() */ }
}
Endpoint | Protocol | Purpose | Authentication |
|---|---|---|---|
| HTTPS | Main backend API | JWT token |
| HTTPS | Remote kill switch | None (public) |
| HTTPS | Tweak execution scripts | JWT token |
| HTTPS | User authentication | OAuth/JWT |
| HTTPS | AI chatbot | API key |
| HTTPS | Analytics telemetry | PostHog key |
| HTTPS | Auto-updates | None (public S3) |
| HTTPS | AWS ALB endpoint | JWT token |
| HTTPS | Test/staging API | — |
| HTTPS | Test/staging API | — |
| HTTP | Local service API | None (loopback) |
| HTTP | Local service API | None (loopback) |
| HTTP | Local revert queue API | None (loopback) |
| HTTP | Local service API | None (loopback) |
Google OAuth: https://lh3.googleusercontent.com (avatar)
Discord OAuth: https://cdn.discordapp.com (avatar)
Facebook OAuth: https://graph.facebook.com, https://platform-lookaside.fbsbx.com (avatar)
OAuth flow creates a child BrowserWindow for the external auth provider, then captures the callback via IPC (onOAuthCallback, onAuthCallback).
Endpoint: https://[redacted]/api/XXXX
Hardcoded API Key: bytehintXXXXXXXXXXXXXXXX (redacted for privacy)
Purpose: Provides an AI assistant within the app (likely for support/guidance)
Endpoint: GET https://[redacted]/api/vX/killXXXXXX/check
When triggered, the service:
Receives a kill signal from the API
Stops and deletes the Windows service (EXMantitamperingservice)
Creates a cleanup batch script
Deletes its own installation directory
Reverts all applied tweaks
This gives the vendor full remote control to brick the application on any machine.
Endpoint: https://us.i.posthog.com
PostHog is configured with:
posthog-js v1.293 (37 KB, browser/renderer)
posthog-node v5.14 (Node.js service)
@posthog/react v1.4 — React integration hooks
Telemetry scope (standard PostHog capabilities):
Page views and navigation
Feature usage and clicks
System information (OS, hardware)
Session recordings
Error tracking
Custom events (tweak application, backup creation)
The CSP whitelist *.i.posthog.com enables PostHog's event ingestion infrastructure.
Property | Value |
|---|---|
Service Name |
|
Runnable |
|
Runtime | Node.js v18.18.2 (embedded) |
Source | 12 JS files (all obfuscated) at |
Total Size | ~225 KB (source) |
Installation | Via |
File | Size | Purpose |
|---|---|---|
| 25 KB | Main service entry point |
| 18 KB | Watchdog — scans for dangerous processes |
| 20 KB | Encryption, HW fingerprinting, key management |
| 9 KB | Config read/write (encrypted) |
| 11 KB | AES-256-CBC + HMAC utilities |
| 13 KB | Local Express HTTP server on port 5000 |
| 23 KB | Telemetry reporter |
| 40 KB | Service installer |
| 18 KB | Service uninstaller |
| 22 KB | Detects EXM app uninstallation |
| 18 KB | Tweak rollback management |
| 13 KB | Executes revert operations |
| 21 KB | File integrity verification |
| 20 KB | Health check endpoint |
| 12 KB | HTTPS client with cert validation |
The service continuously monitors running processes. If any of the following are detected, the service may take protective action (alerts vendor / stops tweaks):
Detected Process Categories:
Category | Tools |
|---|---|
Debuggers |
|
Disassemblers |
|
Memory Scanners |
|
Network Monitors |
|
Process Analysis |
|
DLL/Code Analysis |
|
Packet manipulation |
|
Behavioral Analysis |
|
Cheating tools |
|
Modding tools |
|
Debug/Trace tools |
|
Registry monitors |
|
Anti-debug bypass tools |
|
The service collects a machine fingerprint using multiple sources:
WMI commands — Windows Management Instrumentation (motherboard serial, CPU, disk, BIOS)
@0biwank/gethwid — Third-party HWID library
node-machine-id — Machine GUID
CPU serial — Direct WMI query
OS Info — via os module (hostname, platform, release, total memory, CPU cores)
The fingerprint is used for:
License binding (prevents sharing accounts)
Telemetry enrichment
Possibly kill switch identification
Runs an Express server on port 5000 providing:
Endpoint | Method | Purpose |
|---|---|---|
| GET | Health check |
| GET | Read encrypted config |
| POST | Write encrypted config |
| GET | Service status |
| POST | Trigger tweak revert |
| POST | Apply tweak |
Custom routes | — | As defined by the main process |
Also connects to port 5002 for the revert queue:
http://localhost:5002/api/revert-queue/add
http://localhost:5002/api/revert-queue/remove/${id}
installer.js:
1. Ensure Node.js runtime exists (download from nodejs.org if missing)
2. Check required npm modules (node-windows)
3. Create service with WinSW wrapper
4. Configure service to start automatically
5. Install to Windows Service Control Manager
6. Start the service
uninstaller.js:
1. Stop the service
2. Remove from SCM
3. Clean up service files
4. (If kill switch) Revert all tweaks, delete installation directory
HIDUSBF is a community-developed kernel-mode driver that modifies the USB polling rate for HID-compliant mice. It operates at ring 0 (kernel mode).
Directory | Architecture | Variant | File Size |
|---|---|---|---|
| x64 | 1000 Hz polling | 25,288 B |
| x64 | 2000–4000 Hz | 25,288 B |
| x64 | 4000–8000 Hz | 25,288 B |
| x64 | No patch (fallback) | 23,368 B |
| x86 | 1000 Hz | 23,368 B |
| x86 | 2000–4000 Hz | 23,496 B |
| x86 | 4000–8000 Hz | 23,496 B |
| x86 | No patch (fallback) | 21,216 B |
| x64 | Alternative signing variant | 20,464–20,688 B |
| x86 | Alternative signing variant | — |
| Legacy | Windows 98/ME variant | — |
Total: 15 .sys driver variants for different architectures and polling rates.
Property | Value |
|---|---|
Imports |
|
No imports |
|
String content | Only DigiCert code signing certificate chains (CRL URLs) |
No network code | All "http" strings are certificate-related (CRL, OCSP, CPS) |
No C2 strings | No URLs, domains, IPs, or socket-related strings |
No suspicious exports | Clean driver export table |
Setup.exe runs as Administrator
Creates a system restore point
Installs the .sys driver for the target polling frequency
Registers with Windows USB HID stack
System reboot required for activation
Risk | Description |
|---|---|
Stability | Unsigned kernel drivers can cause BSOD (Blue Screen of Death) on incompatible hardware or Windows updates |
Security | Ring 0 access means a crash or vulnerability in the driver compromises the entire OS |
Windows Update | Signed driver requirement in Windows 11 may prevent installation |
Secure Boot | May conflict with Secure Boot / HVCI (Hypervisor-protected Code Integrity) |
Integrity | Driver is from community project HIDUSBF, not Microsoft WHQL-signed |
Finding | Severity | Impact | Likelihood |
|---|---|---|---|
Kill Switch (remote brick capability) | CRITICAL | Complete loss of application | Low (requires vendor action) |
Unsigned Kernel Driver (HIDUSBF) | HIGH | BSOD, system instability | Medium |
NSudoLC (SYSTEM escalation) | HIGH | Privilege escalation | Certain |
Full Telemetry (PostHog) | MEDIUM | Privacy, data collection | Certain |
AES-256 Config (local encryption) | MEDIUM | Config security | Low |
Heavy Obfuscation | LOW | Code transparency | Certain |
Background Service | MEDIUM | Persistent system access | Certain |
Uninstall Detection | LOW | Persistence after uninstall | Low |
Hardware Fingerprinting | MEDIUM | User tracking, license locking | Certain |
Auto-Update (S3 hosted) | LOW | Supply chain risk | Low |
EXM Application
├── Renderer Process
│ ├── [redacted]/api/v1/* — Main API
│ ├── [redacted]/api/* — Auth API
│ ├── [redacted]/api/XXXX — AI Chatbot
│ ├── us.i.posthog.com/* — PostHog Analytics
│ └── [redacted].s3.eu-north-X... — Updates
│
├── Main Process (Node.js)
│ ├── [redacted]/api/v1/* — Main API
│ ├── [redacted]/api/vX/scripts/* — Script execution
│ └── localhost:5000 — Local service
│
├── Background Service
│ ├── [redacted]/api/vX/killXXXXXX — Kill switch
│ ├── [redacted]/api/v1/* — Main API
│ └── us.i.posthog.com/* — Telemetry
During analysis, the following potential suspicions were confirmed as benign:
"MZ" headers in PNG files — False positives; these are coincidental byte patterns in icon resources. No valid PE structures exist in any PNG file.
"http" strings in .sys drivers — All are DigiCert code signing certificate chain data (CRL, OCSP, CPS URLs), not network communication code.
Embedded PEs in resource files — All Chromium resource files (.pak, .dat, .bin) were verified as standard format with no embedded executables.
RC4 encryption — Used for string concealment in obfuscation, not for data exfiltration.
What the vendor (EXM TWEAKS, s.r.o.) can do post-installation:
Remotely brick the app — Via kill switch endpoint (can target specific HWIDs)
Collect telemetry — Full PostHog analytics on all user interactions
Push arbitrary updates — Via S3-hosted electron-updater releases
Identify users — Via machine fingerprinting + OAuth accounts
Execute SYSTEM-privilege code — Via NSudoLC for tweaks
Monitor user activity — Via the background watchdog service
Category | Tweaks |
|---|---|
CPU | Power plan optimization, CPU priority adjustments, core parking disable |
GPU | NVIDIA driver clean install, profile inspector settings (via bundled tools) |
RAM | Memory management tweaks, page file optimization |
Disk | Drive optimization, NTFS tweaks |
Network | TCP/IP optimization, DNS settings, MTU adjustments |
USB | Mouse polling rate modification (via HIDUSBF kernel driver) |
Windows | Debloating (remove Cortana, telemetry, OneDrive, Xbox features, etc.) |
Services | Disable unnecessary Windows services |
Power | High-performance power scheme, USB selective suspend disable |
Visual | Visual effects adjustments, transparency disable |
Module | Description |
|---|---|
HomePage | Dashboard with system status, performance score, quick actions |
GameMode | Gaming optimization with one-click apply |
Debloat | Windows bloatware removal tool |
Backups | System restore point and tweak backup/restore |
Hardware | Hardware information display |
Smart Detection | Auto-detects system configuration and recommends tweaks |
AI Chatbot | AI-powered assistant for tweak recommendations |
Onboarding | First-run wizard for new users |
Settings | Application preferences, theme, account management |
Pricing | Subscription plans (likely paid-only features) |
The background service:
Detects debuggers, disassemblers, memory scanners, network monitors
Detects process analysis tools (Process Hacker, Process Explorer)
Detects DLL injectors and code analysis tools
Detects packet analyzers (Wireshark, Fiddler, mitmproxy)
Detects cheat engines and game modification tools
Reports detected tools to vendor via telemetry
Uninstalls itself if the EXM app is deleted (uninstallDetector.js)
Path | Purpose |
|---|---|
| AES-256-CBC encrypted configuration |
| HMAC verification key |
| Encryption key version |
| Default installation directory |
| Start menu shortcuts |
(Expected, based on NSIS installer patterns)
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\EXM Tweaks — Uninstall entry
HKLM\SYSTEM\CurrentControlSet\Services\EXMantitamperingservice — Service registration
Service start type: Automatic
Service Name: EXMantitamperingservice
Display Name: EXM Anti-Tampering Service
Binary: C:\Program Files\EXM Tweaks\windows-service\src\daemon\exmantitamperingservice.exe
Working Directory: C:\Program Files\EXM Tweaks\windows-service\
Account: LocalSystem (default for WinSW)
Dependencies: None
DNS lookups: [redacted-main-api], [redacted-auth-domain], [redacted-ai-domain], us.i.posthog.com, [redacted].s3.eu-north-X.amazonaws.com, eda2-alb-XXXXXXXXX.eu-north-X.elb.amazonaws.com
Local ports: 5000, 5001, 5002, 8000 (Express HTTP servers)
TLS: All external communication uses HTTPS
File | SHA-256 |
|---|---|
EXM-2.1.1-installer.exe | (not computed; see original file) |
EXM.exe | (not computed; see original file) |
DigiCert High Assurance EV Root CA
└── DigiCert SHA2 High Assurance Code Signing CA
└── EXM TWEAKS, s.r.o. (valid through ~2028)
Tool | Purpose |
|---|---|
7-Zip 24.x | NSIS installer extraction, ASAR archive extraction |
strings (Sysinternals) | Binary string extraction |
PE format analysis | DLL and EXE structure verification |
JavaScript AST analysis | Obfuscation reversal |
Node.js REPL | RC4 decoder execution |
PowerShell | System analysis, file scanning |
Windows Sysinternals | Process and binary verification |
Static Analysis — Binary examination without execution
Installer Extraction — 7-Zip decompression of NSIS archive
ASAR Extraction — Electron app archive unpacking
Code Analysis — Manual and automated JS deobfuscation
Network Mapping — All URLs extracted from JS and CSP headers
Binary Verification — PE header validation, digital signature checking
DLL/Driver Analysis — Import table, string extraction, certificate verification
Resource Validation — Confirmed no embedded payloads in resource files
The application uses electron-updater v6.6.2 configured with:
Provider: S3
Bucket: [redacted].s3.eu-north-X.amazonaws.com
Path: [redacted]
Format: .exe NSIS installers (as per build configuration)
The obfuscation scheme uses a rotating two-key system per file. Each JavaScript file contains:
Two encoded string arrays (generated from _0x1218() in monitor.js)
A custom base64 decoder (function _0x4636 / function _0x3836)
Context keys that rotate the RC4 cipher
The RC4 implementation uses a standard 256-byte key scheduling algorithm (KSA) with the context variable as the encryption key. String access follows the pattern:
_0x3836(0x191,'FVRU') // Returns decoded string at index 0x191 using key context 'FVRU'
Disclaimer: This analysis is for educational and research purposes only. The software was analyzed without execution in a controlled environment. Findings represent a snapshot of version 2.1.1 and may differ in other versions. No claim is made regarding the legality or safety of using this software. Use at your own risk.