我已经将一个非常简单的蝙蝠文件转换为EXE。
我的C文件看起来像这样:
#include <stdlib.h>
int main(int argc, char const *argv[]) {
system("set PATH=%PATH%;%CD%binffmpeg");
system("node server.js");
return 0;
}
我的资源.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 以另一种方式处理这个问题。