[Delphi] GetModuleHandle = 0...

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by B3JIoMep, 27 Nov 2011.

  1. B3JIoMep

    B3JIoMep New Member

    Joined:
    10 Oct 2010
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Потребовалось перехватывать и менять исходящий траффик, решил сделать через перехват API. Нашел имя дллки в модуле винсока, запилил простенький перехват. Протестил - не работает. Вскоре нашел причину - GetModuleHandle('wsock32.dll') почему то всегда возвращает 0 (т.е. не могу найти адрес функции send). Попробовал на виртуалке - тоже самое. В чем дело?
     
  2. Ptr

    Ptr New Member

    Joined:
    1 Oct 2011
    Messages:
    12
    Likes Received:
    0
    Reputations:
    0
    This.

    PHP:
    HMODULE hWinSock GetModuleHandleA("Ws2_32.dll");
     
  3. B3JIoMep

    B3JIoMep New Member

    Joined:
    10 Oct 2010
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Тоже самое.
    P.S. С такими ответами не надо даже заходить сюда...
    P.P.S. Проблему решил через LoadLibrary.
     
  4. GRRRL Power

    GRRRL Power Elder - Старейшина

    Joined:
    13 Jul 2010
    Messages:
    823
    Likes Received:
    185
    Reputations:
    84
    ws2_32.dll сначала должна быть загружена в память процесса. Соответственно, сначала необходимо вызвать LoadLibrary, только после этого GetModuleHandle будет работать.