2014-12-05 61 views
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

獲得更好的殺毒軟件。 – rubenvb 2014-12-05 13:49:32

+1

我認爲這不會起作用。第一次調用爲第一個命令shell設置'%PATH%',第二次調用啓動第二個具有原始'%PATH%'的命令shell。此外,對於這樣一個微不足道的程序,我甚至不會使用CRT。使用'CreateProcess'並傳遞適當的環境。 – MSalters 2014-12-05 15:44:18

回答

1

一個辦法,找出是簡單地忽略其中一條線路,找出哪一個是觸發(或者如果它是兩者)。這就是說,你的代碼並不是非常安全,因爲它依賴於計算機的路徑設置來指向正確的node可執行文件。

此外,您可能要檢查,看看你的路徑設置在第一次調用system運行後實際存在。

+0

非常有幫助!我會像你所建議的那樣調試。改變路徑變量可能是大多數病毒掃描程序的紅旗。 – jansmolders86 2014-12-05 14:40:56

1

它比你想象的更簡單,有時候當我們用插座以及防病毒可能會抱怨搞亂。如果您嘗試更改系統中的某些內容,可能會發生同樣的情況,可能會將您的應用程序識別爲線程,而不是因爲它具有病毒,但由於防病毒的行爲分析,因爲它有幾種檢測方法,如簽名, 等等。

你可以做的事情是調試你的應用程序,以便找到問題出在哪裏,也許它在system函數中,該函數直接要求系統更改可能對系統至關重要的內容(防病毒不知道或不知道),也許你可以使用API​​以另一種方式處理。