인생은 잘 가다가 한 방에 훅 간다.
프로그램도 잘 실행되다가 바이러스에 한 방에 훅 간다.
이런 바이러스를 막는 방법에 사용되는 기법중 하나가 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 [사용되지 않는 메모리 사용]
그럼 좋은 프로그램 제작에 도움이 되면 좋겠습니다.
'IT-개발,DB' 카테고리의 다른 글
[개발] C# 프로그래머 참조 - 문서 주석에 대한 권장 태그 <summary> (0) | 2010.10.29 |
---|---|
[개발] C# 프로그래머 참조 - 문서 주석에 대한 권장 태그 <value> (0) | 2010.10.29 |
[asp.net] IIS 6 웹서버 설정예 (0) | 2010.10.28 |
[개발] [asp.net 2.0] 비하인드코드에서 클라이언트 스크립트 사용하기 (0) | 2010.10.28 |
[개발] [ASP.NET] 엑셀 파운 다운로드/업로드(소스) (1) | 2010.10.28 |
댓글