Что такое трассировка и с чем её едят Вы можете узнать и из
великого_и_ужасного. Основой для моих изысканий была статья Криса Касперского
"Трассировка или игры в прятки" в журнале
"Хакер". Все описываемые в статье техники отслеживания трассировки прекрасно работают на Windows 7. В ходе тестирования примеры для Win 7 пришлось пересобирать, т.к. собранные для Win XP, не запускались(( Опции сборки для всех примеров одинаковы.
Первоначальные ключи компилятора:
/c /Ox /Os /G6. Начнем с того что новый компилятор не поддерживает ключи /G{3|4|5|6|7|8}, поддерживаются только ключи /G{1|2} для платформы Itanium 1|2. Больше вопросов у компилятора не возникло. (Опции компиляции в итоге:
/c /Ox /O.
Перейдем к линкеру. Изначальные опции линкования:
/ALIGN:16 /DRIVER /FIXED /SUBSYSTEM:CONSOLE KERNEL32.LIB USER32.lib. При попытке сборки линкер наконец начал собирать драйвер, а не обыкновенный PE (см. ключ /DRIVER). Убираем это ключ. Линкер выдает "Warning LNK4108 : параметр /ALIGN указан без параметра /DRIVER; образ нельзя запустить". При этом пример собирается и нормально запускается. Вот такие чудеса;)
В ходе экспериментов замечено, что OllyDBG2.0 на
PUSHFD в любом виде не ведется, что конечно не может не радовать!