본문 바로가기
IT-개발,DB

[개발] API Hooking

by SB리치퍼슨 2010. 10. 28.


인생은 잘 가다가 한 방에 훅 간다.
프로그램도 잘 실행되다가 바이러스에 한 방에 훅 간다.
이런 바이러스를 막는 방법에 사용되는 기법중 하나가 API Hooking(후킹)이다.

간략하게 후킹에 대해서 정리를 해보았다.

API Hooking

후킹(Hooking)이란 API 함수의 호출을 인터셉트(가로채다)하는 것을 의미한다.
어떤 소프트웨어의 작동을 변경하고 싶다면 후킹을 사용해서 할 수 있다.
후킹은 백신, 보안, 시스템 유틸, 프로그래밍 툴에 사용되고 있다.


Hook의 종류

1 Local Hook : 특정 어플리케이션에 대해서만 적용된다.

2 Global Hook : 시스템에서 사용되는 모든 프로세스에 적용된다.

 2.1
  Thread-specific : 한 프로세스에 속한 특정 쓰레드의 메세지 트래픽을 모니터링
  System-wide : 현재 실행중인 모든 쓰레드의 메세지 트래픽을 모니터링

 2.2
  - Injecting a DLL using registry
  - Injecting a DLL using Window hook
  - Injecting a DLL using remote thread
  - Injecting a DLL with Trojan DLL
  - Injecting a DLL as debugger

Method
  CreateRemoteThread [일반적 DLL Loader 프로그램]
  SetWindowsHookEx  [윈도우즈 메세지 후킹]
  Code Cave [사용되지 않는 메모리 사용]


그럼 좋은 프로그램 제작에 도움이 되면 좋겠습니다.

반응형

댓글