iirc 你不能从常量散列到名称,但散列导出的名称将生成的散列与常量进行比较
你可以在这里看到讨论和实现
使用以下讨论的翻录 python 实现
:\>cat foo.py
def rol32(val, amt):
return ( (val << amt) & 0xffffffff ) | ( ( val >> (32 - amt) ) & 0xffffffff )
def ror32(val, amt):
return ( (val >> amt) & 0xffffffff ) | ( ( val << (32 - amt) ) & 0xffffffff )
def add32(val, amt):
return (val + amt) & 0xffffffff
def hash_export(name):
result = 0
index = 0
while(index < len(name)):
result = add32(ror32(result, 13), ord(name[index]) & 0xff)
index += 1
return result
print hex(hash_export("LoadLibraryA"))
:\>python foo.py
0xec0e4e8eL