Module refinery.units.obfuscation.js.getattr
Expand source code Browse git
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import re
from refinery.lib.patterns import formats
from refinery.units.obfuscation import Deobfuscator
class deob_js_getattr(Deobfuscator):
"""
JavaScript deobfuscator to turn `WScript["CreateObject"]` into `WScript.CreateObject`.
"""
def deobfuscate(self, data):
def dottify(match):
name = match[2][1:-1]
if name.isidentifier():
return F'{match[1]}.{name}'
return match[0]
return re.sub(FR'(\w+)\[({formats.string})\]', dottify, data)
Classes
class deob_js_getattr
-
JavaScript deobfuscator to turn
WScript["CreateObject"]
intoWScript.CreateObject
.Expand source code Browse git
class deob_js_getattr(Deobfuscator): """ JavaScript deobfuscator to turn `WScript["CreateObject"]` into `WScript.CreateObject`. """ def deobfuscate(self, data): def dottify(match): name = match[2][1:-1] if name.isidentifier(): return F'{match[1]}.{name}' return match[0] return re.sub(FR'(\w+)\[({formats.string})\]', dottify, data)
Ancestors
Class variables
var required_dependencies
var optional_dependencies
Methods
def deobfuscate(self, data)
-
Expand source code Browse git
def deobfuscate(self, data): def dottify(match): name = match[2][1:-1] if name.isidentifier(): return F'{match[1]}.{name}' return match[0] return re.sub(FR'(\w+)\[({formats.string})\]', dottify, data)
Inherited members