Winsockプログラムがウイルス扱いされる

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Gear

Winsockプログラムがウイルス扱いされる

#1

投稿記事 by Gear » 10年前

CでWinsockを利用し、非同期通信のチャットプログラムを作成しました。
動作テストということで数人の友人に協力してもらい、起動してもらったのですがスマートスクリーンやノートンが総動員してプログラムを削除してしまったそうです。
一人だけ、普通に起動できた人がいて正しく通信できました。
どうしたらウイルス扱いされないか教えてもらいたいです。宜しくお願いします

以下サーバとクライアントのソース

コード:

//サーバー側
#include <stdio.h>
#include <winsock2.h>
#include <windows.h>
#include <conio.h>

DWORD WINAPI RecvFunc(LPVOID vdParam);

#pragma comment(lib, "wsock32.lib")

int main(){
	SOCKET sock;
	int mode;
	char username[20], recvmes[500], sendmes[500], buf[500];
	WSADATA wsaData;

	WSAStartup(MAKEWORD(2, 0), &wsaData);

	sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
		SOCKET hsock[20];
		sockaddr_in addr, client;
		int connectc = 0;
		int sockno[20];
		fd_set fds, rfds;

		memset(&addr, 0, sizeof(addr));
		addr.sin_family = AF_INET;
		addr.sin_port = htons(25555);
		addr.sin_addr.s_addr = htonl(INADDR_ANY);
		
		printf("-----サーバーモードで起動-----\n\n");

		bind(sock, (struct sockaddr *)&addr, sizeof(addr));
		listen(sock, 20);
		FD_ZERO(&rfds);
		FD_SET(sock, &rfds);
		while (1){
			int len = sizeof(client);

			memcpy(&fds, &rfds, sizeof(fd_set));
			select(0, &fds, NULL, NULL, NULL);

			if (FD_ISSET(sock, &fds)){
				char name[500];
				memset(buf, 0, sizeof(buf));
				hsock[connectc] = accept(sock, (struct sockaddr *)&client, &len);
				recv(hsock[connectc], name, sizeof(name), 0);
				sprintf(buf, "Server>%sが接続しました\n\n", name);
				FD_SET(hsock[connectc], &rfds);
				printf(buf);
				connectc++;
				for (int i = 0; connectc > i; i++){
					send(hsock[i], buf, sizeof(buf), 0);
				}
			}
			else {
				for (int i = 0; connectc > i; i++){
					if (FD_ISSET(hsock[i], &fds)){
						memset(buf, 0, sizeof(buf));
						recv(hsock[i], buf, sizeof(buf), 0);
						printf("%s",buf);
						for (int c = 0; connectc > c; c++){
							if (i != c)
								send(hsock[c], buf, sizeof(buf), 0);
						}
					}
				}
			}
		}
	

	WSACleanup();
	return 0;
}


//クライアント側
#include <stdio.h>
#include <winsock2.h>
#include <windows.h>
#include <conio.h>

#pragma comment(lib, "wsock32.lib")

DWORD WINAPI RecvFunc(LPVOID vdParam);

int main(){
	SOCKET sock;
	char username[20], recvmes[500], sendmes[500], buf[500];
	WSADATA wsaData;

	WSAStartup(MAKEWORD(2, 0), &wsaData);

	sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
	printf("ユーザーネームを入力してください\n");
	scanf("%s", username);

	sockaddr_in server;
	LPHOSTENT lpHostEntry;
	char *lpHostName = "サーバーの名前";
	HANDLE recvth;
	DWORD dwParam;

	lpHostEntry = gethostbyname(lpHostName);
	server.sin_family = AF_INET;
	server.sin_port = htons(25555);
	server.sin_addr = *((LPIN_ADDR) lpHostEntry->h_addr_list[0]);
	printf("-----クライアントモードで起動-----\n\n");
	printf("接続待ち・・・");
	while (connect(sock, (struct sockaddr *)&server, sizeof(server)) == SOCKET_ERROR){
		printf("・");
	}
	recvth = CreateThread(NULL, 0, RecvFunc, &sock, 0, &dwParam);
	send(sock, username, sizeof(username), 0);
	printf("\n\nConnection!\n");

	while (1){
		memset(recvmes, 0, sizeof(recvmes));
		memset(sendmes, 0, sizeof(sendmes));
		memset(sendmes, 0, sizeof(buf));
		scanf("%s", buf);
		printf("\n");
		sprintf(sendmes, "%s>%s\n\n", username, buf);
		send(sock, sendmes, sizeof(sendmes), 0);
	}
	closesocket(sock);
	GetExitCodeThread(recvth, &dwParam);

	WSACleanup();
	return 0;
}

DWORD WINAPI RecvFunc(LPVOID vdParam) {
	SOCKET* sock = (SOCKET*) vdParam;
	char buf[500];

	while (1){
		if (recv(*sock, buf, sizeof(buf), 0) == -1){
			printf("%d", WSAGetLastError());
			break;
		}
		printf("%s", buf);
	}
	return 1;
}

アバター
プラム
記事: 164
登録日時: 11年前
住所: 東海地方

Re: Winsockプログラムがウイルス扱いされる

#2

投稿記事 by プラム » 10年前

出来ればコードタグで挟んでいただくといいと思います。
自分で調べました?
たぶん発行元を設定すれば何とかなると思います
https://www.google.co.jp/search?q=%E7%9 ... D%E5%AE%9A
結構いろいろ参考になるようなものがありますよ?
人にばかり頼らず自分で調べてから書いたほうがいいです(調べてもわからなかったなかったならすいませんm(__)m)

MoonGate

Re: Winsockプログラムがウイルス扱いされる

#3

投稿記事 by MoonGate » 10年前

各人のウイルス対策ソフト側で、そのexeファイルを除外するように設定するか、またはセキュリティレベルを下げてもらうしかありません。
アプリ側でウィルス扱いされなくなるようにできる方法があったたら、ウィルスソフトもその方法を使用してすり抜けてしまいますよね(^_^;)

アバター
プラム
記事: 164
登録日時: 11年前
住所: 東海地方

Re: Winsockプログラムがウイルス扱いされる

#4

投稿記事 by プラム » 10年前

そんなことないですよ
ウィルス対処ソフトは不正に動いているようなプログラムを削除しますから発行元を設定しておけばいいと思います。

ISLe()

Re: Winsockプログラムがウイルス扱いされる

#5

投稿記事 by ISLe() » 10年前

不正ソフトは、不正に動くプログラムではなく、不正を働くプログラムですよ。
使っているひとの少ないフリーソフト等を勝手に削除するウイルス対策ソフトは跡を絶ちませんし。

この掲示板でも過去に何度か話題になっていますね。

ハルルンさんは、電子署名と単なるプログラムリソースを取り違えているのだと思います。

閉鎖

“C言語何でも質問掲示板” へ戻る