首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

WSPConnect重写求教,该怎么处理

2013-01-11 
WSPConnect重写求教我现在用的是SPI,我想自己写一个WSPConnect后实现 让该程序通过连接一个socks5代理来完

WSPConnect重写求教
我现在用的是SPI,我想自己写一个WSPConnect后实现 让该程序通过连接一个socks5代理来完成之后的通信。


function WSPConnect(s: TSocket; name: PSockAddr; namelen: Integer; lpCallerData: LPWSABUF;lpCalleeData: LPWSABUF; lpSQOS: LPQOS; lpGQOS: LPQOS; var lpErrno: Integer): Integer; stdcall;
var
sin:sockaddr_in ;
begin
sin := sockaddr_in(name^);
rizhi('拦截访问目标:'+PChar(IPtoStr(sin.sin_addr.S_addr) + ':' + IntToStr(ntohs(sin.sin_port))));
result:=NextProcTable.lpWSPConnect(s,name,namelen,lpCallerData,lpCalleeData,lpSQOS,lpGQOS,lpErrno);
end;


function WSPStartup(wVersionRequested: WORD; lpWSPData: LPWSPDATA;lpProtocolInfo: LPWSAPROTOCOL_INFOW; UpcallTable: WSPUPCALLTABLE;lpProcTable: LPWSPPROC_TABLE): Integer; stdcall;
var
WSPStartupFunc:LPWSPSTARTUP;
slibpath:string;
hlibhandle:hmodule;
begin
rizhi('启动:WSPStartup...');
if not GetHookProvider(lpProtocolInfo,slibPath) then
    begin
      result:=WSAEPROVIDERFAILEDINIT;
      exit;
    end;
OutputDebugString(pchar(slibpath));
hlibhandle:=loadlibrary(pchar(slibpath));
if hlibhandle<>0 then
    begin
      WSPStartupFunc:= LPWSPSTARTUP(GetProcAddress(hlibhandle,pchar('WSPStartup')));
      if Assigned(WSPStartupFunc) then
        begin
          rizhi('加载:Load library ok!');
          result:=WSPStartupFunc(wVersionRequested,lpWSPData,lpProtocolInfo,UpcallTable,lpProcTable);
          if result=0 then
            begin
              NextProcTable:=lpProcTable^;
              lpProcTable.lpWSPConnect:=WSPConnect;
              rizhi('加载成功:Hook ok!');
              exit;
            end;
        end
      else
        begin
          result:=WSAEPROVIDERFAILEDINIT;
        end;
    end
else
    begin
      result:=WSAEPROVIDERFAILEDINIT;
    end;
end;

[解决办法]
现在有什么问题? 
[解决办法]
up,楼主啥意思

热点排行