EXM Tweaks v2.1.1 — Full Reverse Engineering Analysis

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.


Table of Contents

  1. Executive Summary

  2. Installer Analysis

  3. Application Architecture

  4. Bundled Third-Party Executables

  5. Package Dependencies

  6. Obfuscation & Encryption

  7. API Endpoints & Network Communication

  8. Background Windows Service (exmantitamperingservice)

  9. Kernel Driver Analysis (HIDUSBF)

  10. Security Assessment

  11. Feature Inventory

  12. Digital Forensics Artifacts

  13. Appendices


1. Executive Summary

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.


2. Installer Analysis

2.1 File Identification

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

2.2 Extraction

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

2.3 Build Artifacts

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.


3. Application Architecture

3.1 Tech Stack

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

3.2 Electron Process Structure

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

3.3 Frontend Pages & Components

Page/Component

Bundle Size

Description

HomePage

35 KB

Main dashboard

GameModePage

49 KB

Gaming optimization settings

DebloatPage

64 KB

Windows debloating tools

HardwarePage

31 KB

Hardware information

AdvancedPage

1.4 KB

Advanced tweaks

BackupsPage

20 KB

Backup management

SettingsPage

13 KB

Application settings

Pricing

8.5 KB

Subscription/pricing page

Onboarding

42 KB

First-run wizard

Welcome

79 KB

Welcome/landing screen

OAuthCallback

3.9 KB

OAuth redirect handler

GeneralPage

13 KB

General system settings

GeneralFixesPage

9.7 KB

Quick system fixes

GeneralHardwarePage

7.6 KB

Hardware tweaks

SmartSystemDetectionPage

6.9 KB

Auto-detection UI

Posthog

379 KB

PostHog analytics library

index-CfPnGu65.js

1.1 MB

Main app bundle (includes all routes)

hardwareFingerprint

14 KB

HWID collection module

3.4 Content Security Policy (from 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).


4. Bundled Third-Party Executables

4.1 NVCleanInstall v1.19.0

Property

Value

Executable

resources/nvidiaDrivers/NVCleanInstall.exe

Publisher

Wagnardsoft

Purpose

Custom NVIDIA driver installation (strips telemetry/NVIDIA Experience)

Risk

Low — legitimate tool, run with admin privileges

4.2 NVIDIA Profile Inspector v2.4.0.27

Property

Value

Executable

resources/nvidiaProfileInspector/nvidiaProfileInspector.exe

Publisher

Orbmu2k

Purpose

Modify hidden NVIDIA GPU driver profile settings

Risk

Low — legitimate tool

Profiles

6 .nip files in resources/nvidiaProfiles/ (XML-based, clean)

4.3 HIDUSBF v1.3.0 (Kernel Driver)

Property

Value

Executable

resources/DRIVER/Setup.exe

Companion

sx64.exe v1.3.0 (driver installer helper)

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

4.4 DevManView v1.80

Property

Value

Executable

resources/DevManView/DevManView.exe

Publisher

NirSoft

Purpose

Device manager alternative (command-line device enumeration/management)

Risk

Low — legitimate NirSoft tool

4.5 NSudoLC v9.0.2676

Property

Value

Executable

resources/NSudoLC.exe

Publisher

M2Team

Purpose

Run processes as SYSTEM (highest Windows privilege level)

Risk

HIGH — used to elevate tweaks beyond Administrator

4.6 WinSW v1.17.0 (Service Wrapper)

Property

Value

Executable

windows-service/src/daemon/exmantitamperingservice.exe

Publisher

WinSW (Windows Service Wrapper)

Purpose

Runs the Node.js background service as a Windows service

Risk

Low — legitimate wrapper

4.7 Node.js v18.18.2

Property

Value

Location

app.asar.unpacked/resources/node-runtime/node.exe

Size

71 MB (entire node_modules directory)

Purpose

Embedded Node.js runtime for background Windows service

Risk

Low — official Node.js build


5. Package Dependencies

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"
  }
}

Notable Dependencies

Package

Purpose

Risk

@0biwank/gethwid

Hardware ID generation

Low — HWID for licensing

bytenode

Compile JS to V8 bytecode

Medium — can hide code

node-machine-id

Machine fingerprint

Low — HWID component

node-windows

Windows service management

Medium — service manipulation

posthog-js / posthog-node

Full-session analytics

Medium — extensive telemetry

sudo-prompt

Elevate processes

Medium — admin escalation

electron-updater

Auto-update (S3-hosted)

Low — standard update mechanism


6. Obfuscation & Encryption

6.1 JavaScript Obfuscation

All application JS files (main process, renderer, Windows service) are obfuscated using javascript-obfuscator with a multi-layered encoding scheme:

Obfuscation Layers:

  1. Control Flow Flattening — Linear code converted to state-machine loops with switch/case dispatchers

  2. String Concealing — All string literals replaced with indexed lookups into encoded arrays

  3. Custom Base64 + RC4 Encoding — Strings are base64-encoded then RC4-encrypted with rotating context keys

  4. Dead Code Injection — Randomized unreachable branches with opaque predicates (while(!![]), parseInt checks)

  5. Identifier Renaming_0xXXXX pattern for all variables and function names

  6. 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:

  1. Extracting the encoded string arrays

  2. Identifying the RC4 decryption keys embedded as context variables

  3. Running the native decoder function against all encoded indexes

  4. Reassembling the plaintext source

6.2 Configuration Encryption

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

6.3 Electron safeStorage

The preload script exposes secureStorage API via contextBridge:

secureStorage: {
    isEncryptionAvailable: () => { /* checks Electron safeStorage */ },
    encryptString: (str) => { /* uses safeStorage.encryptString() → base64 */ },
    decryptString: (encoded) => { /* base64 → safeStorage.decryptString() */ }
}

7. API Endpoints & Network Communication

7.1 Complete Endpoint Map

Endpoint

Protocol

Purpose

Authentication

[redacted]/api/v1/*

HTTPS

Main backend API

JWT token

[redacted]/api/vX/killXXXXXX/check

HTTPS

Remote kill switch

None (public)

[redacted]/api/vX/scripts/*

HTTPS

Tweak execution scripts

JWT token

[redacted]/api/*

HTTPS

User authentication

OAuth/JWT

[redacted]/api/XXXX

HTTPS

AI chatbot

API key

us.i.posthog.com/*

HTTPS

Analytics telemetry

PostHog key

[redacted].s3.eu-north-X.amazonaws.com/XXXXXXXX/XXXXXX/

HTTPS

Auto-updates

None (public S3)

eda2-alb-XXXXXXXXX.eu-north-X.elb.amazonaws.com

HTTPS

AWS ALB endpoint

JWT token

[redacted]

HTTPS

Test/staging API

[redacted].fancystudio.sk

HTTPS

Test/staging API

localhost:5000

HTTP

Local service API

None (loopback)

localhost:5001

HTTP

Local service API

None (loopback)

localhost:5002

HTTP

Local revert queue API

None (loopback)

localhost:8000

HTTP

Local service API

None (loopback)

7.2 Authentication Endpoints (from preload.js)

  • 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).

7.3 AI Chatbot

  • Endpoint: https://[redacted]/api/XXXX

  • Hardcoded API Key: bytehintXXXXXXXXXXXXXXXX (redacted for privacy)

  • Purpose: Provides an AI assistant within the app (likely for support/guidance)

7.4 Kill Switch Mechanism

Endpoint: GET https://[redacted]/api/vX/killXXXXXX/check

When triggered, the service:

  1. Receives a kill signal from the API

  2. Stops and deletes the Windows service (EXMantitamperingservice)

  3. Creates a cleanup batch script

  4. Deletes its own installation directory

  5. Reverts all applied tweaks

This gives the vendor full remote control to brick the application on any machine.

7.5 Telemetry (PostHog)

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.


8. Background Windows Service (exmantitamperingservice)

8.1 Overview

Property

Value

Service Name

EXMantitamperingservice

Runnable

exmantitamperingservice.exe (WinSW v1.17.0 wrapper)

Runtime

Node.js v18.18.2 (embedded)

Source

12 JS files (all obfuscated) at windows-service/src/

Total Size

~225 KB (source)

Installation

Via installer.js (runs as SYSTEM)

8.2 File Inventory

File

Size

Purpose

service.js

25 KB

Main service entry point

monitor.js

18 KB

Watchdog — scans for dangerous processes

security.js

20 KB

Encryption, HW fingerprinting, key management

config.js

9 KB

Config read/write (encrypted)

encryption.js

11 KB

AES-256-CBC + HMAC utilities

httpServer.js

13 KB

Local Express HTTP server on port 5000

reporter.js

23 KB

Telemetry reporter

installer.js

40 KB

Service installer

uninstaller.js

18 KB

Service uninstaller

uninstallDetector.js

22 KB

Detects EXM app uninstallation

revertManager.js

18 KB

Tweak rollback management

executeReverts.js

13 KB

Executes revert operations

integrity.js

21 KB

File integrity verification

healthCheck.js

20 KB

Health check endpoint

secureClient.js

12 KB

HTTPS client with cert validation

8.3 Monitor.js — Dangerous Processes Detection

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

x64dbg.exe, x32dbg.exe, x96dbg.exe, windbg.exe, ollydbg.exe, ollyice.exe

Disassemblers

ida.exe, ida64.exe, idaq.exe, idaq64.exe

Memory Scanners

cheatengine-x86_64.exe, cheatengine-x86_64.exe, cheatengine-i386.exe

Network Monitors

wireshark.exe, rawshark.exe, tshark.exe

Process Analysis

processhacker.exe, procexp.exe, procexp64.exe, procexp64.exe, procmon.exe, procmon64.exe

DLL/Code Analysis

scylla.exe, scylla_x64.exe, scylla_x86.exe, hollows_hunter.exe

Packet manipulation

mitmproxy.exe, fiddler.exe, charles.exe

Behavioral Analysis

cuckoo.exe, capesandbox.exe

Cheating tools

hopper.exe, cheatengine-x86_64.exe, artmoney.exe, tsearch.exe

Modding tools

modengine.exe, universalunrealengine4unlocker.exe

Debug/Trace tools

apimonitor.exe, deviare.exe, rodbat.exe, pwnat.exe, lordpe.exe, importrec.exe

Registry monitors

regmon.exe

Anti-debug bypass tools

scylla_hide.exe, extreme_injector.exe, process_hollowing.exe, api_monitor.exe

8.4 Security.js — Hardware Fingerprinting

The service collects a machine fingerprint using multiple sources:

  1. WMI commands — Windows Management Instrumentation (motherboard serial, CPU, disk, BIOS)

  2. @0biwank/gethwid — Third-party HWID library

  3. node-machine-id — Machine GUID

  4. CPU serial — Direct WMI query

  5. 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

8.5 HttpServer.js — Local API

Runs an Express server on port 5000 providing:

Endpoint

Method

Purpose

/api/health

GET

Health check

/api/config

GET

Read encrypted config

/api/config

POST

Write encrypted config

/api/status

GET

Service status

/api/revert

POST

Trigger tweak revert

/api/apply

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}

8.6 Service Installation Flow

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

9. Kernel Driver Analysis (HIDUSBF)

9.1 Architecture

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).

9.2 Driver Variants

Directory

Architecture

Variant

File Size

DRIVER/AMD64/1khz/

x64

1000 Hz polling

25,288 B

DRIVER/AMD64/2khz-4khz/

x64

2000–4000 Hz

25,288 B

DRIVER/AMD64/4khz-8khz/

x64

4000–8000 Hz

25,288 B

DRIVER/AMD64/nopatch/

x64

No patch (fallback)

23,368 B

DRIVER/NTX86/1khz/

x86

1000 Hz

23,368 B

DRIVER/NTX86/2khz-4khz/

x86

2000–4000 Hz

23,496 B

DRIVER/NTX86/4khz-8khz/

x86

4000–8000 Hz

23,496 B

DRIVER/NTX86/nopatch/

x86

No patch (fallback)

21,216 B

DRIVER/AMD64_AS/*/

x64

Alternative signing variant

20,464–20,688 B

DRIVER/NTx86_AS/*/

x86

Alternative signing variant

DRIVER/98ME/*/

Legacy

Windows 98/ME variant

Total: 15 .sys driver variants for different architectures and polling rates.

9.3 Driver Characteristics

Property

Value

Imports

ntoskrnl.exe only (standard kernel driver pattern)

No imports

hal.dll, kernel32.dll, win32k.sys

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

9.4 Installation Mechanism

  1. Setup.exe runs as Administrator

  2. Creates a system restore point

  3. Installs the .sys driver for the target polling frequency

  4. Registers with Windows USB HID stack

  5. System reboot required for activation

9.5 Risk Assessment

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


10. Security Assessment

10.1 Risk Matrix

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

10.2 External Communication Map

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

10.3 False Positives Ruled Out

During analysis, the following potential suspicions were confirmed as benign:

  1. "MZ" headers in PNG files — False positives; these are coincidental byte patterns in icon resources. No valid PE structures exist in any PNG file.

  2. "http" strings in .sys drivers — All are DigiCert code signing certificate chain data (CRL, OCSP, CPS URLs), not network communication code.

  3. Embedded PEs in resource files — All Chromium resource files (.pak, .dat, .bin) were verified as standard format with no embedded executables.

  4. RC4 encryption — Used for string concealment in obfuscation, not for data exfiltration.

10.4 Vendor Capabilities

What the vendor (EXM TWEAKS, s.r.o.) can do post-installation:

  1. Remotely brick the app — Via kill switch endpoint (can target specific HWIDs)

  2. Collect telemetry — Full PostHog analytics on all user interactions

  3. Push arbitrary updates — Via S3-hosted electron-updater releases

  4. Identify users — Via machine fingerprinting + OAuth accounts

  5. Execute SYSTEM-privilege code — Via NSudoLC for tweaks

  6. Monitor user activity — Via the background watchdog service


11. Feature Inventory

11.1 System Tweaks

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

11.2 Feature Modules (from renderer bundles)

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)

11.3 Anti-Tampering Features (from monitor.js)

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)


12. Digital Forensics Artifacts

12.1 Filesystem Artifacts

Path

Purpose

%ProgramData%\EXM\config.json

AES-256-CBC encrypted configuration

%ProgramData%\EXM\security\hmac.key

HMAC verification key

%ProgramData%\EXM\security\key_version.txt

Encryption key version

C:\Program Files\EXM Tweaks\

Default installation directory

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\EXM Tweaks\

Start menu shortcuts

12.2 Registry Artifacts

(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

12.3 Service Artifacts

  • 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

12.4 Network Artifacts

  • 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


13. Appendices

A. File Hashes

File

SHA-256

EXM-2.1.1-installer.exe

(not computed; see original file)

EXM.exe

(not computed; see original file)

B. Certificate Chain

DigiCert High Assurance EV Root CA
  └── DigiCert SHA2 High Assurance Code Signing CA
       └── EXM TWEAKS, s.r.o. (valid through ~2028)

C. Tools Used

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

D. Methodology

  1. Static Analysis — Binary examination without execution

  2. Installer Extraction — 7-Zip decompression of NSIS archive

  3. ASAR Extraction — Electron app archive unpacking

  4. Code Analysis — Manual and automated JS deobfuscation

  5. Network Mapping — All URLs extracted from JS and CSP headers

  6. Binary Verification — PE header validation, digital signature checking

  7. DLL/Driver Analysis — Import table, string extraction, certificate verification

  8. Resource Validation — Confirmed no embedded payloads in resource files

E. Update Channels

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)

F. Deobfuscation Detail

The obfuscation scheme uses a rotating two-key system per file. Each JavaScript file contains:

  1. Two encoded string arrays (generated from _0x1218() in monitor.js)

  2. A custom base64 decoder (function _0x4636 / function _0x3836)

  3. 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.