Поиск адреса в памяти по паттерну в pymem
Начну по порядку, по сколько вероятнее всего я неверно назову что то в кратком варианте: Недавно начал изучать операции с памятью процессов, то есть как устроены External читы. Для начала я написал простенькую "игру" на C# где есть переменная здоровья, которая изменяется после нажатия на 15 - с помощью Cheat Engine я нашел адрес значение этой переменной, но думаю как всем известно после перезапуска будет происходить рандомизация адресного пространства и старый адрес уже будет неверным - как я могу получить оффсет на это значение, что не будет меняться после перезапуска?
Дополнительно: Я нашел паттерн, но не знаю что с ним делать, если это возможно сделать как то с ним - я бы хотел посмотреть пример с помощью pymem или хотя бы что мне делать в теории
А если кратко: Как найти адрес жизни игрока, который не будет меняться после перезапуска? А если еще и с примером: Для CS:GO имеется HazeDumper - который в итоге своей работы выдает "вечные" адреса -https://github.com/frk1/hazedumper/blob/master/csgo.json , мне же не нужно создать собственный дампер, мне нужно узнать как получить подобный адрес через CheatEngine и использовать в Pymem
Первый запуск:
8E 08 E4 02 0D 00 00 00 0D 00 00 00 00 00 00 00 # Повтор тут
28 00 00 00 00 00 00 00 A0 F2 0F 01 94 F2 0F 01 # Тут 40 жизней (28 00 00)
36 F0 66 69 88 C6 2C 01 E8 F2 0F 01 DA 22 67 69
Второй запуск:
8E 08 18 01 0D 00 00 00 0D 00 00 00 00 00 00 00 # Повтор тут
28 00 00 00 00 00 00 00 40 ED 9E 00 34 ED 9E 00 # И тут 40 жизней (28 00 00)
36 F0 66 69 78 DD E9 00 88 ED 9E 00 DA 22 67 69
Сам повтор > 0D 00 00 00 0D 00 00 00 00 00 00 00
Код игры на C#:
static void Main(string[] args)
{
int health = 100;
while (true)
{
Console.WriteLine("Player heath is " +health);
Console.ReadKey();
health -= 15;
if (health <= 0)
{
Console.WriteLine("Player is dead!");
break;
}
}
}