본문 바로가기

전체 글294

02/02 - Async version *Client Connect시 Thread 실행됨. //스레드 UINT ThreadIOEvent(LPVOID pParam){ CString tmp = _T(""); char szBuffer[U_BUFSIZE]; //create event WSAEVENT hEvent = ::WSACreateEvent(); //registry event if(::WSAEventSelect(g_hSocket,hEvent,FD_READ|FD_CLOSE) == SOCK_ERROR){ tmp.Format(_T("WSAEventSelect Error. [Error Code:%d]"),::WSAGetLastError()); AfxMessageBox(tmp); ::WSACloseEvent(hEvent); return 0; } //wai.. 2009. 2. 2.
02/02 - tcp/ip network programming - client src void CTCPEchoClientDlg::OnButtonConnectServer() { // TODO: Add your control notification handler code here //create socket and connect CString tmp = _T(""); //create socket g_hSocket = ::socket(PF_INET,SOCK_STREAM,0); if( g_hSocket == INVALID_SOCKET){ tmp.Format(_T("Fail to create socket"),::WSAGetLastError()); AfxMessageBox(tmp); return; } //create socket information (bind) SOCKADDR_IN SockAddr.. 2009. 2. 2.
0202 - TCP/IP Network Programming * TCP/IP에서 클라이언트가 서버에 요청하여 접속함. *윈도우에서 네트워킹 사용하기 (수동버전) * 게임접속중에 리셋키가 눌리면 서버는 감지를 못한다. 가능한 판단기준. 1. 좀비를 결정하는 루틴을 잘해야한다. 2. 중복된세션이 생겼다. 기존세션을 끊는것이 우선적이다. 물론 기존세션에 알려주어야한다. 3. 이러한 중복세션이 빈번하면 일시적인 블럭을 걸어준다.(해킹가능성고려) 4. 서버는 우선 안정성이 최고이다. //rawsocket : SOCKET_RAW임.. 근데 윈도우에서 잘 안쓰임 //----StdAfx.h에서 #include //확장된 기능을 사용한다. #pragma comment(lib, "Ws2_32") //----- App에서 넣어야할 코드 InitInstance()에서{ CString .. 2009. 2. 2.
0130 - Network프로그래밍 *OSI 7Layer기준 사용자모드 -------------------------- 커널 4계층(TCP) = 포트번호 외부로 전송될 때 일어난다. NAT의 특성때문에 공유기환경에서 파일전송등의 상황을 생각해보자. 파일전송은 실제로 보내는것이 아니라 포트를 열어두고(송신측), 반대쪽(수신측)이 접속하는거다.. 라우팅테이블에있는가? *사설망간의 통신을 고려해야한다. *MSN백서 2009. 1. 30.
0129 - Process실행, 부팅의 개념 *OpenProcess에서 실제 프로세스를 실행한다.. 이걸보면... 어떻게짰는지 방법이 다나온다.. *다른방법 ==> IAT를 조작하지않고.. 직접 어셈블리 자체를 건드려버린다. Kernel32.DLL을 후킹한다. 그리고 주소를 얻어와서 Write권한얻고... 기존의 내용을 백업한다. 그리고나서 그공간에 내가 실행하려는것과 주소 차이값을 가지고있다가... 0xE9(어셈블리로 jmp)를 넣는다(물론 타겟주소는 내가 작성한것이다.)... memcpy면 가능하지? ㅡㅡㅋ 이건 unhook시에는 0xE9로 대체한곳을 변경한다. 단... 이러한경우 작업중인프로세스들에서 죽을수도있다 후킹한 함수에서는 실제 후킹하기전에 unhook을 하고 OpenProcess를 한다. (OpenProcess를 후킹해야한다) 그리고.. 2009. 1. 29.
0129 - Message Hook *함수를 Hook한다. = 주소를 바꾸어버린다~. 보안이냐 바이러스냐. 어차피 둘다 써먹는일이다. *MFC에서 메시지 훅을 아주 대놓고 지원해준다. 바로.. 1)SetWindowHookEx 2)APIHook - IATHook - Hook(주소변경) 1)은 MS에서 지원하는 채널을 통한 훅이있다. 그러나 2)로가면 리눅스/윈도우 상관없이 다먹힌다.. -0-;; 지존은 PIC를 건드리는것을 후킹하는것. 방법이 아예없다. 즉, 로우레벨로 내려가버리면... ㅋ;;; 1) SetWindowHookEx의 치명적 보안결함은 무엇이든 다 후킹할 수 있다. 만약 내가 dll을 로드해놓았다. 현재 실행중인 어떠한 프로세스로 포커스를 옮겨서 후킹할 준비를 시켜버리면... 그 실행프로세스의 가상메모리공간에 MsgHook.dl.. 2009. 1. 29.
728x90