Тоже стало интересно. Решил глянуть.
Искал так.
1 поиск 4 байта неизвестное
2 умер отсеил как увеличилось
3 воскрес отсеил как уменьшилось
4 побегал туда-сюда. Не изменилось.
5 умер увеличилось. Ну и тд.
В итоге нашёлся адресс. 0=жив; 6-7=мёртв.
Ну а дальше всё просто. Бряк на запись. При смерти срабатывает 2 инструкции. Беру ту что выше стоит по коду
mov [esi+000000D0],00000006
Если просто занопить то ни чё не выйдет.
Ставлю трейс. Выхожу из кола.
728F2DBD - mov ecx,[esi+000000D0]
728F2DC3 - cmp ecx,09
728F2DC6 - je 728F365D
728F2DCC - cmp ecx,06
728F2DCF - je 728F365D
728F2DD5 - cmp ecx,07
728F2DD8 - jne 728F2DEC
728F2DDA - sub esp,08
728F2DDD - mov ecx,esi
728F2DDF - call 728F3700--вышел из него
728F2DE4 - pop edi
728F2DE5 - pop esi
Что-то пишется в есх.
3 сравнения с перепрыгивание вызова но 2 из них далеко прыгают.
Меняю jne 728F2DEC на безусловный.
Всё ГГ не умирает. По крайней мере от мин.(дальше проходить нет желания чтоб проверить на чём то другом)
P.S. Если взять esi как начало структуры от этой инструкции mov ecx,[esi+000000D0]
поменять на единичку esi+4. То включится игровое бессмертие ГГ.