3

我已经将一个非常简单的 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”木马。

我可以更改或添加到代码中以使其不会被视为病毒。

4

2 回答 2

1

它比您想象的要简单,有时当我们也弄乱套接字时,防病毒软件可能会抱怨。如果您尝试更改系统中的某些内容,也会发生同样的情况,可能它将您的应用程序识别为线程不是因为它有病毒,而是因为防病毒软件的行为分析,因为它有多种检测方法,例如签名, 等等。

您可以做的事情是调试您的应用程序以找出问题所在,也许它在system直接要求系统更改可能对系统至关重要的东西的功能中(防病毒不知道)或确实),也许您可​​以使用 API 以另一种方式处理此问题。

于 2014-12-05T14:05:48.537 回答
1

找出答案的一种方法是简单地省略其中一行来找出触发的是哪一行(或者两者都触发)。话虽如此,您的代码并不是很安全,因为它依赖于计算机的路径设置来指向正确的node可执行文件。

此外,您可能需要检查您的路径设置在第一次调用system运行后是否确实存在。

于 2014-12-05T13:54:32.297 回答