Module refinery.units.obfuscation.ps1.uncurly
Expand source code Browse git
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import re
from refinery.units.obfuscation import Deobfuscator
from refinery.units.obfuscation.ps1 import Ps1StringLiterals
class deob_ps1_uncurly(Deobfuscator):
"""
PowerShell deobfuscation that removes superfluous curly braces around variable
names that do not require it, i.e. `${variable}` is transformed to just `$variable`.
"""
_SENTINEL = re.compile(R'\$\{(\w+)\}')
def deobfuscate(self, data):
strlit = Ps1StringLiterals(data)
@strlit.outside
def strip(m): return F'${m[1]}'
return self._SENTINEL.sub(strip, data)
Classes
class deob_ps1_uncurly
-
PowerShell deobfuscation that removes superfluous curly braces around variable names that do not require it, i.e.
${variable}
is transformed to just$variable
.Expand source code Browse git
class deob_ps1_uncurly(Deobfuscator): """ PowerShell deobfuscation that removes superfluous curly braces around variable names that do not require it, i.e. `${variable}` is transformed to just `$variable`. """ _SENTINEL = re.compile(R'\$\{(\w+)\}') def deobfuscate(self, data): strlit = Ps1StringLiterals(data) @strlit.outside def strip(m): return F'${m[1]}' return self._SENTINEL.sub(strip, data)
Ancestors
Class variables
var required_dependencies
var optional_dependencies
Methods
def deobfuscate(self, data)
-
Expand source code Browse git
def deobfuscate(self, data): strlit = Ps1StringLiterals(data) @strlit.outside def strip(m): return F'${m[1]}' return self._SENTINEL.sub(strip, data)
Inherited members