我一直在反编译一段我认为是恶意软件的代码,我正试图弄清楚它的作用。它搜索特定的窗口标题并使用该窗口的名称来解码其其余指令。我试过通过它运行常见窗口标题列表(记事本、Document1 - Microsoft Word 等)以得出正确的窗口标题。
我重写了它在 Python 中使用的哈希:
def encode( inStr ):
a = 0x133F00D
i = 0
for j in inStr:
temp = ord(j)*8 * ((i << 0xC)+1)
a = a^ temp
i = i + 1
print hex(a)
我正在寻找一个给我值 0x2227205 的字符串。看hash函数,貌似是单向的,有冲突。找到它试图抓取的窗口标题的好方法是什么?恶意网络预防站点上是否有常见窗口标题的列表?我应该进行字典攻击吗?最好的方法是什么?
请您参考如下方法:
如果窗口标题足够长,您将无法通过暴力攻击找到它,甚至可能无法帮助您找到与散列匹配的标题。恶意软件可能只是检查是否有它自己的另一个实例。
我建议在带有调试器的虚拟机或更好的专用计算机(可能没有网络,或者假网络来检查事件)中运行恶意软件。然后,您可以检查是否可以在其中找到与哈希匹配的窗口。
如果您坚持使用该 python 代码,请确保您具有与恶意软件中相同的溢出行为(尤其是相同长度的整数)。
