- lumenFC 축구 동호회
- 마샤블
- 웍스프레소
- 소셜@나눔<소셜미디어나눔연구소>
- 리버스코어
- LAIN
- LAIN 이사한 블로그
- TeamCR@K
- Sunnyday
- 보안 걱정이
- 리버싱 학습
- securityfirst_jo
- Practical Security Blog
- 세상, 그 유쾌한 전장
- 악성코드관련블로그
- Back to the Mac
- 패킷분석입문
- PacketInside / 네트워크 패킷 분석 블로그
- 침해사고분석 :: 네이버 블로그
- 소프트웨어 기술자경력관리시스템
- JK.Moon
- 자바 온라인학습
- Ezbeat의 도서관
- Dreams of a Final Journey
- IT eBooks - Free Download - Bi…
- Index of /madchat/coding/rever…
- Security Insight
- Reversing war game
- 고길고기
- clamav
- zerowine
- FORENSIC-PROOOF
- jquery 예제
- 조대협의블로그
- 국가과학기술인력개발원 교육포털 사이트
- 빅데이터, splunk
- 지식을 연주하는 사람
- malware analysis system
- 건국대토익스피킹
- 소프트웨어개발 및 협업도구
kisoo
ChangeWindowMessageFilter 본문
권한이 낮은 어플리케이션에서 높은 어플리케이션으로 메시지를 전송 할때 사용 한다.
권한이 높은 어플리케이션에서 ChangeWindowMessageFilter api 를 사용하여 메세지를 필터에 등록 해 준다.
단, VISTA 와 WINDOWS 7 에서는 service session 과 user session 이 확연히 분리 되어 있다.
service process area 가 isolation 이라는 것이다. 그러므로 service porcess 와 user process 와 통신 하기 위해서는 아래와 같이 필터 등록 만으로 처리 할 수가 없다.
그렇게 하기 위해서 했던 방법으로는 named pipe or 높은 권한을 가진 service process 에서 user process 를
CreateProcessAsUser 로 실행 해 주는 방법이 있다. 그렇게 하므로써 named pipe 도 가능하게 된다.
이 방법에 대해서는 다음에 자세히 설명 하도록 하겠다.
//함수 선언부
typedef BOOL (WINAPI *CHANGEWINDOWMESSAGEFILTER)(
UINT message,
DWORD dwFlag
);
위 부분을 선언부에 선언 한 후에 아래의 함수 부분을 어플리케이션 entry function 에 넣어준다.
initdialog or initinstance
WM_COPYDATA의 경우
- Admin 권한 프로세스 -> User 프로세스 는 가능
-
User 프로세스 -> Admin 프로세스는 기본적으로 불가
HANDLE hDll;
CHANGEWINDOWMESSAGEFILTER ChangeWindowMessageFilter;
hDll= LoadLibrary("USER32.DLL");
ChangeWindowMessageFilter=(CHANGEWINDOWMESSAGEFILTER)GetProcAddress((HINSTANCE)hDll,"ChangeWindowMessageFilter");
if(ChangeWindowMessageFilter == NULL)
return;
//WM_COPYDATA 메세지를 필터에 등록해준다.
ChangeWindowMessageFilter(WM_COPYDATA,1); //1 = add , 2 = remove
FreeLibrary(hDll);
참조 : http://blog.naver.com/remipa01?Redirect=Log&logNo=90015086046