MCPcopy Create free account
hub / github.com/ELMERIKH/PyinMemoryPE / free_library

Method free_library

pythonmemorymodule/__init__.py:876–893  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

874
875
876 def free_library(self):
877 self.dbg("Freeing dll")
878 if not bool(self.pythonmemorymodule): return
879 pmodule = pointer(self.pythonmemorymodule)
880 if self.pythonmemorymodule.contents.initialized != 0:
881 DllEntry = DllEntryProc(self.pythonmemorymodule.contents.codeBase + self.pythonmemorymodule.contents.headers.contents.OptionalHeader.AddressOfEntryPoint)
882 DllEntry(cast(self.pythonmemorymodule.contents.codeBase, HINSTANCE), DLL_PROCESS_DETACH, 0)
883 pmodule.contents.initialized = 0
884 if bool(self.pythonmemorymodule.contents.modules) and self.pythonmemorymodule.contents.numModules > 0:
885 for i in range(1, self.pythonmemorymodule.contents.numModules):
886 if self.pythonmemorymodule.contents.modules[i] != HANDLE(INVALID_HANDLE_VALUE):
887 FreeLibrary(self.pythonmemorymodule.contents.modules[i])
888
889 if bool(self._codebaseaddr):
890 VirtualFree(self._codebaseaddr, 0, MEM_RELEASE)
891
892 HeapFree(GetProcessHeap(), 0, self.pythonmemorymodule)
893 self.close()
894
895 def free_exe(self):
896 self.dbg("Freeing exe")

Callers 1

execPEMethod · 0.95

Calls 4

dbgMethod · 0.95
FreeLibraryFunction · 0.85
VirtualFreeFunction · 0.85
closeMethod · 0.45

Tested by

no test coverage detected