перехват функции

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by DooD, 2 May 2011.

  1. DooD

    DooD Elder - Старейшина

    Joined:
    30 Sep 2010
    Messages:
    1,168
    Likes Received:
    442
    Reputations:
    288
    Привет.короче озадачился я тут :
    при обращении к серверу используется DnsQueryA или DnsQueryW, как можно перехватить эти функции,для определенного сайта,и выдать лупбэк(не подмену dns запроса , а именно так)?буду благодарен за помощь кодом(делфи или масм)
    з.ы. библиотека DNSAPI
     
    #1 DooD, 2 May 2011
    Last edited: 2 May 2011
  2. Jingo Bo

    Jingo Bo Member

    Joined:
    25 Oct 2009
    Messages:
    368
    Likes Received:
    51
    Reputations:
    7
    Запущена программа которая все время определяет список запущенных процессов, и если определяет что запущен новый - инжектит в него DLL, коорая перехватывает функцию. И не надо использовать всякие там madCodeHook и т.д. - проще написать самому сам процесс инжекта и перехвата. А в идеале написать простенький драйвер, который отслеживает создание процесса(гуглим "PsSetCreateProcessNotifyRoutine") и инжектит(это посложнее) нашу DLL. На счет драйвера я думаю проблем не будет с теневой установкой, обычно у простых юзеров на домашних компах стоит учетка с максимальными правами.
     
  3. greenzy

    greenzy New Member

    Joined:
    29 Apr 2011
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    2DooD:
    про перехват http://www.cppfrance.com/forum/sujet-DNSQUERY-HOOK-DETOURS_1405365.aspx

    2Jingo Bo: не обязательно лезть в ядро, да и проблем с корректным внедрением будет куча (облажаетесь с apc), лучше использовать юзермодный аналог: CreateProcessNotify ()
     
  4. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    2 http://www.cppfrance.com/forum/sujet-DNSQUERY-HOOK-DETOURS_1405365.aspx
    это просто ужасная вещь. снимать и ставить постоянно перехват это жестоко. Тем более при много поточности будут осечки постоянные. ПО идее проще заюзать дизассемблер длин инструкций.
     
  5. DooD

    DooD Elder - Старейшина

    Joined:
    30 Sep 2010
    Messages:
    1,168
    Likes Received:
    442
    Reputations:
    288
    можно поконкретнее немного
     
  6. yuran666666

    yuran666666 Member

    Joined:
    18 Jan 2009
    Messages:
    84
    Likes Received:
    19
    Reputations:
    11
    #6 yuran666666, 4 May 2011
    Last edited: 4 May 2011
  7. DooD

    DooD Elder - Старейшина

    Joined:
    30 Sep 2010
    Messages:
    1,168
    Likes Received:
    442
    Reputations:
    288
    хех)примеры перехвата msgbox много где есть,а того нету
     
  8. HakaR

    HakaR Active Member

    Joined:
    23 Jul 2009
    Messages:
    301
    Likes Received:
    200
    Reputations:
    3
    http://www.codeproject.com/KB/DLL/funapihook.aspx
     
  9. zeppe1in

    zeppe1in Elder - Старейшина

    Joined:
    12 Jul 2006
    Messages:
    343
    Likes Received:
    66
    Reputations:
    18
    что крутого в Detours?
    юзаю length disasm and splicer engine из tinyWh ver 1.0b by sn0w
    https://forum.antichat.ru/showthread.php?t=121588

    HakaR
    я просто спросил, может кто знает)
     
    #9 zeppe1in, 4 May 2011
    Last edited: 4 May 2011
    1 person likes this.
  10. HakaR

    HakaR Active Member

    Joined:
    23 Jul 2009
    Messages:
    301
    Likes Received:
    200
    Reputations:
    3
    Разве я говорил, что он крутой?
    Предложил как вариант.
     
  11. yuran666666

    yuran666666 Member

    Joined:
    18 Jan 2009
    Messages:
    84
    Likes Received:
    19
    Reputations:
    11
    разница какая? В расположении и последовательности букв в именах функций и библиотек?
    Или же считаете, что для dnsapi.dll специально придумали формат отличный от PЕ и отдельный механизм загрузки и работы с ней с той лишь целью, чтобы школота функции в ней не перехватила?