如果不在要访问的机器上安装服务器程序,这是作不到的,否则windows哪里还有安全性可言?

解决方案 »

  1.   

    我有点类似于黑客程序,偷取别人的资料,但是象病毒程序一样,首先别的机子里要有一个程序,它负责提供别的机子里的资料,也就是必须运行。关于我个程序,我这段时间正在作,我的思路是:
     1、各客户端要负责一客户端软件,它负责将机器里的内容传给应用服务器。
     2、应用服务器负责接收各客户端发来的文件信息。
     3、控制端,它向应用服务器取客户端信息,并作出处理。
    这个程序我已做了一半,但目前遇到一个问题,那就是多个客户端同时向服务器发送信息时,服务器怎样识别并分别处理。我用的是TServerSocket控件,我也知道此控件能分别管理多个连接,但具体是怎样实现的,我正在摸索。
      

  2.   

    不就是一个木马吗?呵呵
    to:yangyun
    多个连接的问题很有easy,
    type
       session_record=record
      Used: boolean; {会话记录是否可用}
      SS_Handle: integer; {代理服务器套接字句柄}
      CSocket: TClientSocket; {用于远程连接的套接字}
      Lookingup: boolean; {是否正在查找服务器}
      LookupTime: integer; {查找服务器时间}
      Request: boolean; {是否有请求}
      request_str: string; {请求数据块}
      client_connected: boolean; {客户机联机标志}
      remote_connected: boolean; {远程服务器连接标志}
    end;
    session: array of session_record; {会话数组}
    sessions: integer; {会话数}
    procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
      Socket: TCustomWinSocket);
    var
    i,j: integer;
    begin
       j:=-1;
       for i:=1 to sessions do{查找是否有空白项}
          if not session[i-1].Used and not session[i-1].CSocket.active then
             begin
                j:=i-1;{有,分配它}
                session[j].Used:=true;{置为在用}
                break;
             end
          else
             if not session[i-1].Used and session[i-1].CSocket.active then
                   session[i-1].CSocket.active:=false;
       if j=-1 then
          begin{无,新增一个}
             j:=sessions;
             inc(sessions);
             setlength(session,sessions);
             session[j].Used:=true;{置为在用}
             session[j].CSocket:=TClientSocket.Create(nil);
             session[j].CSocket.OnConnect:=ClientSocket1Connect;
             session[j].CSocket.OnDisconnect:=ClientSocket1Disconnect;
             session[j].CSocket.OnError:=ClientSocket1Error;
             session[j].CSocket.OnRead:=ClientSocket1Read;
             session[j].CSocket.OnWrite:=ClientSocket1Write;
             session[j].Lookingup:=false;
          end;
       session[j].SS_Handle:=socket.socketHandle; {保存句柄,实现绑定}
       session[j].Request:=false;{无请求}
       session[j].client_connected:=true;{客户机已连接}
       session[j].remote_connected:=false;{远程未连接}
       edit1.text:=inttostr(sessions);
    end;这是我写的一个代理程序里面的一段代码。