fixes invalid ordlookup function reference, adds compatibility for py veunicode strings and nd LPCSTR ord cast

This commit is contained in:
rkbennett
2023-01-07 11:14:05 -06:00
parent fc3dbea6c0
commit a43f405445
2 changed files with 6 additions and 3 deletions
+5 -2
View File
@@ -768,9 +768,12 @@ class MemoryModule(pe.PE):
funcref = cast(funcrefaddr, PFARPROC)
if entry_imports[j].import_by_ordinal == True:
importordinal= entry_imports[j].ordinal.decode('utf-8')
if 'decode' in dir(entry_imports[j].ordinal):
importordinal= entry_imports[j].ordinal.decode('utf-8')
else:
importordinal= entry_imports[j].ordinal
self.dbg('Found import ordinal entry, %s', cast(importordinal, LPCSTR))
funcref.contents = GetProcAddress(hmod, importordinal)
funcref.contents = GetProcAddress(hmod, cast(importordinal, LPCSTR))
else:
importname= entry_imports[j].name.decode('utf-8')
self.dbg('Found import by name entry %s , at address 0x%x', importname, entry_imports[j].address)
+1 -1
View File
@@ -38,7 +38,7 @@ from hashlib import md5
import functools
import copy as copymod
import pythonmemorymodule.ordlookup
import pythonmemorymodule.ordlookup as ordlookup
codecs.register_error("backslashreplace_", codecs.lookup_error("backslashreplace"))