Вернуться   CoderX :: Forums > Lineage II > L2PacketHack
Войти через OpenID

L2PacketHack Форум программы L2PacketHack, всё что с ней связано находится тут.
Правила раздела! Обсуждение багов Lineage ЗАПРЕЩЕНО!

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
 
 
Опции темы Опции просмотра
Старый 22.11.2009, 14:26   #11
Пользователь
 
Регистрация: 23.03.2009
Сообщений: 50
Сказал Спасибо: 10
Имеет 10 спасибок в 1 сообщении
murc пока неопределено
По умолчанию

alexteam, Dll пашет до тех пор пока не выставляю хук на какую либо функцию (здесь WSPRecv). Перехват вроде как происходит, но инет отпадает как будто я дропаю wsprecv. В чем может быть проблема ?
Код:
function WSPRecv(s: TSocket; lpBuffers: LPWSABUF; dwBufferCount: DWORD;
    var lpNumberOfBytesRecvd, lpFlags: DWORD; lpOverlapped: LPWSAOVERLAPPED;
    lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE; lpThreadId: LPWSATHREADID;
    var lpErrno: Integer): Integer; stdcall;
begin
result := NextProcTable.lpWSPRecv(s,lpBuffers,dwBufferCount,lpNumberOfBytesRecvd,
                                lpFlags,lpOverlapped,lpCompletionRoutine,lpThreadId,
                                lpErrno);
end;

function WSPStartup(wVersionRequested: WORD; lpWSPData: LPWSPDATA;
  lpProtocolInfo: LPWSAPROTOCOL_INFOW; UpcallTable: WSPUPCALLTABLE;
  lpProcTable: LPWSPPROC_TABLE): Integer; stdcall;
var
  Count, Error, i, iLen: integer;
  EnumBuf: LPWSAPROTOCOL_INFOW;
  Len, LayerID, NextLayerID, hDLL: dword;
  wDllPath, DllPath: PWideChar;
  WSPStartupFunc: LPWSPSTARTUP;
begin
  Len := $ffff;
  GetMem(EnumBuf, Len);
  Count := WSCEnumProtocols(nil, EnumBuf, Len, Error);
  // Ищем свой номерок в каталоге
  for i:=0 to count-1 do begin
    if string(EnumBuf.szProtocol) = Layer then begin
      LayerID := EnumBuf.dwCatalogEntryId;
      break;
    end;
    EnumBuf := Pointer(Dword(EnumBuf)+SizeOf(TWSAPROTOCOL_INFOW));
  end;
  // Ищем следующего провайдера относительно нас
  for i:=0 to lpProtocolInfo.ProtocolChain.ChainLen-1 do begin
    if lpProtocolInfo.ProtocolChain.ChainEntries[i] = LayerID then begin
      NextLayerID := lpProtocolInfo.ProtocolChain.ChainEntries[i+1];
      break;
    end;
  end;
  GetMem(EnumBuf, Len);
  Count := WSCEnumProtocols(nil, EnumBuf, Len, Error);
  for i:=0 to count-1 do begin
    if EnumBuf.dwCatalogEntryId = NextLayerID then begin
      iLen := 256;
      GetMem(DllPath, iLen);
      WSCGetProviderPath(EnumBuf.ProviderId, DllPath, iLen, Error);
      GetMem(wDllPath, iLen);
      ExpandEnvironmentStringsW(DllPath, wDllPath, iLen);
      Break;
    end;
    EnumBuf := Pointer(Dword(EnumBuf)+SizeOf(TWSAPROTOCOL_INFOW));
  end;
  hDLL := LoadLibraryW(wDllPath);
  WSPStartupFunc := LPWSPSTARTUP(GetProcAddress(hDLL,Pchar('WSPStartup')));
  result := WSPStartupFunc(wVersionRequested, lpWSPData, lpProtocolInfo, UpcallTable, lpProcTable);
  NextProcTable := lpProcTable;
  lpProcTable.lpWSPRecv := WSPRecv;
end;
murc вне форума   Ответить с цитированием
 

  CoderX :: Forums > Lineage II > L2PacketHack



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 16:33.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!