Шприц для bsd или функции на игле

       

>>> Врезка точки останова


Отладчики могут устанавливать программные точки останова на библиотечные функции, внедряя в их начало команду INT03h (CCh). В этом случае наш перехватчик не сможет распознать пролог, что не есть хорошо.

Рисунок 6 стандартный пролог функции lchmod, искаженной программной точной останова (CCh), установленной отладчиком

Выход очевиден — сравнивать только 2й, 3й, 4й и 5й байты пролога, игнорируя 1й байт. А что делать с точкой останова? Если записать call поверх нее, то она будет затерта и отладчик потеряет контроль за функцией, что в некоторых случаях неприемлемо и тогда необходимо внедряться со 2го байта, но в этом случае команда call полностью затрет SUB ESP,XXh и XXh придется сохранять где-то в другом месте.



Содержание раздела