Подскажите по загрузке и выполнению PE файлов

Тема в разделе "WASM.BEGINNERS", создана пользователем _nic, 14 дек 2010.

  1. _nic

    _nic New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2007
    Сообщения:
    372
    В целях понять лутчше глубины системного программирования в винде.С грех пополам накропал примитивный загрузчик PE файлов(спасибо добрым людям :) ),с возможностью загрузки файлов по их базе.Ради интереса пробовал запускать разные файлы из папки винды.И заметил некоторую странную особенность - некоторые из них просто себя убивают(калькулятор),а некоторые ещё себя перезапускают(эксплорер,вордпад).Это почему так?Антиотладочные фичи?
     
  2. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.890
    _nic
    слова "крипторы" и "антиотладочные приемы" не о чем не говорят? Хотя может быть дело в примитивном загрузчике...
     
  3. _nic

    _nic New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2007
    Сообщения:
    372
    Судя по Ольке.Вызывается GetModuleHandleW,а потом ExitProcess.Я понимаю что GetModuleHandleW обламывается из за не пропатченного PEB.Но у меня все ещё есть вопрос,который я выше задавал.Это антиотладочная фича или просто обработка исключительной ситуации?
    ЗЫ:как можно в ольке глянуть с чем сравнивается то что было получено через GetModuleHandle?
     
  4. Flint_ta

    Flint_ta New Member

    Публикаций:
    0
    Регистрация:
    25 май 2008
    Сообщения:
    312
    Это не фича, это баг в вашем загрузчике

    Код (Text):
    1. mov ecx, NEW IMAGE_BASE
    2. MOV EAX,DWORD PTR FS:[18h]
    3. MOV EAX,DWORD PTR DS:[EAX+30h]
    4. MOV DWORD PTR DS:[EAX+8h], ecx
    5. MOV EAX,DWORD PTR FS:[18h]
    6. MOV EAX,DWORD PTR DS:[EAX+30h]
    7. MOV EAX,DWORD PTR DS:[EAX+0Ch]
    8. ADD EAX,0Ch
    9. MOV EAX,DWORD PTR DS:[EAX]
    10. MOV [EAX+18h],ECX
     
  5. _nic

    _nic New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2007
    Сообщения:
    372
    А можно на С ?
     
  6. fsd

    fsd New Member

    Публикаций:
    0
    Регистрация:
    4 июл 2010
    Сообщения:
    353
    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
    }
    }
     
  7. deLight

    deLight New Member

    Публикаций:
    0
    Регистрация:
    26 май 2008
    Сообщения:
    879
  8. newbie

    newbie New Member

    Публикаций:
    0
    Регистрация:
    2 дек 2008
    Сообщения:
    1.246
    fsd отжог :lol: