울타리 { PROTECTS YOUR SYSTEM FROM MALWARE } 최신 버전 : 2.6, 업데이트 날짜 : 2009년 2월 17일 |
[ 자세히 알아보기... ] |
이번 업데이트에는, 오토런 바이러스를 차단하는 프로그램이 추가되었습니다.
오토런 바이러스의 대표적인 예로는 최근 이슈화되고 있는 2090 바이러스가 있습니다.
자세한 내용은, http://rodream.net 을 참고하여 주십시오 ^^
울타리 { PROTECTS YOUR SYSTEM FROM MALWARE } 최신 버전 : 2.6, 업데이트 날짜 : 2009년 2월 17일 |
[ 자세히 알아보기... ] |
울타리 { PROTECTS YOUR SYSTEM FROM MALWARE } 최신 버전 : 2.3, 업데이트 날짜 : 2008년 11월 26일 |
[ 자세히 알아보기... ] |
소스 파일 다운로드
[그림1] Shared Memory (Section) 는 Session 마다 개별적으로 이름을 가지게 되며(e.g. \Session\1\이름) 각 Session 은 다른 Session 의 Section 을 침범할 수 없다.
위의 코드는 Pipe 를 생성할 때, Security Attribute 속성을 지정하여, 낮은 권한의 프로그램에서도 해당 Pipe 를 열 수 있도록 허용하는 코드이다.
BYTE sd[SECURITY_DESCRIPTOR_MIN_LENGTH];
SECURITY_ATTRIBUTES sa;
sa.nLength = sizeof(sa);
sa.bInheritHandle = TRUE;
sa.lpSecurityDescriptor = &sd;
InitializeSecurityDescriptor(&sd, SECURITY_DESCRIPTOR_REVISION);
SetSecurityDescriptorDacl(&sd, TRUE, (PACL) 0, FALSE);
hPipe = CreateNamedPipe(
pInfo->szPipeName, // pipe name
PIPE_ACCESS_DUPLEX, // read/write access
PIPE_TYPE_MESSAGE | // message type pipe
PIPE_READMODE_MESSAGE | // message-read mode
PIPE_WAIT, // blocking mode
PIPE_UNLIMITED_INSTANCES, // max. instances
BUFSIZE, // output buffer size
BUFSIZE, // input buffer size
0, // client time-out
&sa); // default security attribute
프로토콜 정의
[CMDS (정상적인 PIPE 패킷이라는 서명(sign)), 4바이트]
[명령, 4바이트]
[명령 번호, 4바이트]
[추가 정보 길이, 4바이트]
[추가 정보, 추가 정보 길이에 명시된 길이 ~ 버퍼의 최대 길이]
이 프로토콜에 맞는 형식을 갖춘 데이터들은 내부적으로 사용자가 지정한 함수 포인터를 호출한다. 그리고 마지막으로, 그렇게 호출된 함수의 반환값을 다시 클라이언트에 보내주는 것으로 서버는 하나의 패킷에 대한 처리를 마무리 하게 된다.
이 클래스를 사용하는 방법은 매우 간단하다.
먼저, 클래스를 선언한 후, StartPipeServer 함수를 호출해 주면 된다.
다음은 간단한 예제이다.
#include "PipeServer.h"
CPipeServer g_pipeServer;int WINAPI ProcessIO(DWORD dwCmd, DWORD dwCmdNumber, DWORD dwLen, char* lpszData, DWORD* pdwRetLen, char* lpszReturn)
{
char szMsg[1024];
sprintf(szMsg, "Cmd : %d, CmdNumber : %d, dwLen : %d, lpszData : %s",
dwCmd, dwCmdNumber, dwLen, lpszData );strcpy( lpszReturn, "ProcessIO 에서 처리한 내용! : " );
strcat( lpszReturn, szMsg );
*pdwRetLen = strlen(lpszReturn);return 0;
}
DWORD WINAPI ServiceExecutionThread(LPDWORD param)
{
g_pipeServer.StartPipeServer( "\\\\.\\pipe\\VistaSvcIPC", ProcessIO );
return 0;
}
이렇게 구성된 프로그램을 서비스로 만들고, 일반 권한 프로그램에서 이 서비스와 통신하게 할 수 있다. 클라이언트에 대한 코드는 아래와 같다.
void CNormalPrgDlg::OnButton1()
{
static BOOL bConnected = FALSE;if(bConnected) {
CString szText;
m_edt.GetWindowText( szText );char szBuffer[BUFSIZE] = { 0, };
char szRetData[BUFSIZE] = { 0, };
DWORD dwRetLen = 0;
strcpy(szBuffer, szText);
g_pipeClient.Send(1024, GetTickCount(), strlen(szBuffer)+1, szBuffer, &dwRetLen, szRetData);
m_lst.InsertString(0, szRetData);
} else {
bConnected = g_pipeClient.ConnectPipe("\\\\.\\pipe\\VistaSvcIPC");
}
}
이 예제가 동작하는 모습은 아래와 같다.
[그림2] 실제 IPC 예제 프로그램이 동작하는 화면
그동안 많은 분들을 속썩여왔던 윈도우즈 업데이트.
사용하기도 복잡하고, 너무 느리고, 더군다나 인증 체제가 강화되면서 인증이 안되신 분들은 업데이트 조차 설치되지 않아서 골치를 썩히게 했던 것을 드디어 해결할 수 있게 되었습니다.
이 윈도우즈 업데이트 설치 프로그램 의 정식 버전을 릴리즈 합니다.
이 프로그램은 다른 프로그램들과 달리 다운로드를 받아서 설치하여 주기 때문에, 한번 다운로드를 받아두면 나중에 인터넷이 안되는 환경에서도 충분히 사용하실 수 있습니다.
이 프로그램의 주요 기능과 특징은 다음과 같습니다.
1. 인증을 받지 않아도 중요 윈도우즈 업데이트가 가능!
2. 한번 다운로드 받아두면, 다시 다운로드 받아도 설치할 수 있기 때문에, 윈도우 재설치 후 인터넷이 안되는 상황에서도 사용 가능!
3. 군더더기 전혀 없이 간단하고 깔끔한 사용법과 프로그램
그럼 즐거운 윈도우즈 업데이트 되세요~
사용중 불편에 대한 문의는 홈페이지나 블로그로 해 주세요!
프로그램 다운 로드 받기
개꿈닷넷에서 배포하는 무료 프로그램들 다운로드 받기
|
[개꿈닷넷에서 배포하는 공짜 프로그램 다운받기!]