Obfuskacja PowerShell z VSCode i Cursor

Dzisiaj opublikowałem rozszerzenie mojego obfuscatora PowerShell dla edytora Visual Studio Code (VS Code) oraz kompatybilnych z Open VSX, jak np. Cursor.

Po instalacji wystarczy kliknąć prawym klawiszem zakładkę skryptu PowerShell i wybrać Obfuscate lub wpisać komendę /obfuscate

I tyle, wszystko gra i buczy :). A jeszcze jakby ktoś chciał sobie podejrzeć źródła rozszerzenia, to dostępne są na GitHubie:

https://github.com/PELock/PowerShell-Pro-Obfuscator-VSCode-Extension

Pozdro hakery.

PowerShell Pro Obfuscator na PowerShell Gallery

Natywny moduł dla PowerShell Pro Obfuscator, opublikowany na PowerShell Gallery, umożliwiający wykorzystanie obfuscatora bezpośrednio w kodzie PowerShell.

https://www.powershellgallery.com/packages/PowerShellProObfuscator/1.0.0

Obfuskacja PowerShell z PowerShell

###############################################################################
#
# PowerShell Pro Obfuscator WebApi interface usage example.
#
# In this example we will obfuscate sample source with custom options.
#
# Version        : v1.0.0
# Language       : PowerShell
# Author         : Bartosz Wójcik
# Web page       : https://www.pelock.com
#
###############################################################################

# install once:
# Install-Module -Name PowerShellProObfuscator -Scope CurrentUser

Import-Module PowerShellProObfuscator

#
# source code in PowerShell format
#
$scriptSourceCode = @'
function Get-Greeting {
    param([string]$Name)
    Write-Host "Hello World from $Name!"
}
Get-Greeting "PowerShell Pro Obfuscator"
'@

#
# select obfuscation strategies explicitly (only listed switches are enabled)
#
try
{
    $output = Invoke-PowerShellProObfuscate `
        -Source $scriptSourceCode `
        -ActivationCode 'ABCD-ABCD-ABCD-ABCD' `
        -EnableCompression:$false `
        -SelfDefending `
        -ProtectionLinker `
        -RenameVariables `
        -RenameParameters `
        -RenameFunctions `
        -ShuffleFunctions `
        -ControlFlowFlatten `
        -StateMachine `
        -VmStrategy `
        -EncryptIntegers `
        -SplitStrings `
        -EncryptStrings `
        -IntegersToArrays `
        -FloatsToArrays `
        -InsertDeadCode `
        -ComplexifyBooleans `
        -IntegersToFloating `
        -EncryptFloating `
        -DecoyFunctions `
        -DetectDebugger `
        -FakeDotSourceMarkers `
        -OpaqueBranches `
        -ScriptblockDecoys `
        -LiteralPadding `
        -ReflectInvokeCommands `
        -StringCharArrayVault `
        -TryFinallyNoise `
        -AffineIntegerMask `
        -EventStub `
        -RemoveComments

    Write-Host $output
}
catch
{
    throw "An error occurred while trying to obfuscate the code: $_"
}

PowerShell Pro Obfuscator – Obfuskator i Wirtualizer dla PowerShell

Mój nowy projekt zaawansowanego obfuskatora i wirtualizera dla skryptów PowerShell o nazwie PowerShell Pro Obfuscator. Oferuje ogromną ilość opcji obfuskacyjnych, wirtualizację kodu, transformacje do tzw. finite-state automata, sprawdzenie integralności kodu (czyli self-crc, gdzie klucz weryfikacji jest używany jako klucz odszyfrowania w innych elementach obfuskacji), detekcję debuggowania i masę innych strategii utrudniających odtworzenie oryginalnego skryptu.

Dostępny jako obfuscator online, z osobnym klientem dla Windows i Linux (plus wersja CLI), oraz jako pakiety programistyczne dla Python, C#, JS, Rust, PHP.

Główne okienko obfuscatora

PowerShell Pro Obfuscator & Virtualizer

Opcje obfuskacji skryptów PowerShell

Opcje obfuskacji i wirtualizacji kodu w narzędziu PowerShell Pro Obfuscator.

Kod PowerShell po obfuskacji

Kod skryptu PowerShell po obfuskacji.

Wersja CLI, pozwalająca na szybką automatyzację

Wersja konsolowa obfuskatora dla PowerShell.

Zasada działania obfuskatora PowerShell Pro Obfuscator

Engine bazuje na zaawansowanym parsowaniu i transformowaniu drzewa AST skryptów PowerShell. Nie ma tu żadnych zawodnych RegExów. W dużym skrócie wygląda to tak:

Projekt przeszedł ogromną liczbę testów oraz wykorzystuje znane i mniej znane (jak FSA) metody obfuskacji oraz innowacyjne metody, które utrudniają odbudowę zobfuskowanych skryptów.