вот и выросло поколение, которое не умеет работать и думать памятью...
Вобщем надо сменить реализацию хука. Спертые байты переть не по пяткаку, а целыми командами с помощью дизасма длин(учитывая стабильность функции можно просто руками забить длины) и в надежде не словить в начале функции относительных переходов. Переписываем команды на новое место/
originalWordCall: ; тут спертые первые байты
jmp originalFuncNotSplicedCodeStart ; адрес с которого в оригинале идут нетронутые байты
В момент хука высчитываем 4 байта перехода для команды call, чтобы попасть на originalWordCall и меняем их на лету, либо юзаем указатели на функции(хз есть ли они в си) и без всякого гемора