3 log = logging.getLogger(
'loader_common')
4 hnd = logging.StreamHandler()
5 hnd.setFormatter(logging.Formatter(
"[%(levelname)s]: %(message)s"))
7 log.setLevel(logging.CRITICAL)
11 dn = libname.split(
'.')[0]
12 if type(libfunc) == str:
13 return "%s_%s" % (dn, libfunc)
15 return str(dn), libfunc
20 def __init__(self, lib_base_ad=0x71111000, **kargs):
31 name = name.lower().strip(
' ')
33 log.debug(
'warning adding .dll to modulename')
41 log.debug(
'new lib %s 0x%x', name, ad)
50 if not libad
in self.name2off.values():
51 raise ValueError(
'unknown lib base!', hex(libad))
70 name_inv = dict([(x[1], x[0])
for x
in self.name2off.items()])
73 self.
fad2info[ad] = libad, imp_ord_or_name
80 for i, x
in enumerate(all_ads[:-1]):
81 if x
is None or all_ads[i + 1]
is None:
83 if x + 4 != all_ads[i + 1]:
def canon_libname_libfunc