Ejemplo n.º 1
0
DWORD WINAPI mainfn(LPVOID lp)
{

	g_dwPID = GetCurrentProcessId();
	pid_2_name(GetCurrentProcessId(), g_szProcessName, sizeof(g_szProcessName));
	_snprintf(g_szSimpleLogFile, sizeof(g_szSimpleLogFile)-1,
		"c:\\%d.%s.simple.log", g_dwPID, g_szProcessName);
	_snprintf(g_szDetailLogFile, sizeof(g_szDetailLogFile)-1,
		"c:\\%d.%s.detail.log", g_dwPID, g_szProcessName);

	InitDll("ws2_32.dll", &ws2_32);

	hook_api(&ws2_32, "connect", (DWORD)hack_connect, &new_connect);
	hook_api(&ws2_32, "WSAConnect", (DWORD)hack_WSAConnect, &new_WSAConnect);

	hook_api(&ws2_32, "send", (DWORD)hack_send, &new_send);
	hook_api(&ws2_32, "WSASend", (DWORD)hack_WSASend, &new_WSASend);
	hook_api(&ws2_32, "recv", (DWORD)hack_recv, &new_recv);
	hook_api(&ws2_32, "WSARecv", (DWORD)hack_WSARecv, &new_WSARecv);
	
	hook_api(&ws2_32, "sendto", (DWORD)hack_sendto, &new_sendto);
	hook_api(&ws2_32, "WSASendTo", (DWORD)hack_WSASendTo, &new_WSASendTo);
	hook_api(&ws2_32, "recvfrom", (DWORD)hack_recvfrom, &new_recvfrom);
	hook_api(&ws2_32, "WSARecvFrom", (DWORD)hack_WSARecvFrom, &new_WSARecvFrom);

	hook_api(&ws2_32, "gethostbyname", (DWORD)hack_gethostbyname, &new_gethostbyname);

	return 0;
}
Ejemplo n.º 2
0
// Yes, this _has_ to be included in every project.
// Visual C++ won't use it when imported from a library
// and just defaults to msvcrt's one in this case.
BOOL APIENTRY DllMain(HMODULE hDll, DWORD ulReasonForCall, LPVOID lpReserved)
{
	switch(ulReasonForCall) {
		case DLL_PROCESS_ATTACH:
			InitDll(hDll);
			break;
	}
	return TRUE;
}
Ejemplo n.º 3
0
/*!	@brief コンストラクタ

	BREGEXP.DLL 初期化、正規表現キーワード初期化を行う。

	@date 2002.2.17 YAZAKI CShareDataのインスタンスは、CProcessにひとつあるのみ。
	@date 2007.08.12 genta 正規表現DLL指定のため引数追加
*/
CRegexKeyword::CRegexKeyword(LPCTSTR regexp_dll )
{
	InitDll( regexp_dll );	// 2007.08.12 genta 引数追加
	MYDBGMSG("CRegexKeyword")

	m_pTypes    = NULL;
	m_nTypeIndex = -1;
	m_nTypeId = -1;

	RegexKeyInit();
}
Ejemplo n.º 4
0
//
//  函数: WndProc(HWND, UINT, WPARAM, LPARAM)
//
//  目的: 处理主窗口的消息。
//
//  WM_COMMAND	- 处理应用程序菜单
//  WM_PAINT	- 绘制主窗口
//  WM_DESTROY	- 发送退出消息并返回
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	int wmId, wmEvent;
	PAINTSTRUCT ps;
	HDC hdc;

	switch (message)
	{
	case WM_COMMAND:
		wmId    = LOWORD(wParam);
		wmEvent = HIWORD(wParam);
		// 分析菜单选择:
		switch (wmId)
		{
		case IDM_ABOUT:
			DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
			break;
		case IDM_EXIT:
			DestroyWindow(hWnd);
			break;
		case IDB_BUTTON:
			
			break;
		case IDB_BUTTON_CONNECT:
			TCHAR ip_port[MAX_NUM_BUF];
			memset(ip_port,0,MAX_NUM_BUF);
			GetWindowText(ipEditHwnd, ip_port, MAX_NUM_BUF);
			strcpy_s(ip, sizeof(ip), ip_port);
			memset(ip_port,0,MAX_NUM_BUF);
			GetWindowText(portEditHwnd, ip_port, MAX_NUM_BUF);
			port = atoi(ip_port);

			if(connectStatus != TRUE)//还未连接服务器,现在连接
			{
				// Windows Sockets 动态库的初始化
				InitDll(hWnd);
				//创建SOCKET
				InitSocket(clientSocket, hWnd);
				// 连接服务器
				connectServer(hWnd);
			}
			if(connectStatus != TRUE)
			{
				mySetWindowText("连接服务器失败");
				break;
			}
			break;
		case IDB_BUTTON_SEND:
		{
			if (connectStatus == FALSE)
			{
				mySetWindowText("还没连接,别乱发数据");
				break;
			}
			// 设置和获取文本框里的内容
			TCHAR editTextBuffer[MAX_NUM_BUF];
			memset(editTextBuffer,0,MAX_NUM_BUF);
			GetWindowText(sendEditHwnd, editTextBuffer, MAX_NUM_BUF);
			int ret = sendLine(clientSocket, editTextBuffer, hWnd);
			if (SOCKET_ERROR == ret)
			{
				mySetWindowText("发送失败");
				break;
			}
			break;
		}
		case IDB_BUTTON_CLOSE:
		{
			// 如果已经关闭 不作反应
			if (connectStatus == FALSE)
			{
				mySetWindowText("client has stopped");
				break;
			}
			sendLine(clientSocket, "close", hWnd);
			int ret = closeService(clientSocket);
			if(SOCKET_ERROR == ret)
			{
				mySetWindowText("client closesocket fail");
				break;
			}else if (TRUE == ret)
			{
				mySetWindowText("客户端关闭socket成功");
				break;
			} 
			mySetWindowText("服务器关闭不成功,但是怎么失败的我也不知道");
			break;
		}
			
		default:
			return DefWindowProc(hWnd, message, wParam, lParam);
		}
		break;

	case WM_LBUTTONDOWN:
		{
			// 设置和获取文本框里的内容
			/*
			TCHAR editTextBuffer[MAX_NUM_BUF];
			GetWindowText(receiveEditHwnd, editTextBuffer, MAX_NUM_BUF);
			HDC hdc = GetDC(hWnd);
			TCHAR newTextStr[MAX_NUM_BUF];
			wsprintf(newTextStr,TEXT("%s - %s"),editTextBuffer,"receiveEditHwnd");
			SetWindowText(receiveEditHwnd, newTextStr);
			*/
		
			break;
		}
		
	case WM_CREATE:
		{
			receiveEditHwnd = CreateWindow("edit", NULL,
				WS_CHILD | WS_VISIBLE | WS_BORDER | ES_AUTOHSCROLL | ES_MULTILINE ,
				30, 80, 300, 200, hWnd, (HMENU)HMENU_ID, ((LPCREATESTRUCT) lParam) -> hInstance, NULL);
	
			sendEditHwnd = CreateWindow("edit", NULL,
				WS_CHILD | WS_VISIBLE | WS_BORDER | ES_AUTOHSCROLL | ES_MULTILINE ,
				30, 370, 300, 50, hWnd, (HMENU)HMENU_ID, ((LPCREATESTRUCT) lParam) -> hInstance, NULL);

			ipEditHwnd = CreateWindow("edit", TEXT("192.168.1.101"),
				WS_CHILD | WS_VISIBLE | WS_BORDER | ES_AUTOHSCROLL | ES_MULTILINE ,
				50, 430, 130, 30, hWnd, (HMENU)HMENU_ID, ((LPCREATESTRUCT) lParam) -> hInstance, NULL);
			
			portEditHwnd = CreateWindow("edit", TEXT("5419"),
				WS_CHILD | WS_VISIBLE | WS_BORDER | ES_AUTOHSCROLL | ES_MULTILINE ,
				240, 430, 60, 30, hWnd, (HMENU)HMENU_ID, ((LPCREATESTRUCT) lParam) -> hInstance, NULL);
			
			buttonConnect = CreateWindow("button", TEXT("连接服务"),
				WS_CHILD | WS_VISIBLE | WS_BORDER  ,
				30, 470, 90, 30, hWnd, (HMENU)IDB_BUTTON_CONNECT, ((LPCREATESTRUCT) lParam) -> hInstance, NULL);

			buttonSend = CreateWindow("button", TEXT("发送数据"),
				WS_CHILD | WS_VISIBLE | WS_BORDER  ,
				130, 470, 90, 30, hWnd, (HMENU)IDB_BUTTON_SEND, ((LPCREATESTRUCT) lParam) -> hInstance, NULL);

			buttonClose = CreateWindow("button", TEXT("断开服务"),
				WS_CHILD | WS_VISIBLE | WS_BORDER  ,
				230, 470, 90, 30, hWnd, (HMENU)IDB_BUTTON_CLOSE, ((LPCREATESTRUCT) lParam) -> hInstance, NULL);

			buttonHwnd = CreateWindow("button", TEXT("B"),
				WS_CHILD | WS_VISIBLE | WS_BORDER  ,
				240, 10, 30, 20, hWnd, (HMENU)IDB_BUTTON, ((LPCREATESTRUCT) lParam) -> hInstance, NULL);

			break;
		}
	case WM_PAINT:
		hdc = BeginPaint(hWnd, &ps);
		// TODO: 在此添加任意绘图代码...
		EndPaint(hWnd, &ps);
		break;
	case WM_DESTROY:
		PostQuitMessage(0);
		break;
	default:
		return DefWindowProc(hWnd, message, wParam, lParam);
	}
	return 0;
}