![]() |
вот и выросло поколение, которое не умеет работать и думать памятью...
Вобщем надо сменить реализацию хука. Спертые байты переть не по пяткаку, а целыми командами с помощью дизасма длин(учитывая стабильность функции можно просто руками забить длины) и в надежде не словить в начале функции относительных переходов. Переписываем команды на новое место/ originalWordCall: ; тут спертые первые байты jmp originalFuncNotSplicedCodeStart ; адрес с которого в оригинале идут нетронутые байты В момент хука высчитываем 4 байта перехода для команды call, чтобы попасть на originalWordCall и меняем их на лету, либо юзаем указатели на функции(хз есть ли они в си) и без всякого гемора Код:
void (*originalWordFunc)(); |
Цитата:
поищу, если камуто не тяжело сделать пример, буду благодарен |
maybe up.
Ктото делал подобное? |
| Время: 22:28 |