Module refinery.units.malware.n40
Expand source code Browse git
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from base64 import b16decode
from binascii import Error
from refinery import Unit, Arg
from refinery.units.blockwise.xor import xor
class n40(Unit):
"""
Decrypts hex-encoded strings in various latin-american banker families, including N40.
"""
def __init__(self, key: Arg(help='Decryption key.')):
...
def process(self, data):
try:
data = b16decode(data, casefold=True)
except Error:
self.log_info('Input was not hex-encoded; ignoring this step.')
mask = data[1:] | xor(self.args.key) | bytearray
return bytearray(0xFF + b - a if b <= a else b - a for a, b in zip(data, mask))
Classes
class n40 (key)
-
Decrypts hex-encoded strings in various latin-american banker families, including N40.
Expand source code Browse git
class n40(Unit): """ Decrypts hex-encoded strings in various latin-american banker families, including N40. """ def __init__(self, key: Arg(help='Decryption key.')): ... def process(self, data): try: data = b16decode(data, casefold=True) except Error: self.log_info('Input was not hex-encoded; ignoring this step.') mask = data[1:] | xor(self.args.key) | bytearray return bytearray(0xFF + b - a if b <= a else b - a for a, b in zip(data, mask))
Ancestors
Class variables
var required_dependencies
var optional_dependencies
Inherited members