Python으로 윈도우 애플리케이션을 해킹하기 위해서는 Windows API에 대한 기본 지식이 필요하다. Windows API는 Microsoft에서 제공하는 API 모음이다. 애플리케이션을 개발하려면 Windows API를 통해 운영체제, 또는 커널에서 지원하는 다양한 기능을 활용할 줄 알아야 한다. 애플리케이션 해킹 관련 게시글들에서는 Windows 32bit 환경에서 지원되는 Win32 API를 주로 다룰 예정이다. 1
Windows 애플리케이션을 개발할 때에는 lib와 DLL 형태의 라이브러리를 사용한다. lib는 정적 라이브러리로, Windows 실행 파일인 exe 파일이 생성될 때 같이 포함된다. DLL(Dynamically Linked Libraries)는 동적 라이브러리로, 애플리케이션 실행 시점에 기능이 호출되는 방식으로 사용된다. 여기서 Win32 API는 대부분 DLL 형식으로 지원된다. 대표적인 DLL들은 아래 표를 참고하자.
종류 |
특징 |
kernel32.dll |
파일 시스템, 디바이스, 프로세스, 스레드와 같은 기초적인 리소스에 대한 접근 |
user32.dll |
· 사용자 인터페이스 담당 · 윈도우 창 생성·관리, 윈도우 메시지 수신, 화면에 텍스트 표현, 메시지 박스 표현 |
advapi32.dll |
레지스트리, 시스템 종료/재시작, 윈도우 서비스 시작/종료/생성, 계정 관리 등 |
gdi32.dll |
모니터, 프린터, 기타 출력 장치에 대한 관리 |
comdlg32.dll |
파일 열기, 파일 저장, 색상, 폰트 선택과 관련된 표준 대화 창 관리 |
comctl32.dll |
상태 바, 진행 바, 툴 바 등 운영체제에서 지원하는 기능에 대한 응용 프로그램의 접근 |
shell32.dll |
운영체제의 셸에서 제공하는 기능을 응용 프로그램이 접근할 수 있도록 지원 |
netapi32.dll |
운영체제에서 지원하는 다양한 통신 기능을 응용 프로그램이 접근할 수 있도록 지원 |
Windows용 개발 언어(Visual C++, C# 등)는 Win32 API를 직접 호출해서 사용할 수 있다. Win32 API는 저수준 운영체제 기능을 제어할 수 있는 다양한 인터페이스를 제공하기 때문에 애플리케이션 개발뿐만 아니라, 디버깅 및 해킹 프로그램 개발에 많이 사용된다.
- 응용 프로그래밍 인터페이스(Application Programming Interface, API) : 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스 [본문으로]
'System > Cybersecurity' 카테고리의 다른 글
pydbg 모듈을 활용한 API 후킹 - (2) 메모장에 저장되는 텍스트 변조 (0) | 2019.03.28 |
---|---|
pydbg 모듈을 활용한 API 후킹 - (1) 디버거의 개념과 pydbg 모듈 설치 (0) | 2019.03.25 |
Python에서 Win32 API 활용하기 - ctypes 모듈 (0) | 2019.03.19 |
레지스터의 종류 - 범용 레지스터, 세그먼트 레지스터, 플래그 레지스터 (0) | 2019.03.09 |
정보보안 단어 요약정리 (0) | 2018.12.01 |