Powershell: De-Obsfuccation
Hallo,
wenn dieser Code ausgeführt wird:
ist das Ergebnis 'seT-varIAblE'
Nun sollen in einem komplexen Code diese Formate durch den Klartext ersetzt werden:
Der Regex findet die Format-Ausdrücke in Klammern, aber es wird nicht in den Klartext gewandelt.
Danach sollte ein Replace-Befehl ausgeführt werden:
Wie könnte das gehen?
wenn dieser Code ausgeführt wird:
('{2}{0}{1}{3}'-f 'ar','IA','seT-v','blE')
ist das Ergebnis 'seT-varIAblE'
Nun sollen in einem komplexen Code diese Formate durch den Klartext ersetzt werden:
$Tx = "qwe.('{2}{0}{1}{3}'-f 'ar','IA','seT-v','blE')
tJ4 ('{0}{3}{1}{2}' -f 'sys','C','onvERt','tem.') asd ) ;"
$re = $Tx | select-string -Pattern '\(.*?-f.*?\)' -AllMatches
foreach ($rr in $re.Matches) {
invoke-command -scriptblock { $rr.value }
}
Der Regex findet die Format-Ausdrücke in Klammern, aber es wird nicht in den Klartext gewandelt.
Danach sollte ein Replace-Befehl ausgeführt werden:
$Tx = $Tx.replace("('{2}{0}{1}{3}'-f 'ar','IA','seT-v','blE')", "set-variable")
Wie könnte das gehen?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 579418
Url: https://administrator.de/contentid/579418
Ausgedruckt am: 25.11.2024 um 00:11 Uhr
2 Kommentare
Neuester Kommentar
Wie könnte das gehen?
Mit Invoke-Expression $Tx = "qwe.('{2}{0}{1}{3}'-f 'ar','IA','seT-v','blE')
tJ4 ('{0}{3}{1}{2}' -f 'sys','C','onvERt','tem.') asd ) ;"
$result = [regex]::replace($Tx,'(?is)\(.*?-f.*?\)',{param($m) iex $m.Value})
$result