Hooking - 이미 작성되어 있는 코드의 특정 지점을 가로채서 동작 방식에 변화를 주는 일체의 기술


훅 프로시저 설치 함수
HHOOK SetWindowHookEx(int idHook, HOOKPROC lpfn, HINSTANCE hMod, DWORD dwThreadld);

int idHook - 어떠한 이벤트에 대해서 후킹을 할것인가
HOOKPROC lpfn - 키보드 이벤트를 받을 훅 프로시저 명
HINSTANCE hMod - 누가 이 훅 체인을 등록할것인지
DWORD dwThreadld - 어느 스레드한테 후킹할것인가


LRESULT CALLBACK keyboardProc(int code, WPARAM wParam, LPARAM lParam);

code - 메시지를 어떤 처리를 할 것인가를 결정
wParam, lParam - 전달된 메시지에 대한 추가 정보

메시지를 훅 체인의 다음 훅 프로시저에게 전달해주는 함수
LRESULT CallNextHookEx(HHOOK hhk, int cCode, WPARAM, wParam, LPARAM, lParam);

'API & MFC > API & 시스템프로그래밍' 카테고리의 다른 글

Dll이란?  (0) 2010.01.24
파이프 추가내용  (0) 2010.01.20
서비스  (0) 2010.01.13
IPC란?  (0) 2010.01.12
동기화  (0) 2010.01.12
Posted by 아몰라
서비스 - 백그라운드에서 실행되는 프로그램 (유닉스식으로 표현하면데몬)

1. WIN32 서비스 - SDK영역
 
2. 드라이버 서비스 - DDK영역(저수준이고 익히는 사람도 드물다)
WinMain
{
윈도우생성 X
}

서비스 하나 만들기 위한 세 가지 프로그램

  • 서비스 프로그램 - 실제로 서비스 코드를 제공하는 프로그램
  • 서비스 설정 프로그램 - 서비스 설치와 제거에 대한 작업을 수행하는 프로그램
  • 서비스 제어 프로그램 - 사용자로부터 명령을 받아 서비스에게 명령을 전달하는 프로그램

'API & MFC > API & 시스템프로그래밍' 카테고리의 다른 글

파이프 추가내용  (0) 2010.01.20
Hooking  (0) 2010.01.15
IPC란?  (0) 2010.01.12
동기화  (0) 2010.01.12
디폴트 함수  (0) 2010.01.04
Posted by 아몰라

Ipc 는 두 프로그램이 상호 통신하며 정보를 교환하는 방법이다.


- 메세지

- 파이프

- 메일슬롯

- 소켓

파일매핑 - 프로세스간에 자원공유

등이 있다.


CreateNamedPipe(파이프명(\\.\pipe\파이프명, Access모드(읽고 쓰기), 파이프유형, 5(같은 파이프 이름 최대의 인스턴스 개수, 4096, 4096, 0(접근을 하기위한 대기시간), 보안기술자); 


메세지 보내는 유형
Stream - 파일같은거 보낼 때  PIPE_TYPE_BYTE 

Dgram   -리얼타임보장 예) 방송   PIPE_TYPE_MESSAGE


CreatenamedPipe()
----------------(1) 이 사이에 클라이언트 접속시 ConnectenamedPipe False로 반환된다.
ConnectenamedPipe(핸들, 0);

if(!Check)&&(GetLastError() == ERROR_PIPE_CONNECTED)) //(1) 상황일시 발생
{
Check = true;
}
if(Check)
{

}

FlushFileBuffer(hfile); //ffulsh와 유사, Disconected 를 해도 문제가 생기는데 운영체제에서 버퍼가 남는 문제가 생길수있다.

직렬화 - 객체정보를 화일에 전송

역직렬화 - 생성자

'API & MFC > API & 시스템프로그래밍' 카테고리의 다른 글

Hooking  (0) 2010.01.15
서비스  (0) 2010.01.13
동기화  (0) 2010.01.12
디폴트 함수  (0) 2010.01.04
API (원 가지고 놀기)  (0) 2010.01.04
Posted by 아몰라