Skip to content

Tranium wiper: static analysis of a Go binary

Kirk
12 min read
malwarewiperransomwaregoreverse-engineering

This is a technical reverse engineering report. Read the plain-language briefing →

Tranium is a 6 MB Go binary that encrypts files with AES-CBC, overwrites the MBR on three physical drives, and corrupts 30+ system files including the registry hives and boot chain. It triggers a Blue Screen of Death and sets the desktop wallpaper to a photo of an American YouTuber. The source file is named wiper.go. There are no wallet addresses, no contact email, no .onion URL, no payment mechanism of any kind. Every vendor that detects it calls it ransomware.

It is not ransomware. Even if the encryption key could be recovered, the MBR is gone. The boot chain is destroyed, the registry hives are corrupted, and the system files required to start Windows no longer exist. The machine will not boot. This is a wiper.

If you operate a threat intelligence platform with API access and can provide a researcher account, please reach out to kirk@derp.ca. Additional data sources directly increase the quality and coverage of the threat intel published here.


Binary identification

FieldValue
SHA25606430cf9e0ec9fb5b783db7c01fd59bd651d8877143fc45d2bcd7e4dedaf94a6
MD55dc62f4c65df422f1e7a0e691b1a075b
TypePE32+ GUI executable (x86-64)
Size6,192,640 bytes (6 MB)
LanguageGo 1.26.0
Source filewiper.go (1,037 lines)
Build pathC:/Users/Admin/Downloads/wiper.go
Dependencygolang.org/x/sys@v0.41.0
Compiler flags-s -w -H windowsgui (stripped, GUI subsystem)
AV detection9/76 at time of analysis

Kaspersky detects it as VHO:Trojan-Ransom.Win32.Agent.gen. Microsoft calls it Ransom:Win32/Genasom. huorong labels it Ransom/LockFile.mf. All generic ransomware signatures. No vendor identifies it as a wiper or assigns a family name.

The binary was compiled from a single source file in the Downloads folder with symbols stripped. Go 1.26.0 was released on 2026-02-10, one month before the sample appeared. The .symtab section, zeroed PE timestamp, and linker version 3.0 are standard Go compiler markers.


Function map

The main package contains 29 functions named main.a1 through main.a29 (no a21), plus main.main, main.boxWndProc, and main.createMessageBoxClass. We mapped every function to its behaviour using GoReSym virtual address boundaries and RIP-relative LEA cross-references against the string blob.

main.main orchestrates the execution. It prints "Hello Tranium," displays "Where hath your files gone?" in a custom window, includes the string "Good luck.", and calls the 29 functions roughly in sequence. The execution chain is:

Mutex check (a1)
  -> Defender kill (a2)
  -> Shadow copy / recovery destruction (a3)
  -> UAC bypass via fodhelper (a4)
  -> Persistence: Run/RunOnce keys (a6)
  -> Persistence: startup folder (a8)
  -> Persistence: scheduled tasks x3 (a9)
  -> Persistence: Windows service (a10)
  -> Persistence: IFEO debugger hijack (a11)
  -> Persistence: BootExecute (a12)
  -> Taskbar hiding (a13)
  -> File download: wallpaper + audio (a14)
  -> MBR overwrite (a15)
  -> Raw disk overwrite, second pass (a16)
  -> System file corruption (a17)
  -> User directory + system component wipe (a18)
  -> Full system lockdown: 16+ policies (a19)
  -> Wallpaper and audio setup (a20)
  -> Certificate store manipulation (a24, a25)
  -> File encryption: AES-CBC via goroutines (a26)
  -> Audio playback (a27)
  -> BSOD trigger (a28)
  -> Final boot cleanup (a29)

The ordering matters. Tranium destroys the MBR and corrupts system files before it encrypts user data. By the time the encryption goroutines finish, the machine is already unrecoverable. The encryption is a cosmetic layer on top of irreversible destruction.


Encryption

main.a26 is the encryption orchestrator. It spawns goroutine workers (main.a26.func1, 6.1 KB) that perform AES-CBC encryption using Go's crypto/cipher stdlib. The AES S-box, inverse S-box, and Rcon tables are present in the .data section at their standard offsets.

Key generation uses crypto/rand -- the OS CSPRNG. Both CryptProtectData and CryptUnprotectData are imported, indicating the key is stored via DPAPI. The binary also links decryption routines (NewCBCDecrypter, CryptBlocks). In theory, the key could be recovered from DPAPI if the user profile is intact.

In practice, the boot chain is destroyed before the user could attempt recovery. The registry hives (SAM, SYSTEM, SOFTWARE, SECURITY, DEFAULT) that DPAPI depends on are among the files corrupted in main.a17.

No file extension for encrypted files was found in the binary. A search for .tranium, .locked, .encrypted, .enc, .crypt, and other common ransomware extensions returned nothing. Files may be overwritten in place without renaming.


MBR and disk destruction

main.a15 opens \\\\.\\PhysicalDrive0, \\\\.\\PhysicalDrive1, and \\\\.\\PhysicalDrive2 for direct write access, along with raw volume handles \\\\.\\C: and \\\\.\\D:. The MBR is overwritten on all three drives.

main.a16 performs a second raw disk overwrite pass on the C: and D: volumes. This is separate from the MBR operation -- it targets the volume data directly.

main.a29 handles final boot cleanup after everything else has run: bootmgr, ntldr, pagefile.sys, and hiberfil.sys.


System file corruption

main.a17 (4.4 KB) and main.a18 (5.3 KB) between them target over 30 files and directories:

Boot chain:

bootmgr, bootmgr.efi, BOOTNXT, bootsect.bak
winload.exe, winload.efi, winresume.exe, winresume.efi
bootvid.dll, BCD-Template, boot.ini

System executables:

ntoskrnl.exe, hal.dll, smss.exe, winlogon.exe, wininit.exe

Registry hives:

SAM, SYSTEM, SOFTWARE, SECURITY, DEFAULT

Filesystem and storage drivers:

ntfs.sys, fastfat.sys, partmgr.sys, volmgr.sys, volmgrx.sys

Configuration:

win.ini, system.ini, hosts

User directories (main.a18): Desktop, Documents, Downloads, Favourites, Pictures, Videos, Music, Contacts, Searches, OneDrive, Saved Games, 3D Objects. Also targets system components: CodeIntegrity, DriverStore, catroot2, dllcache, SysWOW64.

The string "Good luck." appears in main.a17.


Recovery destruction

Before any persistence or encryption begins, main.a3 eliminates recovery options:

cmd.exe /c wmic shadowcopy delete
cmd.exe /c vssadmin delete shadows /all /quiet
cmd.exe /c bcdedit /set {default} bootstatuspolicy ignoreallfailures
cmd.exe /c bcdedit /set {default} recoveryenabled no

System Restore is disabled via the SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore registry key.


Persistence

Ten mechanisms across six functions:

#MechanismFunctionDetail
1Run key (HKLM)a6{D4E5F6A1-B2C3-4D5E-6F7A-8B9C0D1E2F3A} -> Tranium.exe
2Run key (HKCU)a6Same GUID
3RunOnce key (HKLM)a6Same GUID
4RunOnce key (HKCU)a6Same GUID
5Startup foldera8Copies as {E5F6A1B2-C3D4-4E5F-6A7B-8C9D0E1F2A3B}.exe
6Scheduled task x3a9Three nested tasks, every minute, SYSTEM, highest privileges
7Windows servicea10sc create {C3D4E5F6-A1B2-4C9D-0E1F-2A3B4C5D6E7F}
8IFEO debugger hijacka11sethc.exe, osk.exe, magnify.exe, narrator.exe, utilman.exe
9BootExecutea12autocheck autochk * Tranium.exe -- runs pre-boot
10UAC bypassa4fodhelper via ms-settings\Shell\Open\command + DelegateExecute

The scheduled task persistence (#6) uses a triple-nesting technique. The outer task creates the middle task, the middle creates the inner, and the inner runs the payload every minute as SYSTEM with highest privileges. Deleting one task leaves the others to recreate it.

The IFEO hijack (#8) replaces the Debugger value for five accessibility tools. Pressing Shift five times at the lock screen, clicking the on-screen keyboard, or launching any of these utilities will execute Tranium instead.


Defence evasion and system lockdown

main.a2 disables Windows Defender:

DisableAntiSpyware = 1
DisableRealtimeMonitoring = 1
DisableBehaviorMonitoring = 1
DisableOnAccessProtection = 1

main.a19 (1.2 KB) applies a full system lockdown via 16+ registry policies:

PolicyEffect
DisableTaskMgr = 1Blocks Task Manager
DisableRegistryTools = 1Blocks regedit
DisableCMD = 2Blocks cmd.exe (batch files allowed)
EnableLUA = 0Disables UAC
ConsentPromptBehaviorAdmin = 0No elevation prompt
DisableLockWorkstationBlocks Win+L
DisableChangePasswordBlocks password change
NoRunRemoves Run dialog
NoFindRemoves search
NoControlPanelBlocks Control Panel
NoCloseRemoves shutdown option
NoLogoffRemoves log off
NoSetTaskbarBlocks taskbar changes
NoFileMenuRemoves file menus
NoFolderOptionsBlocks folder options
NoTrayContextMenuDisables tray right-click
NoViewContextMenuDisables explorer right-click

main.a13 hides the taskbar by calling FindWindow on Shell_TrayWnd.

Certificate manipulation occurs in main.a24 and main.a25 -- certificates are added to both the ROOT and AuthRoot stores.


Wallpaper, audio, and the YouTuber connection

main.a14 downloads two files from up to four sources:

URLFile
https://autism[.]lat/v73d2.bmpWallpaper (primary)
https://autism[.]lat/UPiQj.wavAudio (primary)
https://file.marafile[.]cc/3months/1773106600_716fdd44_0.bmpWallpaper (backup)
https://file.marafile[.]cc/3months/1773106676_5f65a166_0.wavAudio (backup)
https://biteblob[.]com/Download/gsaqlrX1mH0a5V/#bat.wavAudio (backup)
https://thegumonmyshoe[.]me/b77/gYKRXBNDVcuBUeNlQGhu.bmp?md5=...&expires=...Wallpaper (auth-gated)

The wallpaper is a 225x225 BMP -- a selfie photo of Tranium, an American YouTuber with 1.3 million subscribers who makes virus testing content. The binary sets this as the desktop wallpaper via SystemParametersInfoW and the Control Panel\Desktop\Wallpaper registry key. The string "Hello Tranium" appears in main.main. The malware is named after him.

The audio file (bat.wav) is 145.9 seconds of PCM 16-bit stereo at 44100 Hz (24.5 MB). main.a27 plays it via PlaySoundW.


Ransom dialog

main.createMessageBoxClass registers a custom window class called BoxClass via RegisterClassExW. The window procedure main.boxWndProc renders a BMP image using BitBlt and StretchBlt.

No text rendering APIs are present -- DrawTextW, TextOutW, BeginPaint, CreateFont, and SetTextColor are all absent. The "ransom note" is the downloaded BMP itself, displayed as an image. The text "Where hath your files gone?" appears in the string blob but is not rendered via GDI text functions.


BSOD trigger

main.a28 calls RtlAdjustPrivilege to acquire SeShutdownPrivilege, then triggers a Blue Screen of Death via NtRaiseHardError. The binary also imports ExitWindowsEx and InitiateSystemShutdownExW as additional shutdown paths.


Infrastructure

DomainNotes
autism[.]latPrimary file host, behind Cloudflare. Created 2026-02-13.
thegumonmyshoe[.]meWallpaper hosting. Round-robins across 91.193.56.10-14 (AS207616 Altrosky Technology, Amsterdam). Created 2026-01-03.
file.marafile[.]ccBackup file hosting. Generic service.
biteblob[.]comBackup file hosting. Generic service.
IPASNLocation
91.193.56.10AS207616 Altrosky TechnologyAmsterdam, NL
91.193.56.11AS207616 Altrosky TechnologyAmsterdam, NL
91.193.56.12AS207616 Altrosky TechnologyAmsterdam, NL
91.193.56.14AS207616 Altrosky TechnologyAmsterdam, NL
71.179.14.4AS701 Verizon BusinessBel Air, MD, US (residential FIOS)

All network traffic is HTTPS on port 443. The thegumonmyshoe.me URL includes an MD5 auth token and epoch expiry (1773117667, approximately 2026-03-07). No C2 channel exists -- these are download-only URLs for the wallpaper and audio files.

The residential Verizon FIOS IP (71.179.14.4) appeared in sandbox network flows.

No related samples were found on any platform. Domain searches, IP searches, tag searches, and GitHub source searches all returned zero results. This appears to be a single build from a single author.


IOC summary

Network

TypeValueContext
Domainautism[.]latPrimary file hosting
Domainthegumonmyshoe[.]meWallpaper hosting
Domainfile.marafile[.]ccBackup file hosting
Domainbiteblob[.]comBackup file hosting
IP91.193.56.10Altrosky Technology, Amsterdam (thegumonmyshoe.me)
IP91.193.56.11Altrosky Technology, Amsterdam
IP91.193.56.12Altrosky Technology, Amsterdam (thegumonmyshoe.me)
IP91.193.56.14Altrosky Technology, Amsterdam (thegumonmyshoe.me)
IP71.179.14.4Verizon FIOS residential, Bel Air MD

Host

IndicatorValue
MutexGlobal\{F9E3B4A1-2D5C-4F8B-9A6E-1C7D3B5A8F2E}
Wallpaper%TEMP%\1773106600_716fdd44_0.bmp (225x225 YouTuber selfie)
Audiobat.wav (145.9s PCM)
Window classBoxClass
Build pathC:/Users/Admin/Downloads/wiper.go

Hashes

HashValue
SHA256 (binary)06430cf9e0ec9fb5b783db7c01fd59bd651d8877143fc45d2bcd7e4dedaf94a6
MD5 (binary)5dc62f4c65df422f1e7a0e691b1a075b
SHA1 (binary)621551552d8ebcf1c5b8e23246726cc589eda56d
Imphash4e2bd2c481372f7ab13b83b63b424e97
SHA256 (wallpaper)0fd1cd57e37b3c312ed66c2dda1e9548dfccdf1d8fcf57416b67118e072b38a4
SHA256 (bat.wav)3bfeaa70b0df65969d5ac7fb2ae6e110fbd3cd2901658ff4ac0cbf8569a2ff38

Registry

KeyValuePurpose
HKLM\...\Run\{D4E5F6A1-...}Tranium.exePersistence
HKCU\...\Run\{D4E5F6A1-...}Tranium.exePersistence
HKLM\...\RunOnce\{D4E5F6A1-...}Tranium.exePersistence
HKCU\...\RunOnce\{D4E5F6A1-...}Tranium.exePersistence
HKLM\...\IFEO\sethc.exe\DebuggerTranium.exeIFEO hijack
HKLM\...\IFEO\osk.exe\DebuggerTranium.exeIFEO hijack
HKLM\...\IFEO\magnify.exe\DebuggerTranium.exeIFEO hijack
HKLM\...\IFEO\narrator.exe\DebuggerTranium.exeIFEO hijack
HKLM\...\IFEO\utilman.exe\DebuggerTranium.exeIFEO hijack
..\Session Manager\BootExecuteautocheck autochk * Tranium.exePre-boot persistence
..\Windows Defender\DisableAntiSpyware1Defence evasion
..\Policies\System\EnableLUA0UAC disable

Behavioural

BehaviourDetail
MBR overwrite\\.\PhysicalDrive0/1/2
Raw disk overwrite\\.\C:, \\.\D: (two passes)
Shadow copy deletionwmic + vssadmin
Recovery disabledbcdedit bootstatuspolicy + recoveryenabled
System Restore disabledRegistry: DisableSR
BSOD triggerRtlAdjustPrivilege + NtRaiseHardError
Scheduled tasks3 nested tasks, every minute, SYSTEM
Windows servicesc create with GUID name
Taskbar hiddenFindWindow(Shell_TrayWnd)
Certificate injectionROOT + AuthRoot store additions

Assessment

Tranium uses AES-CBC encryption with DPAPI key protection, MBR overwriting across three physical drives, raw volume data destruction, and system file corruption targeting the boot chain and registry hives. It adds IFEO debugger hijacking on five accessibility tools, the fodhelper UAC bypass, BootExecute persistence, and a forced BSOD via NtRaiseHardError. 10 persistence mechanisms. 16+ lockdown policies.

The source file is named wiper.go, compiled from a Downloads folder, with no payment infrastructure. The wallpaper is a photo of a YouTuber who tests malware on camera. 9 of 76 vendors detect it. All of them classify it as ransomware.

A YARA rule (Tranium_Wiper) is available at github.com/kirkderp/yara (opens in new tab).

See also: IronChain, GhostWeaver.