Advapihook & Windows7

Тема в разделе "WASM.WIN32", создана пользователем Selah, 8 фев 2010.

  1. Selah

    Selah New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2007
    Сообщения:
    258
    Почему не работает эта либа в win7 , ставлю стандартный хук на любую функцию, например так

    Код (Text):
    1. function Nsend(s:tsocket; var buf; len, flags: integer): integer;stdcall;
    2. begin
    3. Result:=Tsend(s,Buf,len,flags);
    4. end;
    При переходе на строчку Result:=Tsend(s,Buf,len,flags); процесс в котором перехват вылетает с ошибкой.
    В отладчике толком посмотреть не могу, т.к. плохо разбираюсь в таких вещах.
     
  2. ptr

    ptr New Member

    Публикаций:
    0
    Регистрация:
    14 мар 2009
    Сообщения:
    130
    в функции HookCode
    Код (Text):
    1.   GetMem(OldFunction, 255);
    измени способ выделения памяти на VirtualAlloc
     
  3. Selah

    Selah New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2007
    Сообщения:
    258
    сейчас попробую
     
  4. Selah

    Selah New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2007
    Сообщения:
    258
    ставлю OldFunction:=virtualalloc(nil,255,MEM_COMMIT or MEM_RESERVE,PAGE_READWRITE);
    также вылетает с ошибкой
     
  5. ptr

    ptr New Member

    Публикаций:
    0
    Регистрация:
    14 мар 2009
    Сообщения:
    130
    мб тогда DEP,x64,UAC ?
     
  6. ptr

    ptr New Member

    Публикаций:
    0
    Регистрация:
    14 мар 2009
    Сообщения:
    130
    у меня экзепшена нет.
    только что затестил вмваре Win7
     
  7. Selah

    Selah New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2007
    Сообщения:
    258
    DEP отключена. система х32 UAC включена, но причем здесь?
     
  8. Hellspawn

    Hellspawn New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2006
    Сообщения:
    310
    Адрес:
    Москва
    вместо PAGE_READWRITE надо PAGE_EXECUTE_READWRITE =\
     
  9. Selah

    Selah New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2007
    Сообщения:
    258
    спасибо. теперь все работает
     
  10. d2k9

    d2k9 Алексей

    Публикаций:
    0
    Регистрация:
    14 сен 2008
    Сообщения:
    325
    Там дохрена ошибок - советую написать свою с дизасмом длин.
     
  11. Selah

    Selah New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2007
    Сообщения:
    258
    дизасм длин для меня сейчас трудная задача :))
     
  12. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    зачем писать то, что тыщу раз написано до нас?
     
  13. ptr

    ptr New Member

    Публикаций:
    0
    Регистрация:
    14 мар 2009
    Сообщения:
    130
    тип защиты поправь на PAGE_EXECUTE_READWRITE
     
  14. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Патч кода использовать там где можно обойтись без него просто глупо.
     
  15. JohnFive

    JohnFive New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2009
    Сообщения:
    6
    ну а как обойтись без патча если нужно контролировать выполнение функции?
     
  16. d2k9

    d2k9 Алексей

    Публикаций:
    0
    Регистрация:
    14 сен 2008
    Сообщения:
    325
    Ща тебе прочтут лекцию при наличии соответствующего настроения у Клерка про использование сексуальной обработки исключений и генерации собственного сепшина для отлова функции.
     
  17. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    d2k9
    Нет желания читать лекцию. Способов множество, не только сепшены - калбэки, синхронизация(бесконечные циклы ожидания), системные ошибки и пр.
     
  18. JohnFive

    JohnFive New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2009
    Сообщения:
    6
    Все вышеперечисленное не относится к стабильности и совместимости, учитывая задачу ТС, когда функция send может вызываться немерянное количество раз из десятков потоков.
     
  19. d2k9

    d2k9 Алексей

    Публикаций:
    0
    Регистрация:
    14 сен 2008
    Сообщения:
    325
    Ну тут да наиболее оптимально IAT патчинг или сплайс - но надёжнее в ядре :lol:
     
  20. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    JohnFive
    Почему не стабильно ?
    Это зависит не от техники, а от кривости рук автора. Даже такой тяжёлый способ захвата как трассировка никак не скажется на скорости работы этой функи.