Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Tools/GitHubGitHub/iamsopotatoe-coder/tinyload
Verschlüsselungs-/EntschlüsselungstoolsPayload-GenerierungExploitationIDS/IPS-UmgehungReverse EngineeringShellcodeBinäranalyseShellcode-Generierung
GitHubiamsopotatoe-coder/tinyload

TinyLoad

Open-Source-Windows-x64-PE-Packer und -Crypter. Komprimiert und verschlüsselt ausführbare Dateien mit einer benutzerdefinierten virtuellen Maschine in einen selbstextrahierenden Stub.

Repository anzeigen
1801646vor 10 TagenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Webseite

github-social-preview

TinyLoad v7.4 - PE-Packer und Crypter für Windows

build Mentioned in Awesome

TinyLoad ist ein PE-Crypter/Packer für x64-Executables. Es packt eine eingegebene EXE mit verschiedenen Schutzschichten, um Reverse Engineering zu verhindern. Es besteht aus einer einzigen .cpp-Datei und hat keine externen Abhängigkeiten.

So funktioniert es

TinyLoad hängt deine Payload an eine Kopie von sich selbst an. Wenn die gepackte EXE ausgeführt wird, extrahiert sie die Payload, entschlüsselt sie und führt sie direkt im Speicher aus, ohne das Original jemals auf die Festplatte zu schreiben. Bei jedem Packvorgang werden die VM-Opcodes zufällig geändert und in 4 unabhängig voneinander verschlüsselte Untertabellen eingefügt, sodass keine zwei Builds identisch sind.

pack()-Pipeline
root@kitploit:~
flowchart TD
    start["pack(in, out, vm, comp, veh, noconsole)"] --> load["loadFile(in) → orig"]
    load --> pe{"MZ + PE00 + Machine 0x8664 + NumberOfSections in 1..96?"}
    pe -->|fail| err["printf error / return false"]
    pe -->|ok| init["pay = orig    flags = 0"]
    
    init --> cdec{"--c ?"}
    cdec -->|yes| lz["flags |= 1<br/>lzPack: WINDOW=0xFFFF  MAXCHAIN=4096<br/>MAXMATCH=258  MINMATCH=3  HSIZE=65536<br/>hash4 = FNV-ish fold * 0x1000193<br/>lazy lookahead la = 1,2<br/>out = uint32le origSz + 8-token flag bytes<br/>match → varint dist, varint len-3"]
    cdec -->|no| vmq
    lz --> vmq{"--vm ?"}

    vmq -->|yes| scatter["flags |= 2<br/>Fisher-Yates 32 slots, scatter NUM_OPS=28<br/>into subtables 4x8, unused stay 0xFF<br/>opmap_enc op = tbl shl 6 OR idx"]
    scatter --> canary["canary corridor n=8, skip first 0x400 of pay<br/>canExp c = pay at off XOR prev"]
    canary --> mkvm["makeVmProgram opmap_enc, key1, key2, canary<br/>key1,key2 ← mt19937_64 TickCount64 XOR QPC<br/>opaque predicates + stream loop + canary mask"]
    mkvm --> venc["vmEncryptPayload  192-bit state<br/>k3 = 0x9E3779B97F4A7C15<br/>ks = uint8((k1 XOR k2) + k3)<br/>b = NOT(b XOR ks)<br/>k1 = rotl64(k1,11) XOR k2<br/>k2 = rotr64(k2,19) + k1 + k3<br/>k3 = k3 * phi XOR k1"]
    vmq -->|no| vehq
    venc --> vehq{"--veh ?"}

    vehq -->|yes| vflag["flags |= FLAG_VEH 4"]
    vehq -->|no| stub
    vflag --> stub["stub = loadFile GetModuleFileNameA self<br/>saveFile out, stub as host image"]

    stub --> skey["stubKey = 0x9E3779B97F4A7C15<br/>for i in 0x1000 .. min n, 0x2000:<br/>stubKey = (stubKey XOR stub i) * phi"]
    skey --> disp["prime vmRun dispKey=0 → fill g_off<br/>dispKey ← rng<br/>encOff j = uint64(g_off j) XOR dispKey"]

    disp --> tail["Tail: sig TINYLD60, origSz, packSz, flags,<br/>dispOff x28, subtables 4x8, vmCodeSz,<br/>dispKey, canary*, chunk*,<br/>payHash = SHA-256 orig first 8B"]
    tail --> hide["sig i XOR= stubKey shr 8i<br/>xorOpmap FNV-1a 0x811C9DC5 / 0x01000193<br/>feeds origSz, packSz, vmCodeSz + first 32B<br/>of vmCode and pay, per-table<br/>flags |= FLAG_CHUNK 8"]
    hide --> tenc["XOR-encode Tail fields with stubKey slices<br/>vmCode vi XOR= stubKey shr ((vi*3) and 63)"]

    tenc --> ovl["payload = vmCode || pay<br/>interleave: insert 0x00 after every 3 bytes"]
    ovl --> chunks["split into 4 chunks, shuffle physical order<br/>Tail placeholder TAIL_SERIALIZED_SZ = 419<br/>before each chunk: 128..640 RNG junk"]
    chunks --> tea["xxteaEncrypt bytes after Tail<br/>DELTA=0x9E3779B9  rounds=6+52/n<br/>remainder XOR pxKey0 xor pxKey1 xor pxKey2 xor pxKey3<br/>patch k i XOR FEEDF00D / CAFEBABE /<br/>DEADBEEF / 8BADF00D into _pxBlock<br/>between C0DE1337 and B007DEAD"]
    tea --> ser["XOR chunkOff / chunkSz / chunkOrder / chunkCnt<br/>serializeTail: 16 TLV records id + u16le sz + bytes<br/>Fisher-Yates order, LCG 1103515245+12345<br/>seed = stubKey XOR filesize<br/>append DWORD LE: tailOff XOR stubKey low 32"]

    ser --> fin{"--noconsole ?"}
    fin -->|yes| gui["OptionalHeader.Subsystem = IMAGE_SUBSYSTEM_WINDOWS_GUI"]
    fin -->|no| scr
    gui --> scr["scrambleSections: cycle names<br/>.text .data .rdata .bss .idata"]
    scr --> done["saveFile out, result"]

Download

Hole dir eine vorkompilierte Binärdatei von den Releases oder baue sie selbst.

Aus dem Quellcode bauen

Du brauchst MinGW (g++). Führe einfach aus:

root@kitploit:~
g++ -o TinyLoad.exe TinyLoad.cpp -static -O2 -s

oder verwende build.bat.

Verwendung

root@kitploit:~
TinyLoad.exe --i <input> [--o <output>] [--vm] [--c] [--veh]

Du brauchst mindestens 1 von --vm, --c oder --veh.

Beispiele

2026-08-1118-55-14-ezgif com-video-to-gif-converter

DIE-Bilder

die-gui-packed die-gui-entropy

Kompression

Benutzerdefinierte LZ77-Kompression mit Hash-Ketten-Abgleich und einem 64-KB-Sliding-Window. Die Kompression läuft zuerst, danach kommt die VM-Verschlüsselung obendrauf, sodass auch alle Muster in den komprimierten Daten verborgen werden.

VM-Verschlüsselung

Eine benutzerdefinierte virtuelle Maschine mit 28 Opcodes, die im Stub läuft. Die Opcodes werden zufällig in 4 Untertabellen mit je 8 Einträgen platziert, und jede Untertabelle wird mit einem anderen Schlüssel XOR-verschlüsselt, der aus den Payload-Daten abgeleitet wird. Das Knacken einer Untertabelle offenbart höchstens 8 von 28 Opcodes. Die Chiffre selbst ist eine 128-Bit-Stromchiffre mit rotl- und rotr-Schlüsselmischung, die vollständig im VM-Interpreter läuft. Die Payload wird mit XXTEA verschlüsselt.

VEH-Seitenfehler-Entschlüsselung

Mit aktiviertem --veh werden alle PE-Sektionsseiten als PAGE_NOACCESS gemappt. Wenn das Programm auf eine Seite zugreift, wird eine Ausnahme ausgelöst. Ein Vectored Exception Handler entschlüsselt genau diese eine Seite und setzt den korrekten Schutz. Ein Watchdog-Thread läuft im Hintergrund und verschlüsselt jede Seite erneut, die seit 200 ms nicht mehr angefasst wurde. Zu jedem Zeitpunkt ist der Großteil deines Programms im Speicher noch verschlüsselt, sodass Memory-Dumps nur das erfassen, was kürzlich zugegriffen wurde.

Anti-Dump

Die 4 kritischsten APIs (GetModuleHandleA, GetProcAddress, ExitProcess, VirtualAlloc) werden über Wrapper-Funktionen im Stub umgeleitet. Nachdem die Payload geladen wurde, wird das gesamte Import-Verzeichnis genullt, sodass Memory-Dumps die Import-Tabelle nicht rekonstruieren können.

Lizenz

MIT

Randnotizen

  • Es gibt viele Funktionen, die ich nicht in die Readme aufgenommen habe. Du kannst den Code selbst lesen oder in changelog.md nachschauen.
  • Das funktioniert mit den meisten Dateien, die ich getestet habe. Wenn es bei deiner Datei bricht, erstelle ein Issue und ich schaue es mir an.
  • Vorschläge und Feature-Ideen gehören ebenfalls in die Issues.
  • Wenn du es nutzt, hilft ein Stern sehr <3
  • Ja, AVs flaggen Packer, das ist zu erwarten. (Aktuell 9 Detections auf virustotal. Jede Datei, die du damit packst, bekommt 9 Detections – der Inhalt spielt keine Rolle.)
  • Bitte packe keine Malware damit. Es ist für legitime Zwecke gedacht.
Tool herunterladen
FlagWas es tut
--i <datei>Eingabe-EXE zum Packen
--o <datei>Ausgabepfad (Standard: input_packed.exe)
--vmVM-Verschlüsselung
--cLZ77-Kompression
--vehVEH-Seitenfehler-Entschlüsselung
--noconsoleGUI-Subsystem