В целях понять лутчше глубины системного программирования в винде.С грех пополам накропал примитивный загрузчик PE файлов(спасибо добрым людям ),с возможностью загрузки файлов по их базе.Ради интереса пробовал запускать разные файлы из папки винды.И заметил некоторую странную особенность - некоторые из них просто себя убивают(калькулятор),а некоторые ещё себя перезапускают(эксплорер,вордпад).Это почему так?Антиотладочные фичи?
_nic слова "крипторы" и "антиотладочные приемы" не о чем не говорят? Хотя может быть дело в примитивном загрузчике...
Судя по Ольке.Вызывается GetModuleHandleW,а потом ExitProcess.Я понимаю что GetModuleHandleW обламывается из за не пропатченного PEB.Но у меня все ещё есть вопрос,который я выше задавал.Это антиотладочная фича или просто обработка исключительной ситуации? ЗЫ:как можно в ольке глянуть с чем сравнивается то что было получено через GetModuleHandle?
Это не фича, это баг в вашем загрузчике Код (Text): mov ecx, NEW IMAGE_BASE MOV EAX,DWORD PTR FS:[18h] MOV EAX,DWORD PTR DS:[EAX+30h] MOV DWORD PTR DS:[EAX+8h], ecx MOV EAX,DWORD PTR FS:[18h] MOV EAX,DWORD PTR DS:[EAX+30h] MOV EAX,DWORD PTR DS:[EAX+0Ch] ADD EAX,0Ch MOV EAX,DWORD PTR DS:[EAX] MOV [EAX+18h],ECX
int main() { __asm { mov ecx, NEW IMAGE_BASE MOV EAX,DWORD PTR FS:[18h] MOV EAX,DWORD PTR DS:[EAX+30h] MOV DWORD PTR DS:[EAX+8h], ecx MOV EAX,DWORD PTR FS:[18h] MOV EAX,DWORD PTR DS:[EAX+30h] MOV EAX,DWORD PTR DS:[EAX+0Ch] ADD EAX,0Ch MOV EAX,DWORD PTR DS:[EAX] MOV [EAX+18h],ECX } }