Я преобразовал очень простой файл bat в EXE.
мой C-файл выглядит так:
#include <stdlib.h>
int main(int argc, char const *argv[]) {
system("set PATH=%PATH%;%CD%\bin\ffmpeg");
system("node server.js");
return 0;
}
Мой resources.rc выглядит так:
#include <windows.h>
A ICON MOVEABLE PURE LOADONCALL DISCARDABLE "favicon.ico"
Я компилирую это с помощью:
windres -i resource.rc -o resource.o
tcc-o mediacenterjs.exe main.c resource.o
Это прекрасно работает! Но Avast и несколько других антивирусных сканеров считают мой EXE-файл угрозой.
Троян «I-Worm / Nuwar.L», если быть точным.
Что я могу изменить или добавить в код, чтобы он не воспринимался как вирус.
Один из способов выяснить это — просто пропустить одну из строк, чтобы выяснить, какая из них запускается (или, если это обе). С учетом вышесказанного, ваш код на самом деле не очень безопасен, потому что он опирается на настройки пути компьютера, чтобы указать на правильный node
исполняемый файл.
Кроме того, вы можете проверить, действительно ли сохраняются ваши настройки пути после первого вызова system
пробеги.
Это проще, чем вы думаете, иногда, когда мы портим и сокеты, антивирус может жаловаться. То же самое может случиться, если вы попытаетесь что-то изменить в системе, возможно, оно распознает ваше приложение как поток не потому, что в нем есть вирус, а из-за поведенческого анализа антивируса, поскольку у него есть несколько способов обнаружения, таких как сигнатура , и так далее.
То, что вы можете сделать, это отладить ваше приложение, чтобы найти, в чем проблема, может быть, это в system
функция, которая напрямую просит систему изменить что-то, что может иметь решающее значение для системы (антивирус не знает об этом или не знает), возможно, вы можете справиться с этим другим способом с помощью API.