Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
psobf — PowerShell Обфускатор | Kitploit
Инструменты/GitHubGitHub/taurusomar/psobf
Генерация полезной нагрузкиОбход IDS/IPSСкриптинг и автоматизацияТестирование на ПроникновениеОбучение и ОбразованиеRed TeamingРазработка Полезной Нагрузки
GitHubtaurusomar/psobf

psobf

PowerShell Обфускатор

Репозиторий
252355 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

PowerShell Obfuscator

Его цель - преобразовывать код, чтобы затруднить анализ и статические сигнатуры, полезно в лабораториях и при авторизованных тестированиях Red Team/Pentesting.

Поддерживает 6 уровней обфускации, а также архитектуру трансформаций/конвейеров, которая позволяет накладывать такие техники, как токенизация строк, легкое шифрование литералов, маскировка чисел, морфинг идентификаторов, "джиттер" формата, косметика потока управления, внедрение мертвого кода, профили фрагментации и детерминированные профили.

⚠️ Ответственное использование: этот инструмент предназначен только для исследований и авторизованного тестирования. Не используйте в злонамеренных целях.```powershell

./psobf -h

root@kitploit:~
██████╗ ███████╗ ██████╗ ██████╗ ███████╗
██╔══██╗██╔════╝██╔═══██╗██╔══██╗██╔════╝
██████╔╝███████╗██║   ██║██████╔╝█████╗
██╔═══╝ ╚════██║██║   ██║██╔══██╗██╔══╝
██║     ███████║╚██████╔╝██████╔╝██║
╚═╝     ╚══════╝ ╚═════╝ ╚═════╝ ╚═╝
Omar Salazar
v.2.0.0										 

Usage: psobf -i -o -level <1|2|3|4|5|6> [options]

Obfuscation Levels: 1 - Char join encoding 2 - Base64 encoding 3 - Base64 encoding (alternate) 4 - GZip + Base64 compression 5 - Script fragmentation 6 - AES-256 CTR encryption (NEW in 2.0.0)

Transform Pipeline Options (use with -pipeline): iden - Identifier morphing (use with -iden obf) strenc - String encryption (use with -strenc xor|rc4) stringdict - String tokenization (use with -stringdict N) numenc - Number encoding fmt - Format jitter (use with -fmt jitter) cf - Control flow obfuscation (use with -cf-opaque, -cf-shuffle) dead - Dead code injection (use with -deadcode N) hexenc - Hex string encoding (NEW) alias - Cmdlet alias substitution (NEW) unicode - Unicode character encoding (NEW) antidebug - Anti-debugging/VM detection (NEW) iexobf - Invoke-Expression obfuscation (NEW)

Examples:

Simple obfuscation

psobf -i script.ps1 -o out.ps1 -level 2

AES encryption with heavy profile

psobf -i script.ps1 -o out.ps1 -level 6 -profile heavy

All new transforms

psobf -i script.ps1 -o out.ps1 -level 4 -pipeline "iden,alias,hexenc,antidebug,iexobf" -iden obf

RC4 string encryption

psobf -i script.ps1 -o out.ps1 -level 4 -pipeline "strenc" -strenc rc4 -strkey 0011223344556677

root@kitploit:~
## Возможности

<h1 align="center">
  <img src="https://assets.kitploit.com/production/public/readmes/6598/11956ab9f65e8dc1b0460652042c601f70d28bb67e9fd6f0a89813ed5369997f.gif" alt="psobf" width="700px"></a>
  <br>
</h1>

<h1 align="center">
  <img src="https://raw.githubusercontent.com/taurusomar/psobf/HEAD/static/poc2.gif" alt="psobf" width="700px"></a>
  <br>
</h1>

--- 

## Установка```bash
go install github.com/TaurusOmar/psobf/v2/cmd/[email protected]

Быстрый старт```bash

psobf -i input.ps1 -o out.ps1 -level 1..6 [options] psobf -h # full help

root@kitploit:~
## Возможности

<h1 align="center">
  <img src="https://assets.kitploit.com/production/public/readmes/6598/11956ab9f65e8dc1b0460652042c601f70d28bb67e9fd6f0a89813ed5369997f.gif" alt="psobf" width="700px"></a>
  <br>
</h1>

<h1 align="center">
  <img src="https://raw.githubusercontent.com/taurusomar/psobf/HEAD/static/poc2.gif" alt="psobf" width="700px"></a>
  <br>
</h1>

--- 

## Установка```bash
go install github.com/TaurusOmar/psobf/cmd/[email protected]

Быстрый старт```bash

psobf -i input.ps1 -o out.ps1 -level 1..6 [options] psobf -h # full help

root@kitploit:~
---

## Полный список флагов

| Flag          | Type / Values     |          Default | Описание                                 | Пример                                                      |                                 |                        |
| ------------- | ----------------- | ---------------: | ------------------------------------------- | ------------------------------------------------------------ | ------------------------------- | ---------------------- |
| `-i`          | string            |                — | Входной PS1 (используйте `-stdin` для чтения из канала)  | `-i script.ps1`                                              |                                 |                        |
| `-o`          | string            | `obfuscated.ps1` | Вывод (используйте `-stdout` для записи в STDOUT)   | `-o out.ps1`                                                 |                                 |                        |
| `-level`      | 1..6              |                1 | Финальный упаковщик (см. уровни)                   | `-level 4`                                                   |                                 |                        |
| `-noexec`     | bool              |            false | Выдавать только полезную нагрузку (без `Invoke-Expression`)  | `-noexec`                                                    |                                 |                        |
| `-stdin`      | bool              |            false | Читать PS из STDIN                          | `-stdin`                                                     |                                 |                        |
| `-stdout`     | bool              |            false | Записать результат в STDOUT                      | `-stdout`                                                    |                                 |                        |
| `-seed`       | int64             |           random | Воспроизводимая случайность                     | `-seed 42`                                                   |                                 |                        |
| `-q`          | bool              |            false | Тихий режим (без баннера)                           | `-q`                                                         |                                 |                        |
| `-pipeline`   | csv               |                — | Преобразования для применения по порядку                | `-pipeline "iden,strenc,stringdict,numenc,fmt,cf,dead,frag"` |                                 |                        |
| `-iden`       | `keep`/`obf`      |           `keep` | Изменение идентификаторов (переменные и функции)          | `-iden obf`                                                  |                                 |                        |
| `-strenc`     | `off`/`xor`/`rc4` |            `off` | Шифрование строковых литералов                   | `-strenc rc4`                                                |                                 |                        |
| `-strkey`     | hex               |                — | Ключ для `-strenc`                           | `-strkey 0011223344556677`                                   |                                 |                        |
| `-stringdict` | 0..100            |                0 | Токенизация длинных строк; вероятность % на литерал | `-stringdict 40`                                             |                                 |                        |
| `-numenc`     | bool              |            false | Кодирование чисел как арифметических выражений PS | `-numenc`                                                    |                                 |                        |
| `-fmt`        | `off`/`jitter`    |            `off` | Рандомизация пробелов/разрывов строк            | `-fmt jitter`                                                |                                 |                        |
| `-cf-opaque`  | bool              |            false | Обернуть в `if(1 -eq 1){...}`                  | `-cf-opaque`                                                 |                                 |                        |
| `-cf-shuffle` | bool              |            false | Переупорядочить **блоки функций**                 | `-cf-shuffle`                                                |                                 |                        |
| `-deadcode`   | 0..100            |                0 | Вероятность внедрения мертвого кода             | `-deadcode 20`                                               |                                 |                        |
| `-frag`       | \`profile=tight   |           medium | loose\`                                     | —                                                            | Профиль фрагментации (уровень 5) | `-frag profile=medium` |
| `-minfrag`    | int               |               10 | Минимальный размер фрагмента (уровень 5)                 | `-minfrag 8`                                                 |                                 |                        |
| `-maxfrag`    | int               |               20 | Максимальный размер фрагмента (уровень 5)                 | `-maxfrag 16`                                                |                                 |                        |
| `-profile`    | \`light           |         balanced | heavy\`                                     | —                                                            | Пресеты для pipeline/seed/и т.д.  | `-profile heavy`       |
| `-fuzz`       | int               |                0 | Создать N вариантов (разные seed'ы)        | `-fuzz 5`                                                    |                                 |                        |
| `-poly`       | int               |                0 | Полиморфные варианты на одно преобразование      | `-poly 3`                                                    |                                 |                        |

> **Конвейер** выполняется **до** финальной упаковки **`-level`**.

---

## Пример входного скрипта (безопасный)

Чтобы примеры оставались безвредными, мы используем:```powershell
Write-Host "Hello, World!"
$answer = 42
function Greet($name) { Write-Host ("Hi, " + $name) }
Greet "Ada"

Уровни обфускации (1–6) + примеры выходных данных

Ниже показана форма выходных данных (примеры). Фактические полезные нагрузки будут отличаться.

Уровень 1 — объединение символов```bash

psobf -i sample.ps1 -o out.ps1 -level 1

root@kitploit:~
**Вывод (фрагмент):**```powershell
$obfuscated = $([char[]](87,114,105,116,101,45,72,111,115,116,32,34,72,101,108,108,111,44,32,87,111,114,108,100,33,34,10,36,97,110,115,119,101,114,32,61,32,52,50,10,102,117,110,99,116,105,111,110,32,71,114,101,101,116,40,36,110,97,109,101,41,32,123,32,87,114,105,116,101,45,72,111,115,116,32,40,34,72,105,44,32,34,32,43,32,36,110,97,109,101,41,32,125,10,71,114,101,101,116,32,34,65,100,97,34,10) -join ''); Invoke-Expression $obfuscated

Уровень 2 — Base64```bash

psobf -i sample.ps1 -o out.ps1 -level 2

root@kitploit:~
**Вывод (фрагмент):**```powershell
$obfuscated = [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('V3JpdGUtSG9zdCAiSGVsbG8sIFdvcmxkISIKJGFuc3dlciA9IDQyCmZ1bmN0aW9uIEdyZWV0KCRuYW1lKSB7IFdyaXRlLUhvc3QgKCJIaSwgIiArICRuYW1lKSB9CkdyZWV0ICJBZGEiCg==')); Invoke-Expression $obfuscated

Уровень 3 — Base64 (alt)```bash

psobf -i sample.ps1 -o out.ps1 -level 3

root@kitploit:~
**Вывод (фрагмент):**```powershell
$e = [Convert]::FromBase64String('V3JpdGUtSG9zdCAiSGVsbG8sIFdvcmxkISIKJGFuc3dlciA9IDQyCmZ1bmN0aW9uIEdyZWV0KCRuYW1lKSB7IFdyaXRlLUhvc3QgKCJIaSwgIiArICRuYW1lKSB9CkdyZWV0ICJBZGEiCg=='); $obfuscated = [Text.Encoding]::UTF8.GetString($e); Invoke-Expression $obfuscated

Уровень 4 — GZip + Base64```bash

psobf -i sample.ps1 -o out.ps1 -level 4

root@kitploit:~
**Вывод (фрагмент):**```powershell
$compressed = 'H4sIAAAAAAAA/wovyixJ1fXILy5RUPJIzcnJ11EIzy/KSVFU4lJJzCsuTy1SsFUwMeJKK81LLsnMz1NwL0pNLdFQyUvMTdVUqFZA0q+h5JGpo6CkoK0Ala3lAitWUHJMSVTiAgQAAP//m+Ey2GoAAAA='; $bytes = [Convert]::FromBase64String($compressed); $ms = New-Object IO.MemoryStream(,$bytes); $gz = New-Object IO.Compression.GzipStream($ms,[IO.Compression.CompressionMode]::Decompress); $sr = New-Object IO.StreamReader($gz); $obfuscated = $sr.ReadToEnd(); Invoke-Expression $obfuscated

Уровень 5 — Фрагментация```bash

psobf -i sample.ps1 -o out.ps1 -level 5

root@kitploit:~
**Вывод (фрагмент):**```powershell
$fragments = @('Write-Host "Hello',', World!"
$','answer = 42','
function G','reet($name)',' { Write-Ho','st ("Hi, " ','+ $name) }
','Greet "Ada"','
'); $script = $fragments -join ''; Invoke-Expression $script

Уровень 6 — AES Шифрование```bash

psobf -i sample.ps1 -o out.ps1 -level 6

root@kitploit:~
**Вывод (фрагмент):**```powershell
$k=[Convert]::FromBase64String('...base64key...');$iv=[Convert]::FromBase64String('...base64iv...');$e=[Convert]::FromBase64String('...base64ciphertext...');$a=New-Object Security.Cryptography.AesManaged;$a.Key=$k;$a.IV=$iv;$d=$a.CreateDecryptor();$bytes=$d.TransformFinalBlock($e,0,$e.Length);$dec=[Text.Encoding]::UTF8.GetString($bytes);Invoke-Expression $dec

Transforms (конвейер) — детали и примеры

Используйте -noexec для просмотра полезных нагрузок без выполнения.

Идентификатор (-iden)

  • Переименовывает переменные и функции, сохраняя семантику.
  • Защитите всё, что не нужно переименовывать, префиксом __$.

Команда```bash psobf -i sample.ps1 -o out.ps1 -level 4 -pipeline "iden" -iden obf -seed 11

root@kitploit:~
**Вывод (фрагмент)**```powershell
$WguE = 42
function QhZy($Chx){ Write-Host ("Hi, " + $Chx) }
QhZy "Ada"

String Encryption (-strenc xor|rc4)

Шифрует только строковые литералы (без манипуляции API). Расшифровывает непосредственно во время выполнения. Флаги: -strenc xor|rc4, -strkey .

XOR

Команда```bash psobf -i sample.ps1 -o out.ps1 -level 4 -pipeline "strenc" -strenc xor -strkey a1b2c3d4 -seed 42

root@kitploit:~
**Вывод (фрагмент)**```powershell
$b=[Convert]::FromBase64String('EwAB...'); for($i=0;$i -lt $b.Length;$i++){$b[$i]=$b[$i] -bxor 0xA1}; [Text.Encoding]::UTF8.GetString($b)

RC4

Команда```bash psobf -i sample.ps1 -o out.ps1 -level 2 -pipeline "strenc" -strenc rc4 -strkey 0011223344556677 -seed 7

root@kitploit:~
**Вывод (фрагмент)**```powershell
function __decGWREVT($k,[byte[]]$d){ $s=0..255; $j=0; for($i=0;$i -lt 256;$i++){ $j=($j+$s[$i]+$k[$i%$k.Length])%256; $t=$s[$i];$s[$i]=$s[$j];$s[$j]=$t } $i=0;$j=0; for($x=0;$x -lt $d.Length;$x++){ $i=($i+1)%256;$j=($j+$s[$i])%256; $t=$s[$i];$s[$i]=$s[$j];$s[$j]=$t; $d[$x]=$d[$x] -bxor $s[($s[$i]+$s[$j])%256] } [Text.Encoding]::UTF8.GetString($d) }
...
( __decGWREVT ([byte[]](0..(8-1)|%{[Convert]::ToByte('0011223344556677'.Substring($_*2,2),16)})) ([Convert]::FromBase64String('m7m7...')) )

Словарь строк (-stringdict)

Разделяет длинные строки на массив $D и восстанавливает их во время выполнения. Уменьшает повторяющиеся сигнатуры. Флаг: -stringdict <0..100>

Команда```bash psobf -i sample.ps1 -o out.ps1 -level 3 -pipeline "stringdict" -stringdict 40 -seed 1

root@kitploit:~
**Вывод (фрагмент)**```powershell
$D=@('Hello',', World','!','Hi, ', 'Ada');
Write-Host ($D[0]+$D[1]+$D[2])
function Greet($name){ Write-Host ($D[3] + $name) }
Greet $D[4]

Number Encoding (-numenc)

Заменяет обычные числа на эквивалентные арифметические/побитовые выражения (вне строк).

Команда```bash psobf -i sample.ps1 -o out.ps1 -level 2 -pipeline "numenc" -numenc -seed 1337

root@kitploit:~
**Вывод (фрагмент)**```powershell
$answer = ((0x2A -bxor 0x00)+0)

Предупреждение: перенаправления, такие как 2>&1, должны оставаться неизменными. Если в вашем источнике есть непроцитированные перенаправления и возникают проблемы, отключите -numenc или заключите эти перенаправления в строки в исходном коде.


Формат Jitter (-fmt)

Случайно изменяет пробелы и переводы строк.

Команда```bash psobf -i sample.ps1 -o out.ps1 -level 2 -pipeline "fmt" -fmt jitter -seed 20

root@kitploit:~
**Вывод (фрагмент)**```powershell
Write-Host   "Hello, World!"
$answer=42

function Greet($name) {  Write-Host ("Hi, "+$name) }
Greet  "Ada"

Управление потоком (-cf-opaque, -cf-shuffle)

  • -cf-opaque: оборачивает весь скрипт в ветку, которая никогда не является ложной.
  • -cf-shuffle: переупорядочивает блоки функций (не отдельные операторы). Вы заметите изменения только если ваш скрипт определяет функции.

Команда

root@kitploit:~
python pyobfuscate.py -cf-opaque -cf-shuffle your_script.py
``````bash
psobf -i sample.ps1 -o out.ps1 -level 4 -pipeline "cf" -cf-opaque -cf-shuffle -seed 77

Вывод (фрагмент)```powershell if(1 -eq 1){ function Greet($name){ Write-Host ("Hi, " + $name) } Write-Host "Hello, World!" $answer = 42 Greet "Ada" }

root@kitploit:~
---

### Мёртвый код (`-deadcode`)

Внедряет no-op функции, циклы с 0 итераций, безвредные строки и т.д. Контролируется вероятностью.
Флаг: -deadcode <0..100> (вероятность внедрения сниппетов).

**Команда**```bash
psobf -i sample.ps1 -o out.ps1 -level 4 -pipeline "dead" -deadcode 25 -seed 5

Вывод (фрагмент)```powershell function __dummyzQJxJk { return } for($i=0;$i -lt 0;$i++){Start-Sleep -Milliseconds 0} $x='canary';$y=$x+$x|Out-Null Write-Host "Hello, World!" ...

root@kitploit:~
### Fragmentation (`-frag`, `-minfrag`, `-maxfrag`)

Влияет только на **уровень 5** (фрагменты строк + объединение во время выполнения).

* **Профили**:

  * `profile=tight` → маленькие фрагменты (≈6–10)
  * `profile=medium` → средние фрагменты (≈10–18)
  * `profile=loose` → крупные фрагменты (≈14–28)
* **Или** настройте с помощью `-minfrag` / `-maxfrag`.

**Команды**```bash
# Profile based
psobf -i sample.ps1 -o out.ps1 -level 5 -frag profile=loose -seed 9

# Fine control
psobf -i sample.ps1 -o out.ps1 -level 5 -minfrag 8 -maxfrag 16 -seed 9

Вывод (фрагмент)```powershell $fragments=@('Write-Host "Hello,',' World!"',"n", '$answer = 42',"n",'function Greet($','name){ Write-Host ("Hi, "+$name)}',"`n",'Greet "Ada"'); $script=$fragments -join ''; Invoke-Expression $script

root@kitploit:~
---

### Новые преобразования (v2.0+)

#### Шестнадцатеричное кодирование (`hexenc`)

Кодирует строковые литералы в шестнадцатеричный формат.```bash
psobf -i sample.ps1 -o out.ps1 -level 2 -pipeline "hexenc" -seed 42

Вывод (фрагмент):```powershell [Text.Encoding]:https://raw.githubusercontent.com/taurusomar/psobf/HEAD/:UTF8.GetString(%5BConvert%5D::FromHexString(%2748656C6C6F%27))

root@kitploit:~
#### Подстановка алиасов (`alias`)

Заменяет командлеты PowerShell их короткими алиасами.```bash
psobf -i sample.ps1 -o out.ps1 -level 2 -pipeline "alias" -seed 42

Вывод (фрагмент):```powershell

Write-Host → echo/write/outright

Get-ChildItem → dir/ls/gci

ForEach-Object → foreach/%

root@kitploit:~
#### Кодировка Unicode (`unicode`)

Преобразует символы строки в формат `[char]0xNNNN`.```bash
psobf -i sample.ps1 -o out.ps1 -level 2 -pipeline "unicode" -seed 42

Вывод (фрагмент):```powershell "H[char]0x0065[char]0x006C[char]0x006Co"

root@kitploit:~
#### Anti-Debugging (`antidebug`)

Вставляет фрагменты кода для обнаружения песочницы/ВМ/отладчика.```bash
psobf -i sample.ps1 -o out.ps1 -level 4 -pipeline "antidebug" -seed 42

Результат (фрагмент):```powershell if($env:COMPUTERNAME -match '^(SANDBOX|MALWARE|VIRUS)'){ exit } if((Get-WmiObject Win32_ComputerSystem).Model -match '^(VirtualBox|VMware)'){ exit }

... original script ...

root@kitploit:~
#### Обфускация IEX (`iexobf`)

Заменяет `Invoke-Expression` на альтернативные формы.```bash
psobf -i sample.ps1 -o out.ps1 -level 2 -pipeline "iexobf" -seed 42

Вывод (фрагмент):```powershell

Invoke-Expression → IEX or .

. $code # instead of Invoke-Expression $code

root@kitploit:~
---

## Профили (light, balanced, heavy)

Пресеты — это удобные отправные точки. Любой явный флаг, который вы передаете, **переопределяет** пресет. Любой флаг, переданный явно, имеет приоритет над профилем.

* **light**  ```
  -pipeline "iden,stringdict,numenc,frag"
  -frag profile=tight
  -seed 1337
  • сбалансированный ``` -pipeline "iden,strenc,stringdict,numenc,fmt,cf,dead,frag" -strenc xor -strkey a1b2c3d4 -stringdict 30 -deadcode 10 -fmt jitter -frag profile=medium -seed 424242
    root@kitploit:~

тяжелый ``` -pipeline "iden,strenc,stringdict,numenc,fmt,cf,dead,frag" -strenc rc4 -strkey 00112233445566778899aabbccddeeff -stringdict 50 -deadcode 25 -fmt jitter -frag profile=loose -seed 987654321

root@kitploit:~
---

## Семена, воспроизводимость и фаззинг

* `-seed N` → детерминированный вывод для заданной конфигурации.
* Без `-seed` → криптографически обеспеченная случайность.
* `-fuzz N` → создает **N** вариантов (`out.ps1.v1.ps1`, `out.ps1.v2.ps1`, …), отлично подходит для тестирования разнообразия.

**Пример**```bash
psobf -i sample.ps1 -o out.ps1 -level 4 -profile heavy -fuzz 3

STDIN/STDOUT и -noexec

  • Конвейерный ввод/вывод ```bash cat sample.ps1 | psobf -stdin -stdout -level 2 > out.ps1
    root@kitploit:~
  • Только аудит (без оболочки выполнения) ```bash psobf -i sample.ps1 -o payload.txt -level 4 -noexec

    payload.txt contains just the artifact (e.g., base64/gzip) without Invoke-Expression

    root@kitploit:~

Рецепты EDR/AV (практика атак)

Цель — разнообразить артефакты и уменьшить количество стабильных сигнатур для исследований в авторизованных средах.

  1. Плотная упаковка + буквальное шифрование```bash psobf -i sample.ps1 -o out.ps1 -level 4
    -pipeline "iden,strenc,stringdict" -iden obf -strenc rc4 -strkey 0011223344556677 -stringdict 40
    -seed 20250827
root@kitploit:~
2. **Максимальное разнообразие (формат + фрагментация + мертвый код)**```bash
psobf -i sample.ps1 -o out.ps1 -level 5 \
  -pipeline "fmt,frag,dead" -fmt jitter -frag profile=loose -deadcode 15 \
  -fuzz 5
  1. Сбалансированная CI-дружественная сборка```bash psobf -i sample.ps1 -o out.ps1 -level 3 -profile balanced -seed 777
root@kitploit:~
4. **Сократить статические IOCs (числа + словарь)**```bash
psobf -i sample.ps1 -o out.ps1 -level 2 -pipeline "numenc,stringdict" -numenc -stringdict 35 -seed 9
  1. RC4 + плотная фрагментация (показывающая объединенные слои)```bash psobf -i sample.ps1 -o out.ps1 -level 5 -pipeline "strenc,frag" -strenc rc4 -strkey 0011223344556677 -frag profile=tight -seed 44
root@kitploit:~
---

## Лучшие практики и защитные заметки

* Чередуйте **`-strkey`** и **-seed** для каждой сборки.
* Предпочитайте комбинирование слоёв: `-strenc` + `-stringdict` + `-fmt jitter` + фрагментация.
* Используйте `-fuzz` для создания семейств вариантов для тестирования обнаружения.
* Храните чистый, безвредный базовый образец и проверяйте функциональную эквивалентность в песочнице до и после преобразований.
* Если ваш скрипт зависит от чувствительного синтаксиса PS (например, перенаправления), заключайте их в кавычки или отключайте `-numenc`.

---

## Схема архитектуры```
       ┌──────────────┐
       │  input.ps1   │
       └──────┬───────┘
              │ read (-i / -stdin)
              ▼
       ┌──────────────┐
       │ Pipeline     │  order you choose
       │ iden         │  rename vars/funcs
       │ strenc       │  XOR/RC4 literals
       │ stringdict   │  tokenize + rejoin
       │ numenc       │  numeric masking
       │ fmt          │  whitespace jitter
       │ cf           │  opaque/shuffle
       │ dead         │  harmless noise
       └──────┬───────┘
              │ mutated script
              ▼
       ┌──────────────┐
       │  Level 1..5  │  final packing
       └──────┬───────┘
              │ + Invoke-Expression (unless -noexec)
              ▼
       ┌──────────────┐
       │   out.ps1    │
       └──────────────┘

Краткая шпаргалка```bash

Deterministic, simple

psobf -i sample.ps1 -o out.ps1 -level 2 -seed 123

RC4 (correct invocation shape)

psobf -i sample.ps1 -o out.ps1 -level 4 -pipeline "strenc" -strenc rc4 -strkey 0011223344556677

Tokenization + numeric masking

psobf -i sample.ps1 -o out.ps1 -level 3 -pipeline "stringdict,numenc" -stringdict 40 -numenc

Heavy combo

psobf -i sample.ps1 -o out.ps1 -level 5
-pipeline "iden,strenc,stringdict,numenc,fmt,cf,dead,frag"
-iden obf -strenc xor -strkey a1b2c3d4 -stringdict 35 -numenc
-fmt jitter -cf-opaque -deadcode 15 -frag profile=medium -seed 777

Level 6 - AES encryption (maximum protection)

psobf -i sample.ps1 -o out.ps1 -level 6 -profile heavy -seed 999

New transforms - anti-debug + alias + hex

psobf -i sample.ps1 -o out.ps1 -level 4 -pipeline "antidebug,alias,hexenc" -seed 42

All new transforms combined

psobf -i sample.ps1 -o out.ps1 -level 6
-pipeline "iden,alias,hexenc,unicode,antidebug,iexobf,strenc"
-iden obf -strenc rc4 -strkey 0011223344556677 -seed 42

Inspect artifact only (no Invoke-Expression)

psobf -i sample.ps1 -o payload.txt -level 4 -noexec

root@kitploit:~
---

## Правовая информация

Этот проект предназначен только для **образовательного** и **разрешенного** тестирования. Вы несете единоличную ответственность за его использование. Авторы и участники не несут ответственности за прямые или косвенные убытки.
Скачать инструмент