1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
from . import oleaut32, ws2_32, wsock32
"""
A small module containing a database of ordinal to symbol mappings for DLLs
which frequently get linked without symbolic information.
"""
ords = {
b"oleaut32.dll": oleaut32.ord_names,
b"ws2_32.dll": ws2_32.ord_names,
b"wsock32.dll": wsock32.ord_names,
}
def formatOrdString(ord_val):
return "ord{}".format(ord_val).encode()
def ordLookup(libname, ord_val, make_name=False):
"""
Lookup a name for the given ordinal if it's in our
database.
"""
names = ords.get(libname.lower())
if names is None:
if make_name is True:
return formatOrdString(ord_val)
return None
name = names.get(ord_val)
if name is None:
return formatOrdString(ord_val)
return name
|