Global hook & Peb

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

  1. emptyHook

    emptyHook New Member

    Публикаций:
    0
    Регистрация:
    9 сен 2010
    Сообщения:
    63
    Почему при скрытии длл из peb слетает глобал хук?
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    потому что механизм хуков использует peb.
     
  3. emptyHook

    emptyHook New Member

    Публикаций:
    0
    Регистрация:
    9 сен 2010
    Сообщения:
    63
    а не подкинете линку где об этом можно подробнее почитать?
     
  4. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    В PEB длл не описаны.
     
  5. deLight

    deLight New Member

    Публикаций:
    0
    Регистрация:
    26 май 2008
    Сообщения:
    879
    Clerk
    ого. это какой-то хак?
    всмысле что-то связанное с vx ?
    а где описаны?
    отвечайте же!
     
  6. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    цензура
     
  7. emptyHook

    emptyHook New Member

    Публикаций:
    0
    Регистрация:
    9 сен 2010
    Сообщения:
    63
    http://www.wasm.ru/article.php?article=fwb

    внизу пример

    dllinject.rar (2 кб) Пример инжекат dll и скрытия ее из PEB.

    в нем кусок

    Код (Text):
    1. HideFromPeb: ; hInstance
    2.   push     esi
    3.   push     ebx
    4.   mov      esi, [esp+0Ch]
    5.   mov      eax, [fs:30h]
    6.   mov      eax, [eax+PEB.LoaderData]
    7.   add      eax, PEB_LDR_DATA.InLoadOrderModuleList
    8. @@:
    9.   mov      eax, [eax+LDR_MODULE.InLoadOrderModuleList.Flink]
    10.   cmp      esi, [eax+LDR_MODULE.BaseAddress]
    11.   jnz      @B
    12.   mov      esi, [eax+LIST_ENTRY.Flink]
    13.   mov      ebx, [eax+LIST_ENTRY.Blink]
    14.   mov      [ebx+LIST_ENTRY.Flink], esi
    15.   mov      esi, [eax+LIST_ENTRY.Blink]
    16.   mov      ebx, [eax+LIST_ENTRY.Flink]
    17.   mov      [ebx+LIST_ENTRY.Blink], esi
    18.   lea      eax, [eax+LDR_MODULE.InMemoryOrderModuleList]
    19.   mov      esi, [eax+LIST_ENTRY.Flink]
    20.   mov      ebx, [eax+LIST_ENTRY.Blink]
    21.   mov      [ebx+LIST_ENTRY.Flink], esi
    22.   mov      esi, [eax+LIST_ENTRY.Blink]
    23.   mov      ebx, [eax+LIST_ENTRY.Flink]
    24.   mov      [ebx+LIST_ENTRY.Blink], esi
    25.   pop      ebx
    26.   pop      esi
    27.   ret
    Через PEB получаем список модулей и удаляем оттуда линку.

    Тему можно удалить, уже сам разобрался.
     
  8. deLight

    deLight New Member

    Публикаций:
    0
    Регистрация:
    26 май 2008
    Сообщения:
    879
    emptyHook
    Угу, там перед вызовом nt-сервиса api забирает имя модуля посредством GetModuleFileNameW.
    Судя по всему если надо захучить можно сделать самостоятельно посредством сервиса, туда передается
    непосредственно имя на стек.
     
  9. emptyHook

    emptyHook New Member

    Публикаций:
    0
    Регистрация:
    9 сен 2010
    Сообщения:
    63
    deLight

    спасибо за внятный и адекватный ответ.