99e5d5d8e7e04fa65d12f184c7dc0c5ceb012125e00d99eb5c10fad33f3c87ffDeep Analysis — 99e5d5d8e7e04fa65d12f184c7dc0c5ceb012125e00d99eb5c10fad33f3c87ff
Verdict: Benign .NET Windows Forms inventory-management application (false-positive MalwareBazaar ingestion). No malicious capabilities identified.
1. Build / RE
Toolchain & Framework
- .NET Framework PE32 compiled to CIL (
PE32 executable (GUI) Intel 80386 Mono/.Net assembly, for MS Windows, 3 sections) ^[file.txt]. - CLR header v2.5, metadata version v4.0.30319 (Visual Studio 2019 / .NET Framework 4.8 compatible) ^[rabin2-info.txt].
- PDB debug file
KdOzB.pdb(arbitrary developer string, not a known malware marker) ^[rabin2-info.txt:13]. - Compiled timestamp
Mon Jun 22 08:46:39 2065— future-dated, common in VMs or systems with incorrect clocks; not an anomaly given the otherwise standard build layout.
Namespace & Architecture
- Namespace
ABMProductos(Spanish: Alta-Baja-Modificación de Productos = Product CRUD) ^[extract_clr.py]. - 26 TypeDefs including:
AccesoBd,Agregar,AgregarCategoria,frmAgregarMarca,Articulo,ArticuloGestion,Categoria,Detalle,Home,Imagen,ImagenGestion,ListadoCategorias,Listar,frmListarMarca,Marca,MarcaGestion,Modificar,Validaciones^[extract_clr.py]. - 176 MethodDefs with standard WinForms event handlers (
Form1_Load,btnGuardar_Click,txtBuscar_TextChanged,Dispose,InitializeComponent) ^[extract_clr.py].
Obfuscation
- No packer. No UPX, ConfuserEx, SmartAssembly, or native-AOT indicators. Standard 3-section PE (.text, .rsrc, .reloc).
- No anti-analysis. Greps for debug, sandbox, VM, processhacker, wireshark, x64dbg returned zero hits ^[strings.txt].
- Custom string encoding: Method
CustomDecode(RVA 0x407268) implements a character-pair lookup decoder. CIL analysis shows it takes an input string, iterates in pairs, callsIndexOfon a lookup table, shifts the first index left by 4, and ORs with the second index to produce a byte array ^[r2:0x00407268]. This is a trivial custom obfuscation, not a commercial protector. - Encoded block: A large encoded text block beginning with
ENFKJ::D:::AE:::PPPP::LI:::::::E...is embedded in the .text section at file offset 0xaa813 ^[strings.txt:1657]. TheCustomDecode/Trif32methods (RVA 0x4072cc) are responsible for decoding this block at runtime.Trif32constructs a 3-element byte array from arguments ^[r2:0x004072cc]. - Resource loading:
get_ipVwR(RVA 0x40ae5c) retrieves a resource named"O"fromProperties.ResourcesviaGetObjectand casts it toSystem.String^[r2:0x0040ae5c].
Embedded Resources
- Standard .NET manifest resource section (.rsrc at file offset 0xc1e00) containing VS_VERSIONINFO with
OriginalFilename: KdOzB.exe^[terminal:rsrc-dump]. - No encrypted payload blobs, no bitmap steganography, no large unexplained binaries.
- binwalk identified 10 small PNG icons (256×256, 8-bit gray+alpha) at offsets ~0x1072B–0x18861, consistent with WinForms toolbar or menu image lists ^[binwalk.txt].
2. Deploy / ATT&CK
Static-only inference. CAPE skipped this sample because no Windows guest was available ^[dynamic-analysis.md]. All TTP claims below are inferred from static evidence only.
Capability Assessment
| capa hit | Static reality |
|---|---|
| T1027 — Obfuscated Files or Information | The CustomDecode method is a trivial character-pair lookup used on an embedded string block. This is application-level encoding, not adversary obfuscation. |
| T1620 — Reflective Code Loading | capa flags .NET assembly method invoke and access .NET resource. These are standard patterns for any .NET WinForms app loading its own resources at startup. |
| T1213 — Data from Information Repositories | capa flags reference SQL statements. The binary is a database front-end (AccesoBd, ejecutarLectura, ejecutarAccion, SqlCommand, SqlConnection) ^[strings.txt:80,338,473]. |
Network & C2
- No network IoCs. No URLs, IPs, domains, Telegram bots, Discord webhooks, SMTP servers, or raw socket APIs found in strings or decompiled CIL.
WebRequestMethodsappears in strings ^[strings.txt:372] but is part of the standard .NET BCL namespace and is not called in any network-capable method body.- The
get_ipVwRname might suggest IP retrieval, but its implementation loads a local resource string"O"and returns it ^[r2:0x0040ae5c]. No HTTP request is made.
Persistence
- None. No registry writes, no scheduled tasks, no Startup folder copies, no service creation.
Data Access / Collection
- SQL Server connectivity via
System.Data.SqlClient(SqlConnection,SqlCommand,ExecuteReader,ExecuteNonQuery) ^[strings.txt:65,261–263,338,401,473]. - Methods:
setQuery,ejecutarLectura,ejecutarAccion,setParametro,cerrarConexion^[extract_clr.py]. - This is standard ADO.NET CRUD boilerplate for a local or LAN SQL Server backend.
Anti-Analysis
- None. No debug checks, no VM detection, no process enumeration, no timing loops.
Attribution
- Spanish-language UI (
ABMProductos,Agregar,Detalle,Listar,Marca,Categoria,btnGuardar,txtBuscar,ValidarCodigo,validarCargaImagen) ^[extract_clr.py]. - No linguistic overlap with known threat-actor clusters. No code-reuse signatures. PDB name
KdOzBis not a known malware marker. - YARA match: generic
PE_File_Genericonly ^[yara.txt].
3. Summary
This sample is a benign .NET Framework 4.x Windows Forms inventory-management application written in Spanish. It provides CRUD operations for products, brands, and categories backed by a SQL Server database. The CustomDecode / Trif32 routines are a developer-implemented character-pair string decoder used to store a configuration block or UI text in a mildly obfuscated form — not adversary-grade protection. The KdOzB naming throughout (PDB, OriginalFilename) is an arbitrary developer choice and carries no threat-intelligence weight.
capa's ATT&CK mappings (T1027, T1620, T1213) are false positives arising from generic .NET runtime patterns: any .NET app that loads its own resources and uses SQL will trigger these rules.
Recommendation: Close as benign / false-positive MalwareBazaar ingestion. No IOCs, no TTPs of value, no further analysis required.