Question:
You need to find at what address in the process the necessary pattern is located. How to implement such a signature search?
Answer:
Thanks to Mikhail Murugov for help. I already implemented it a long time ago, remembered my question and decided to share the code.
import pymem
import pymem.process
import re
pm = pymem.Pymem('process_name.exe')
# может быть длл-модуль или сам .exe
process_module = pymem.process.module_from_name(pm.process_handle, 'process_module.dll')
# берём байтики из нашего модуля
module_data = pm.read_bytes(process_module.lpBaseOfDll, process_module.SizeOfImage)
# ищем паттерн и получаем его адрес, прибавляя адрес паттерна к адресу, по которому расположено начало модуля
address = process_module.lpBaseOfDll + re.search(rb'\x90\x90\x90\x90', module_data).start()