2d9f8c6e00839f7c513c080deb360c141eded1429ccadabf16fb2a8650e8436bDeep Analysis — 2d9f8c6e00839f7c513c080deb360c141eded1429ccadabf16fb2a8650e8436b
| Field | Value |
|---|---|
| SHA-256 | 2d9f8c6e00839f7c513c080deb360c141eded1429ccadabf16fb2a8650e8436b |
| MD5 | 4da9be580a30361cd7b76ee767eb3c16 |
| Size | 1.01 MB (1,041,920 bytes) |
| Type | PE32 executable (GUI) Intel 80386 Mono/.Net assembly, for MS Windows ^[file.txt:1] |
| Timestamp | 2022-12-13 14:51:00 UTC (Tue Dec 13 14:51:00 2022) |
| Entry point | mscoree.dll._CorExeMain |
| Internal name | LHUS.exe ^[pefile.txt] |
| Original filename | LHUS.exe ^[pefile.txt] |
| Family | AvalancheRunner (second sibling) |
| Build tool | Visual Studio 2022 v17.4.4, C# / .NET Framework 4.5 ^[triage.json] |
| Obfuscator | None — unobfuscated IL metadata with full namespace/symbol recovery ^[rabin2-info.txt] |
1. Build / RE
Toolchain & Language
Compiled with Visual Studio 2022 v17.4.4 for .NET Framework 4.5 (v4.0.30319). The PE is a 32-bit GUI executable with a single import (mscoree.dll._CorExeMain) and standard three-section layout (.text ~1012 KB, .rsrc ~1.5 KB, .reloc ~512 bytes) ^[pefile.txt] ^[rabin2-info.txt]. No packing, no native packer stub, no ConfuserEx, SmartAssembly, or Xenocode obfuscation.
Symbol Recovery
Radare2 exports 110 managed symbols with zero mangling. Full namespace AvalancheRunner recovered intact, including classes:
AvalancheRunner.OyinFormasi(game form)AvalancheRunner.NatijaFormasi(results form)AvalancheRunner.ToshMexanikasi(rock mechanics)AvalancheRunner.OyinMantiqi(game logic)AvalancheRunner.XavfsizHisoblagich(security calculator — encrypt/decrypt routines)AvalancheRunner.NatijaBoshqaruvchi(results manager — data-table persistence)AvalancheRunner.KattaMalumotlar(big data — typed DataSet)
^[r2:exports] ^[ghidra:symbol_search]
Anti-Analysis
None observed. No debug checks, no VM detection, no anti-disassembly, no TLS callbacks. The binary is fully unobfuscated and analyst-friendly.
Embedded Resources
Two CLR resources identified by pefile:
AvalancheRunner.Properties.Resources.CKT— 952 KB, identical size to the encrypted blob in sibling1a38a948^[pefile.txt]AvalancheRunner.Properties.Resources.DBzt— 24 bytes (likely a small config or key fragment)
The 952 KB blob is the primary payload carrier. Its size match to the first sibling suggests the same second-stage payload or a very similar build pipeline.
Notable Functions
Survey_Cadastral_Transect (addr 00402334) — main game-loop / payload-orchestration routine. Decompilation fails into x86 junk because the body is managed IL; Ghidra mis-interprets IL as native x86. The function name itself is a bizarre English-Uzbek hybrid masquerading as a survey/cadastral term, consistent with the first sibling's pattern of mixing unrelated technical jargon into game-logic namespaces ^[ghidra:Survey_Cadastral_Transect].
Shifrlash / Deshifrlash (addr 00405160 / 004051a0) — managed encrypt/decrypt functions inside XavfsizHisoblagich ("Security Calculator"). Decompilation similarly collapses into x86 noise, but the symbol names confirm the same custom cipher as the first sibling. No Base64 or AES constants recovered in static strings; the cipher is likely a simple XOR or Vigenere loop using the ObfKalit (obfuscation key) ^[ghidra:Shifrlash] ^[floss.txt].
OmonQolishVaqti ("Survival Time") — getter/setter for the game timer, also referenced in the results DataSet schema ^[strings.txt:1482] ^[strings.txt:1483].
Code Quality & Signing
Unsigned. Version info fields are empty (FileVersion 0.0.0.0, CompanyName blank, ProductName blank) except for InternalName and OriginalFilename both set to LHUS.exe ^[exiftool.json] ^[pefile.txt]. No Authenticode certificate, no timestamp counter-signature. The VS_VERSIONINFO block is minimal and does not masquerade as a legitimate vendor — unlike the first sibling which claimed "Antigravity" as CompanyName.
2. Deploy / ATT&CK
Ground truth: No CAPE detonation present (PE skipped — no Windows guest). All TTPs below are inferred from static evidence.
| ATT&CK Tactic | Technique | Evidence |
|---|---|---|
| Defense Evasion | T1140 — Deobfuscate/Decode Files or Information | Shifrlash / Deshifrlash managed routines present; ObfKalit string recovered ^[floss.txt] |
| Defense Evasion | T1027 — Obfuscated Files or Information | 952 KB encrypted CLR resource blob (CKT) is likely second-stage payload or config carrier ^[pefile.txt] |
| Defense Evasion | T1620 — Reflective Code Loading | Same family pattern as sibling 1a38a948: capa flags load .NET assembly and invoke .NET assembly method are expected if the blob decrypts to managed IL ^[capa.txt] |
| Discovery | T1083 — File and Directory Discovery | Capa check if file exists ^[capa.txt] |
| Collection | T1005 — Data from Local System | KattaMalumotlar typed DataSet with NatijalarDataTable (results table) schema implies local structured-data handling ^[r2:exports] |
| Collection | T1560 — Archive Collected Data | Capa archive data ^[capa.txt] |
| Defense Evasion | T1036 — Masquerading | Filename LHUS.exe does not match the AvalancheRunner game namespace; the binary is distributed under an opaque name while internally presenting as a game |
Persistence / C2 / Lateral Movement
No persistence mechanisms observed (no registry keys, no schtasks strings, no startup folder references, no service creation) ^[strings.txt] ^[floss.txt].
No network indicators (no HTTP, TCP, UDP, DNS, SMTP, or socket strings) ^[strings.txt] ^[floss.txt].
No process injection, hollowing, or remote-thread strings ^[strings.txt] ^[floss.txt].
No lateral-movement capabilities observed statically.
Attribution
- Language: All UI strings and class names are in Uzbek (
OyinFormasi,NatijaFormasi,ToshMexanikasi,OmonQolishVaqti,YulduzlarniYarat, etc.) ^[strings.txt] ^[floss.txt]. - Code reuse: Same namespace layout, same class names, same encrypted resource blob size (~952 KB), same
Shifrlash/Deshifrlashcipher routines, and same bizarreSurvey_Cadastral_Transectfunction name as sibling1a38a948. This is a direct sibling — likely rebuilt from the same source tree or compiled from the same Visual Studio project with only the Output Filename changed toLHUS.exe. - Build delta: 2.5 years newer (Dec 2022 vs May 2020), Visual Studio 2022 vs VS 2019/16.10, identical .NET Framework 4.5 target. The only meaningful surface delta is the version-info stripping (no "Antigravity" CompanyName) and the filename change.
3. Comparative Notes (Sibling 1a38a948)
| Attribute | 1a38a948 (May 2020) |
2d9f8c6e (Dec 2022) |
|---|---|---|
| Build tool | VS 2019 (16.10.0.0) | VS 2022 (17.4.4) |
| Timestamp | 2020-05-20 | 2022-12-13 |
| Internal name | AvalancheRunner.exe |
LHUS.exe |
| CompanyName | Antigravity |
(blank) |
| FileVersion | 1.0.0.0 |
0.0.0.0 |
| Encrypted blob | AvalancheRunner.Properties.Resources.CKT (~952 KB) |
AvalancheRunner.Properties.Resources.CKT (~952 KB) |
| Capabilities | Base64 decode + custom cipher + reflective assembly load | Same inferred pattern |
The near-identical resource blob size strongly suggests the same second-stage payload or the same payload-generation pipeline. If the blob content hashes match, these two samples are effectively the same weapon with a recompiled wrapper.
4. Verdict
Low-confidence malicious family label (AvalancheRunner) maintained. The outer binary is a .NET WinForms game with Uzbek UI, but the encrypted 952 KB CLR resource blob, the custom managed cipher, and the banking-themed delivery context of the first sibling justify treating this as a loader/dropper masquerading as a game. No new TTPs versus the first sibling; this is a rebuild.