При компиляции кода антивирус говорит, что это вирус и удаляет его

Привет, я пытаюсь сделать код на C ++. Этот код только позволяет легко зашифровать текстовый файл и сохранить его в новом файле. И когда я компилирую этот код, антивирус говорит, что это вирус / шпионское ПО. Gen: Variant.Kazy.20825. Я не знаю, почему это вирус.
Вот мой код:

#include <iostream>
#include <fstream>
#include <string>using namespace std;

void controlParameters(int argc){  //check if input parameters are ok
if(argc == 1){
cout << "Pokud chcete text zasifrovat, spustte program s parametrem: -enc \"Nazev_souboru.txt\"\n";
cout << "Pokud ho chcete desifrovat, spustte program s parametrem: -dec \"Nazev_souboru.txt\"\n";
}else if(argc > 3){
cout << "Moc parametru. Spustte si program bez parametru.\n";
}else if(argc < 3){
cout << "Chybi jeden parametr. Spustte si program bez parametru.\n";
}else{
cout << "Vsechno vypada zatim dobre\n";
}
}

void encryption(string &file);  //encrypt text file
void decryption(string &file);  //decrypt text file
bool controlFile(string &file); //check if file can be opened

int main(int argc, char **argv){
controlParameters(argc);
string file;
file = argv[2];
if(controlFile(file)){

}else{
cout << "Soubor nesel nacist." << endl;
return -1;
}
cout << "Ukonceno.\nZmacknete ENTER pro pokracovani..."<<endl;
cin.get();
return 0;
}

bool controlFile(string &file){
ifstream ifs;
ifs.open(file);
if(ifs.is_open()){
ifs.close();
return true;
}else{
ifs.close();
return false;
}
}

void encryption(string &file){
ifstream ifs;
ofstream ofs;
string line;
ifs.open(file);
ofs.open("encrypt.txt");
if(ifs.is_open()){
while(!ifs.eof()){
getline(ifs,line);
int a = line.length();
int i = 0;
while(i < a){
ofs << ((char)(line[i]^100));
}
line.clear();
ofs << "\n";
}
}else{
cout << "Nelze nacist soubor" << endl;
}
}

void decryption(string &file){
ifstream ifs;
ofstream ofs;
string line;
ifs.open(file);
ofs.open("decrypt.txt");
if(ifs.is_open()){
while(!ifs.eof()){
getline(ifs,line);
int a =line.length();
int i = 0;
while(i < a){
ofs << ((char)(line[i]^100));
}
line.clear();
ofs << "\n";
}
}else{
cout << "Nelze nacist soubor" << endl;
}
}

0

Решение

Антивирусное программное обеспечение использует «эвристику», чтобы определить, что является вирусом, а что нет. Таким образом, он ищет шаблоны в файле, которые делают вещи, которые он считает подозрительными. Я не вижу ничего прямо неправильного в вашем коде, поэтому я подозреваю, что это «ложно-положительный результат». Лично мне не нравится антивирусное программное обеспечение, оно вызывает больше проблем, чем решает …

Кстати, вы можете добавить «имя файла вывода» в вашу функцию шифрования / дешифрования и сделать их одной функцией! 😉

4

Другие решения

Хорошей практикой является исключение ваших каталогов исходного кода из антивирусных сканеров; они могут вызвать проблемы с производительностью и блокировкой, даже если нет ложные срабатывания при выполнении действий контроля исходного кода или компиляции (я видел, как это происходило несколько раз).

Поэтому, чтобы повысить надежность программирования, отключите антивирусный сканер в этих каталогах.

Возможно, вам все же захочется отсканировать окончательную выпущенную версию вашего исполняемого файла, чтобы избежать ложных срабатываний: в конце концов, даже если вы не виноваты, что вирусный сканер захлебнется, это не будет хорошим впечатлением для пользователя.

3

По вопросам рекламы [email protected]