# Features

Anubis applies protection passes in a fixed pipeline. Each pass is independent combine as many as you need.

## Pipeline order

```
junk → antidebug → junk → flatten → opaque
→ carbon → semantic-noise
→ mix-strings → xor-strings → blind
→ import-alias → dynamic-imports → big-script
→ encrypt → rft → bcc
```

## Pass reference

| Pass                                                     | Flag                | Effect                                                           |
| -------------------------------------------------------- | ------------------- | ---------------------------------------------------------------- |
| [Flatten Control Flow](/anubis/features/flatten.md)      | `--flatten`         | Rewrites function bodies as `while True` state machines          |
| [Opaque Predicates](/anubis/features/opaque.md)          | `--opaque`          | Wraps functions in always-true guards with dead branches         |
| [XOR String Encryption](/anubis/features/xor-strings.md) | `--xor-strings`     | Encrypts string literals with a random key                       |
| [Constant Blinding](/anubis/features/blind.md)           | `--blind`           | Replaces integer literals `N` with `(N^R)^R`                     |
| [Dynamic Imports](/anubis/features/dynamic-imports.md)   | `--dynamic-imports` | Replaces `import X` with XOR-encoded `__import__()` calls        |
| [Semantic Noise](/anubis/features/semantic-noise.md)     | `--semantic-noise`  | Renames identifiers to misleading English names (LLM resistance) |
| [Carbon](/anubis/features/carbon.md)                     | `--carbon`          | Renames all identifiers to random `I`/`l` strings                |
| [Junk Code](/anubis/features/junk-code.md)               | `--junk`            | Wraps code in unreachable class definitions                      |
| [Mix Strings](/anubis/features/mix-strings.md)           | `--mix-strings`     | Replaces string literals with `chr()` chains                     |
| [Big Script](/anubis/features/big-script.md)             | `--big-script`      | Inflates output with \~256 KB of dead-code blobs                 |
| [Anti-Debug](/anubis/features/anti-debug.md)             | `--antidebug`       | Kills debugger processes at runtime                              |
| [Import Alias](/anubis/features/import-alias.md)         | `--import-alias`    | Rewrites import names to random aliases                          |
| [AES Encrypt](/anubis/features/encrypt.md)               | `--encrypt`         | Encrypts source into a self-decrypting one-liner                 |
| [RFT](/anubis/features/rft.md)                           | `--rft`             | Encodes source as `zlib+base64` and `exec()`s it                 |
| [BCC](/anubis/features/bcc.md)                           | `--bcc`             | Compiles to bytecode, wraps in a marshal loader                  |

## Recommended combinations

**Maximum protection (all layers):**

```bash
anubis script.py --junk --antidebug --flatten --opaque --carbon --xor-strings --blind --dynamic-imports --bcc
```

**LLM-resistant:**

```bash
anubis script.py --flatten --opaque --semantic-noise --xor-strings --blind --dynamic-imports
```

**Lightweight + portable:**

```bash
anubis script.py --carbon --mix-strings --blind --import-alias
```

**Bytecode hardening:**

```bash
anubis script.py --flatten --carbon --xor-strings --bcc
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://rodolphes-organization.gitbook.io/anubis/features.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
