WSADuplicateSocket

Тема в разделе "WASM.NETWORKS", создана пользователем John_T, 22 июл 2009.

  1. John_T

    John_T New Member

    Публикаций:
    0
    Регистрация:
    23 июн 2009
    Сообщения:
    26
    WSADuplicateSocket возвращает -1, подскажите, почему?
    инжектирую dll делаю hook на функцию send (Socket) - тут все идеально
    вот код функции из инжектнутой dll
    Код (Text):
    1. function SendHookProc(s: TSocket; var Buf; len, flags: Integer): Integer; stdcall;
    2. var
    3.   apph, app: HWND;
    4.   source_handle,newhandle :HWND;
    5.   WPI : LPWSAProtocol_Infoa;
    6.   pcds : TCOPYDATASTRUCT;
    7.   pes : Int;
    8.   vwsadata : twsadata;
    9. begin
    10.   if Not Sended then Begin //Флаг для того чтобы это происходило однажды
    11.     apph:=FindWindow('TSimpleForm',nil);
    12.     app :=FindWindow('Жертва.exe',nil); //В которую dll инжектнута
    13.     WSAStartup(MAKEWORD(2,2), vwsadata); // на всяк случку, добавил это позже но результат не изменился
    14.     pes := WSADuplicateSocket(S,apph,WPI); // ВОТ ТУТ ВОЗВРАЩАЕТ -1 ПОЧЕМУ????
    15.     ShowMessage(IntToStr(pes));                 // Видно тут
    16.       pcds.lpData := @WPI;
    17.       pcds.cbData := SizeOf(WPI);
    18.       apph:=SendMessage(apph,WM_COPYDATA,app,LParam(@pcds));
    19.       Sended := True; //Изменим флаг
    20.   end;
    21.   result:=SendNextHook(s, Buf, len, flags); //Вернем стандартный обработчик
    22.   //FreeLibrary(HInstance); //незнаю как ее завершить
    23. end;
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    WSAGetLastError
     
  3. John_T

    John_T New Member

    Публикаций:
    0
    Регистрация:
    23 июн 2009
    Сообщения:
    26
    n0name
    Спасибо разобрался