Анализировал, закономерности есть вот только те адреса у которых есть некая закономерность обращаются к одной инструкции которая работает с 100500 адресами, поинтер не дает ничего . Принцип был такой инструкция [ecx+04],edx работает с over 9000 адресов(срабатывает при нанесении урона) ищем адрес жизней,нашли, ставим бряк на запись на адрес. Смотрим стек, путем анализа выясняется что по смещению [esp+14] находится некий адрес(или указатель) который указывает по кому наносится урон. То есть если написать фильтр newmem: cmp [esp+14],[наш адрес] je player jmp original code то фильтр сработает и после прыжка на player останется только один адрес(наших жизней). Но вот только разобраться с адресом [наш адрес] не могу, так как инструкция отвечающая за него работает с 100500 адресами опять же.... Я так понял что там огромное разветвление(огромнейшее) путем анализа кода. Как в этой куче мусора(из адресов) найти что либо не представляю. Я все это к чему, может быть тот кому интересно скачает Painkiller поломаем вместе? Взломал очень много игр(и painkiller тоже взломал). Но вот логику painkiller понять не могу. Давайте взломаем вместе . Вот моря наработка скрипт на god+1hit(работает на всех картах и со всеми боссами) [ENABLE]//code from here to '[DISABLE]' will be used to enable the cheatalloc(newmem,2048)label(returnhere)label(orig)label(cont)label(cont2)label(ss)label(ss2)label(ppz)label(ppz2)newmem: //this is allocated memory, you have read,write,execute accessmov [ppz],edimov [ppz2],ediadd [ppz],60cmp [ppz],eaxje cont //глобальный фильтр на отсев игрока и враговadd [ppz2],58cmp [ppz2],eaxje cont2jmp origcont:cmp esi,106je sscmp esi,FE //локальный фильтр отделения врагов от игрокаje ss2jmp origcont2:cmp esi,106je ss2cmp esi,FD //локальный фильтр отделения боссов от игрокаje ss2jmp origss:mov [ebx+04],(float)100pop ebxpop ecxjmp returnheress2:mov [ebx+04],0pop ebxpop ecxjmp returnhereorig:mov [ebx+04],edxpop ebxpop ecxjmp returnhereppz:dd 0ppz2:dd 0"Engine.dll"+1510F3:jmp newmemreturnhere: [DISABLE]//code from here till the end of the code will be used to disable the cheatdealloc(newmem)"Engine.dll"+1510F3:mov [ebx+04],edxpop ebxpop ecx//Alt: db 89 53 04 5B 59