На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
! Перед отправкой сообщения внимательно прочтите правила раздела!!!
1. Запрещается обсуждать написание вирусов, троянов и других вредоносных программ!
2. Помните, что у нас есть FAQ раздела Assembler и Полезные ссылки. Посмотрите, возможно, там уже имеется решение вашего вопроса.

3. Настоятельно рекомендуем обратить особое внимание на правила форума, которые нарушаются чаще всего:
  3.1. Заголовок темы должен кратко отражать её суть. Темы с заголовками типа "Срочно помогите!" или "Ассемблер" будут отправляться в Корзину для мусора.
  3.2. Исходники программ обязательно выделяйте тегами [code]...[/code] (одиночные инструкции можно не выделять).
  3.3. Нежелательно поднимать старые темы (не обновлявшиеся более года) без веской на то причины.

Не забывайте также про главные Правила форума!

Добро пожаловать и приятного вам общения!!! ;)
 
Модераторы: Jin X, Qraizer
  
> Как получить список системных хуков на клавиатуру, Как получить список системных хуков на клавиатуру.
    Всем привет. У меня вопрос к гуру системного программирования.
    Если способ узнать цепочку системных (глобальных) хуков на клавиатуру или хотябы хук самого верхнего уровня, то есть хук приложения которое первое выполняеться из цепочки хуков. Пробовал через DebugProc но она отлавилвает сообщения только для локальных хуков.

    Спасибо.
      неправда, WH_DEBUG Thread or global
        Цитата thread @
        Если способ узнать цепочку системных (глобальных) хуков

        есть.
        надо:
        - получить птр на структуру g_SharedInfo(можно из юзермода);
        ExpandedWrap disabled
          typedef struct tagSHAREDINFO {
              struct tagSERVERINFO  *psi;
              struct _HANDLEENTRY   *aheList;         // handle table pointer
              ...
          }


        - в цикле бежать по объектам ( поле aheList);

        ExpandedWrap disabled
          typedef struct _HANDLEENTRY {
              PHEAD   phead;                  /* pointer to the real object */
              PVOID   pOwner;                 /* pointer to owning entity (pti or ppi) */
              BYTE    bType;                  /* type of object */
              BYTE    bFlags;                 /* flags - like destroy flag */
              WORD    wUniq;                  /* uniqueness count */
           
          #if DBG
              PLR     plr;                    /* lock record pointer */
          #endif // DBG
           
          } HANDLEENTRY, *PHE;
          PHE phe =  (PHE)&m_SharedInfo->aheList[i];


        - если phe->bType == TYPE_HOOK (0х5), то уже из r0 получить структуру tagHOOK
        ExpandedWrap disabled
          typedef struct _HEAD {
              HANDLE h;
              DWORD cLockObj;
          } HEAD, *PHEAD;
           
          typedef struct _THROBJHEAD {
              HEAD head;
              PTHREADINFO pti;
          } THROBJHEAD, *PTHROBJHEAD;
           
          typedef struct _THRDESKHEAD {
              THROBJHEAD throbjhead;
              DESKHEAD deskhead;
          } THRDESKHEAD, *PTHRDESKHEAD;
           
          typedef struct tagHOOK {
              THRDESKHEAD     head;
              PHOOK           phkNext;
              int             iHook;              // WH_xxx hook type
              ULONG_PTR offPfn;
              UINT            flags;              // HF_xxx flags
              int             ihmod;
              void*     ptiHooked;          // Thread hooked.
              void*        rpdesk;             // Global hook pdesk. Only used when
                                                  //  hook is locked and owner is destroyed
          } HOOK;

        таким образом перечислишь все хуки, установленные в системе. Анализ цепочек я не делала, но наверно можно.
        в структуре THREADINFO есть поле aphkStart[]. здесь хуки, зарегистрированные для данного потока.
        все структуры читаются из r0.
          Алиса
          Я смотрю статью не зря писал - информация из нее находит себе новое применение.
          Может "скинемся" и забацаем статейку про хуки? ;)
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script Execution time: 0,1026 ]   [ 16 queries used ]   [ Generated: 27.06.19, 06:18 GMT ]