порядок загрузки dll

Discussion in 'WASM.BEGINNERS' started by emptyHook, Nov 12, 2010.

  1. emptyHook

    emptyHook New Member

    Blog Posts:
    0
    Joined:
    Sep 9, 2010
    Messages:
    63
    Помогите, совсем запутался. Скорее всего тема уже имеет место быть и 200 раз обсуждалась.

    Есть 0.ехе файл, он подгружает 1.dll в импорте которой прописана 2.dll c функцией f0. Которую мне и надо перехватить.

    Инжектюсь в 0.exe через ResumeThread и подгружаю свою dll, на данный момент ни 1.dll ни 2.dll в процессе нету.

    Перехватываю LoadLibrary/LdrLoadDll жду пока подгрузится 2.dll, но ее нет. Тупо ставлю таймер на срабатывание через каждые 100 мс - и мониторю через GetModuleHandle - через какое то время она появляется.

    Через что она грузится?
     
  2. Clerk

    Clerk Забанен

    Blog Posts:
    0
    Joined:
    Jan 4, 2008
    Messages:
    6,689
    Location:
    РБ, Могилёв
    emptyHook
    LdrpLoadImportModule().
     
  3. emptyHook

    emptyHook New Member

    Blog Posts:
    0
    Joined:
    Sep 9, 2010
    Messages:
    63
    Clerk

    Все остальное, я так понял, грузится через LdrLoadDll ?
     
  4. Clerk

    Clerk Забанен

    Blog Posts:
    0
    Joined:
    Jan 4, 2008
    Messages:
    6,689
    Location:
    РБ, Могилёв
    emptyHook
    Что значит остальное. Динамический импорт да.
     
  5. emptyHook

    emptyHook New Member

    Blog Posts:
    0
    Joined:
    Sep 9, 2010
    Messages:
    63
    Clerk

    Спасибо.
     
  6. Clerk

    Clerk Забанен

    Blog Posts:
    0
    Joined:
    Jan 4, 2008
    Messages:
    6,689
    Location:
    РБ, Могилёв
    Именно это и делает верификатор(Application Verifier). Ваш модуль должен быть провайдером. См. Avrf*.

    http://wasm.ru/forum/viewtopic.php?id=37208
     
  7. n0name

    n0name New Member

    Blog Posts:
    0
    Joined:
    Jun 5, 2004
    Messages:
    4,336
    Location:
    Russia
    можно в последних версиях еще заюзать apisetschema.dll.
    LdrpApplyFileNameRedirection() смотрит есть ли в .apiset запись о перенаправлении импорта.
     
  8. Clerk

    Clerk Забанен

    Blog Posts:
    0
    Joined:
    Jan 4, 2008
    Messages:
    6,689
    Location:
    РБ, Могилёв
    n0name
    Не универсально, так же как и LdrSetAppCompatDllRedirectionCallback(). Можно вручную изменить смещение в директории экспорта(на сколько помню нет проверок диапазона), прежде отследив момент проецирования секции.