py-sync-comm-libs/env/Lib/site-packages/ordlookup/__init__.py

35 lines
784 B
Python
Raw Normal View History

2024-04-25 09:12:48 +08:00
from . import ws2_32
from . import oleaut32
"""
A small module for keeping a database of ordinal to symbol
mappings for DLLs which frequently get linked without symbolic
infoz.
"""
ords = {
b"ws2_32.dll": ws2_32.ord_names,
b"wsock32.dll": ws2_32.ord_names,
b"oleaut32.dll": oleaut32.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