목록Reversing (12)
Hacking Arts
- 키보드 메시지 후킹 실습 [그림 1 키보드 후킹 원리 그림] KeyboardProc.dll 파일은 훅 프로시저 KeyboardProc가 존재하는 DLL파일입니다. HookMain.exe는 KeyHook.dll을 최초로 로딩하여 키보드 훅을 설치하는 프로그램 입니다.HookMain.exe에서 KeyHook.dll 파일을 로딩한 후 SetWindowHookEx()을 이용하여 키보드 훅을 설치합니다. 다른 프로세스에서 키 입력 이벤트가 발생하면 OS에서 해당 프로세스의 메모리 공간에 KeyHook.dll을 강제로 로딩하고 KeyboardProc()함수가 호출되는 형태입니다. 중요한 점은 키 입력 이벤트가 발생하면 강제로 로딩 시켜준다는 점입니다. 즉 메시지 후킹 기법은 DLL인젝션 기법의 하나로 사용됩니다..
-윈도우에서 메세지란?일단 메세지 후킹에 대해 작성하기전에 메세지에 대해 알아보자.어떤 책에서 읽은 내용인데 윈도우는 이벤트 지향,메세지 기반 운영체제이다. 여기서 말하는 메세지란 마우스를 움직이거나 키보드로 입력하는 행위라고 할 수 있다. 윈도우의 메시지 처리 과정은 1 이벤트 발생 2 메세지 전송 3 메세지 처리 4 화면 출력 이런식으로 이루어진다고 생각하면 된다.이벤트는 주로 입력장치(키보드,마우스)에서 발생되면 이를 CPU에 알리기 위해 메세지를 생성후 전송하고 이를 처리하여 다시 출력장치(모니터,프린터)로 결과 값을 보여주는 등의 과정이 윈도우에서 메세지 처리 방식이다. 메세지 처리하는 두가지 방법1.에플리케이션이 가지고 있는 메시지 큐에 메세지를 추가하는 방법2.에플리케이션의 윈도우 프로시저에..
- Windows Hook : 훅이라는 단어는 사전적으로는 낚시바늘이나 갈고리 같이 낚다라는 뜻을 가지고 있다. 그러므로 Windows Hook이라고 하면 Windows OS에서 무언가를 낚아챈다라고 이해 할 수 있다. - Windows Hook 종류 - Code Project의 Three Ways to Inject Your Code into Another Process에서의 Windows Hook 종류1.Local hooks : 자신의 프로세스에 구성된 스레드들의 메시지 트래픽을 감시2.Remote hooks : 다른 프로세스에 속해진 스레드들의 메시지 트래픽을 감시3.Remote hooks : 현재 시스템에서 동작하는 모든 스레드들의 메시지 트래픽을 감시 Local hooks의 경우를 제외하고는 수행..
[GetLastError()]윈도우 Error 코드 ERROR code/Control 윈도우를 하다보면 가끔씩 이유없이 에러가 날때가 있습니다. 아래의 글은 그 에러코드를정리한 것입니다..사실 초보자에게는 ㅡㅡ;; 그냥 궁금증정도만 해결될것 같네요 0 0x0000 작업을 완료했습니다. 1 0x0001 올바르지 않은 함수입니다. 2 0x0002 지정한 파일을 찾을 수 없습니다. 3 0x0003 지정한 경로를 찾을 수 없습니다. 4 0x0004 파일을 열 수 없습니다. 5 0x0005 접근이 거부되었습니다. 6 0x0006 잘못된 핸들입니다. 7 0x0007 저장 컨트롤 블록이 손상되었습니다. 8 0x0008 저장 공간이 부족해서 이 명령을 수행할 수 없습니다. 9 0x0009 저장 컨트롤 블록 주소가 올바..