Skip to content

Commit 0362c4b

Browse files
readme
1 parent 7ad46dc commit 0362c4b

1 file changed

Lines changed: 53 additions & 1 deletion

File tree

README.md

Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,54 @@
11
# TinyLoad
2-
Packer for PE files
2+
3+
simple PE packer for Windows. compresses and optionally XOR-encrypts executables into a self-extracting stub.
4+
5+
## how it works
6+
7+
TinyLoad appends your compressed payload to a copy of itself. when the packed exe runs it extracts the original to a temp folder, runs it, waits for it to finish, then deletes it.
8+
9+
everything is in one .cpp file, no dependencies.
10+
11+
## download
12+
13+
grab a precompiled binary from [releases](https://github.com/user/tinyload/releases) or build it yourself.
14+
15+
## building from source
16+
17+
you need MinGW (g++) installed. just run:
18+
19+
```
20+
g++ -o TinyLoad.exe TinyLoad.cpp -static -O2 -s
21+
```
22+
23+
or use the included `build.bat`.
24+
25+
## usage
26+
27+
```
28+
TinyLoad.exe --i <input> [--o <output>] [--xor] [--c]
29+
```
30+
31+
| flag | description |
32+
|------|-------------|
33+
| `--i <file>` | input exe to pack |
34+
| `--o <file>` | output path (default: `input_packed.exe`) |
35+
| `--xor` | rolling XOR encryption on the payload |
36+
| `--c` | LZ77 compression |
37+
38+
### examples
39+
40+
```
41+
TinyLoad.exe --i myapp.exe --c
42+
TinyLoad.exe --i myapp.exe --o packed.exe --xor --c
43+
TinyLoad.exe --i myapp.exe --xor
44+
```
45+
46+
you need at least one of `--xor` or `--c`.
47+
48+
## compression
49+
50+
custom LZ77 with hash-chain matching, 64KB sliding window, and lazy evaluation. typically gets decent ratios on PE files since they have a lot of repeated structure. compression runs on the raw input first, then XOR is applied on top so patterns in the compressed stream are also hidden.
51+
52+
## license
53+
54+
MIT

0 commit comments

Comments
 (0)