[問題] c程式被誤判成病毒?
遇到的問題: (題意請描述清楚)
我寫了一個簡單的Win32 API程式
結果被avast!誤判程式惡意程式
試了AVG和小紅傘也得到一樣的結果
可是重新compile後就不會了...
這其中一定有什麼誤會
是我程式的問題還是電腦的問題?
我試過重新編譯後放幾天依然被當成病毒了...囧TL
開發平台: Dev-C++
有問題的code: (請善用置底文標色功能)
原始碼如下:
//有點囉唆XD
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
//這些東西放全域
HWND hWnd; //視窗代碼
HDC hdc; //裝置組態代碼
PAINTSTRUCT ps; //繪圖資訊
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM); //宣告視窗函數
/*****/
ATOM InitApp (HINSTANCE); //原子科技
BOOL InitInstance (HINSTANCE ,int ); //初始化實體
/*****/
HFONT MyCreateFont (int, DWORD, LPCTSTR); // 自訂字型
char szClassName[ ] = "Windows01"; //視窗類型
//使這個類名稱成為一個全局變量
int WINAPI WinMain (HINSTANCE hCurInst, //現在的實體代碼
HINSTANCE hPrevInst, //之前的實體代碼
LPSTR lpsCmdLine, //命令列參數
int nCmdShow) //視窗顯示狀態
{
/*---Create a window------------*/
MSG msg; //msg結構體
BOOL bRet; //抓信息的東東, 俗稱布爾大衣(by Google)
WNDCLASSEX wc; //視窗類別結構, 廁所
ATOM atom; //原子
wc.cbSize = sizeof(WNDCLASSEX); //結構體大小
wc.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS; //類型的風格
wc.lpfnWndProc = WndProc; //視窗函式
wc.cbClsExtra = 0; //輔助資料
wc.cbWndExtra = 0; //輔助資料
wc.hInstance = hCurInst; //實體代碼
wc.hIcon = (HICON)LoadImage( //圖示
NULL,
MAKEINTRESOURCE (IDI_APPLICATION),
IMAGE_ICON,
0,
0,
LR_DEFAULTSIZE | LR_SHARED
);
wc.hCursor = (HCURSOR)LoadImage ( //游標
NULL,
MAKEINTRESOURCE(IDC_ARROW),
IMAGE_CURSOR,
0,
0,
LR_DEFAULTSIZE | LR_SHARED
);
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); //背景畫刷
wc.lpszMenuName = NULL; //功能表名
wc.lpszClassName = (LPCSTR)szClassName; //類型名
wc.hIconSm = (HICON)LoadImage( //小圖示
NULL,
MAKEINTRESOURCE(IDI_APPLICATION),
IMAGE_ICON,
0,
0,
LR_DEFAULTSIZE | LR_SHARED
);
if ((atom = RegisterClassEx(&wc)) == 0) //如果是視窗開啟時, 使用原子技
術
return FALSE;
hWnd = CreateWindow ( //初始化視窗代碼
szClassName, //類名
"Xatier API", //標題列
WS_OVERLAPPEDWINDOW, //視窗樣式
CW_USEDEFAULT, //X座標
//CW_USEDEFAULT為使用者自訂
CW_USEDEFAULT, //Y座標
CW_USEDEFAULT, //寬度
CW_USEDEFAULT, //高度
NULL, //母視窗代碼
NULL, //功能表代碼或子視窗ID
hCurInst, //實體代碼
NULL //視窗建立用資料
);
if (!hWnd)
return FALSE;
ShowWindow(hWnd, nCmdShow); //將視窗Show出來
UpdateWindow(hWnd); //更新視窗
while (bRet = GetMessage (&msg, NULL, 0, 0) != 0 ){ //吃信息
if (bRet == -1) {
break;
}
else {
TranslateMessage(&msg); //翻譯年糕
DispatchMessage (&msg); //將msg傳送給視窗函式
}
}
return (int)msg.wParam; //回傳msg的輔助資訊
}
LRESULT CALLBACK WndProc (HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
//回呼函式
{
char buffer[50]; //巴夫
HFONT hFont1 = MyCreateFont(16, CHINESEBIG5_CHARSET, "新細明體");
//字型1
switch (msg) { //用switch來分別各種msg的功能
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps); //擷取hdc
/*-版權聲明------------*/
SelectObject(hdc, hFont1); //使用字型1
sprintf(buffer, "Author: Xatier @tcirc.org");
TextOut(hdc, 5, 390, buffer, (int)strlen(buffer));
break;
case WM_LBUTTONUP: //吃滑鼠(left)
break;
case WM_LBUTTONDOWN:
break;
case WM_RBUTTONUP: //吃滑鼠(right)
break;
case WM_RBUTTONDOWN:
break;
case WM_CHAR: //吃按鍵
if (wp == VK_ESCAPE) { //ESC離開
SendMessage(hWnd, WM_CLOSE, 0 ,0);
}
break;
case WM_CLOSE:
if (int id = MessageBox(hWnd, "你確定要結束程式嗎?\n\n喵~~",
"確認", MB_YESNO | MB_ICONQUESTION) == IDYES)
DestroyWindow(hWnd);
break;
case WM_DESTROY: //破壞視窗
PostQuitMessage (0);
break;
default:
return (DefWindowProc (hWnd, msg, wp, lp));
//不相關的東西丟給視窗函式處理
}
return 0;
}
HFONT MyCreateFont (int nHeight, DWORD dwCharSet, LPCTSTR lpName) {
return( CreateFont(nHeight, 0, 0, 0,
FW_DONTCARE,
FALSE, FALSE, FALSE,
dwCharSet,
OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH | FF_DONTCARE,
lpName));
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.60.107.233
推
06/21 13:04, , 1F
06/21 13:04, 1F
→
06/21 13:04, , 2F
06/21 13:04, 2F
→
06/21 13:05, , 3F
06/21 13:05, 3F
→
06/21 13:06, , 4F
06/21 13:06, 4F
→
06/21 13:06, , 5F
06/21 13:06, 5F
→
06/21 13:07, , 6F
06/21 13:07, 6F
→
06/21 13:07, , 7F
06/21 13:07, 7F
→
06/21 13:09, , 8F
06/21 13:09, 8F
推
06/21 13:11, , 9F
06/21 13:11, 9F
→
06/21 13:11, , 10F
06/21 13:11, 10F
推
06/21 13:15, , 11F
06/21 13:15, 11F
→
06/21 13:15, , 12F
06/21 13:15, 12F
→
06/21 13:21, , 13F
06/21 13:21, 13F
推
06/21 16:59, , 14F
06/21 16:59, 14F
→
06/21 17:00, , 15F
06/21 17:00, 15F
→
06/21 17:03, , 16F
06/21 17:03, 16F
→
06/21 17:03, , 17F
06/21 17:03, 17F
推
06/21 19:47, , 18F
06/21 19:47, 18F
→
06/21 19:47, , 19F
06/21 19:47, 19F
→
06/22 07:24, , 20F
06/22 07:24, 20F
推
06/22 15:48, , 21F
06/22 15:48, 21F
推
06/23 17:00, , 22F
06/23 17:00, 22F
推
06/23 21:30, , 23F
06/23 21:30, 23F
推
06/25 03:31, , 24F
06/25 03:31, 24F
→
06/25 12:33, , 25F
06/25 12:33, 25F