Files
monoxgas-sRDI/lib/Python/FunctionToHash.py
T
Nick Landers d19ff41682 Initial Code
2017-07-28 14:00:59 -06:00

43 lines
993 B
Python

import sys
ror = lambda val, r_bits, max_bits: \
((val & (2**max_bits-1)) >> r_bits%max_bits) | \
(val << (max_bits-(r_bits%max_bits)) & (2**max_bits-1))
if len(sys.argv) != 2 and len(sys.argv) != 3:
print("\nUsage:\nFunctionToHash.py [Module] [Function]\nFunctionToHash.py kernel32.dll CreateProcessA\n\nOR\n\nFunctionToHash.py [Function]\nFunctionToHash.py ExportedFunction")
exit()
if len(sys.argv) == 3:
module = sys.argv[1].upper().encode('UTF-16LE') + b'\x00\x00'
function = sys.argv[2].encode() + b'\x00'
functionHash = 0
for b in function:
functionHash = ror(functionHash, 13, 32)
functionHash += b
moduleHash = 0
for b in module:
moduleHash = ror(moduleHash, 13, 32)
moduleHash += b
functionHash += moduleHash
if functionHash > 0xFFFFFFFF: functionHash -= 0x100000000
else:
function = sys.argv[1].encode() + b'\x00'
functionHash = 0
for b in function:
functionHash = ror(functionHash, 13, 32)
functionHash += b
print(hex(functionHash))