в Висте в игрушках есть какойто не понятный обработчик int 3 Если взять какую нибудь игрушку, напр. \Program Files\Microsoft Games\Chess\Chess.exe то там есть такой код: .01040741: int 3 .01040742: push ebp .01040743: int 3 .01040744: mov eax,[0112B144] .01040749: xor eax,ebp .0104074B: mov [ebp][-04],eax .0104074E: mov eax,[ebp][08] .01040751: push ebx .01040752: mov ebx,[ebp][0C] .01040755: push esi .01040756: mov esi,[ebp][10] .01040759: mov [ebp][-00000218],eax .0104075F: mov eax,[ebp][14] .01040762: push eax .01040763: mov [ebp][-00000214],ebx .01040769: mov [ebp][-0000021C],eax .0104076F: push ebp .01040770: int 3 .01040771: push ebp .01040772: int 3 .01040773: push ebp .01040774: int 3 ....................... Который вызывается так: .01037A90: push d,[0112B0FC] .01037A96: push d,[0112B0F8] .01037A9C: push d,[0112B104] .01037AA2: push d,[0112B100] .01037AA8: push d,[ebp][-00000458] .01037AAE: push ebx .01037AAF: push ebx .01037AB0: push d,[0113AE98] .01037AB6: call .001040741 -------------------- Вызов мистической функции .01037ABB: xor eax,eax Так вот если (под любым дебагером) поставить бряк по адресу напр. 1037AAE то он сработает нормально, если же войти в функцию 001040741 то там уже начинается чертовщина какаято. Дебагер не останавливается на int 3 внутри функции а вместо этого каждый int 3 выполняет какуюто часть кода. Первый похоже на push ebp mov ebp, esp sub esp, 200h последующие int3 тоже делают чтото своё. Это всё очень похоже на обработчик исключений, и там действительно установлен SEH. Но вопервых у дебагера приоритет выше, а во вторых я даже проверил - он не вызывается. Как они это всё делают !!! ??? !!! Для чего ??? защита от чегото ??? И еще, я заметил что в файлах где встречается такая бесовщина присутствует секция с названием .pexe (первая секция). Конечно может это просто совпадение а может и нет. Кто знает чтонить об этом ? Как сделать самому такое ? МИСТИКА ! :-O
Это не наномиты (не совсем). я тут поковырял ntoskrnl.exe и скажу точно что это новая фишка Висты. ntoskrnl.exe при загрузке имеджа ищет секцию которая называется .pexe и если находит то раскриртовывает её. затем Устанавливает для адресов записсанных в секции свои обработчики прерываний. Сделано это скорее всего для скрытия кода, потому как это явно скорости не прибавит . На днях попробую подебагить.
madmat хм.... можно самому попробовать заюзать эту фичу... хотя совместимости я думаю она не добавит. Нароешь что напиши не скрывай, можешь даже статейку.