Инъекция процессов Windows с помощью pymem
Я попытался использовать pymem для обработки инъекции в подпроцесс, который я создал. Код ниже:
from pymem import Pymem
import os
import subprocess
svc = subprocess.Popen(['svchost.exe'])
pid = svc.pid
print("process id is: ", pid)
pm = Pymem(pid)
pm.inject_python_interpreter()
shellcode = """
import tkinter as tk
mn = tk.Tk()
mn.mainloop()
"""
pm.inject_python_shellcode(shellcode)
Я попробовал запустить код, указанный выше ^, но это не сработало. ошибка, которую я получил, выглядит следующим образом:
process id is: 7300
Traceback (most recent call last):
File "C:\Users\yallah\Documents\shel.py", line 28, in <module>
pm.inject_python_interpreter()
File "C:\Users\yallah\AppData\Local\Programs\Python\Python311\Lib\site-packages\pymem\__init__.py", line 124, in inject_python_interpreter
self.start_thread(py_initialize_ex, param_addr)
File "C:\Users\yallah\AppData\Local\Programs\Python\Python311\Lib\site-packages\pymem\__init__.py", line 191, in start_thread
pymem.logger.debug('New thread_id: 0x%08x' % thread_h)
~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
TypeError: %x format: an integer is required, not NoneType
Без использования целого числа все работает нормально. Однако мне нужно указать идентификатор порожденного процесса. Есть предложения?