我有一个恶意软件样本来分析学校项目。有效载荷通过每4个字节(DWORD)与0xBABEBABE进行异或编码来编码。我知道,因为XORing前4个字节给了我0x4D5A9000(MZ标头)。我想要一个可以自动化该过程的脚本,以便我可以解码该文件。
这是我到目前为止所尝试的内容:
#if DEBUG
[assembly: XmlnsDefinition("debug-mode", "TestingAlternateContent")]
#endif
但这仅适用于1byte数据。
谢谢
答案 0 :(得分:1)
我已经解决了,但如果有人在某天遇到这样的问题,这可能会有所帮助:)
import struct
from functools import partial
XOR_key = 0xbabebabe
XORed_data = bytearray('')
with open('binaryFile.bin','rb') as fileToXOR:
for chunk in iter(partial(fileToXOR.read, 4), ''):
data = struct.unpack('I', chunk)[0]
if data != 0:
result = data ^ XOR_key
XORed_data += bytearray(struct.pack("I", result))
else:
XORed_data += bytearray("\x00\x00\x00\x00")
with open('decrypted_file.bin','wb') as XORedFile:
XORedFile.write(XORed_data)