mirror of
https://github.com/monoxgas/sRDI
synced 2026-06-06 16:14:36 +00:00
43 lines
993 B
Python
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))
|