728x90
윈도우 API
- 윈도우 어플리케이션 개발시 사용하는 API
- 이 API로 OS에서 제공하는 기능 사용
- Win32 : 32비트 윈도우 API
일반적인 윈도우 API
- 동적 라이브러리 DLL로 제공
- 다양한 언어에서 호출하여 사용 가능
종류 | 특징 |
kernel32.dll | 파일 시스템, 디바이스, 프로세스 등 기본 리소스 접근 기능 |
user32.dll | ui 지원, 윈도우 창 생성 관리, 화면 및 메시지 표현 |
gdi32.dll | 모니터 등 출력장치 관리 지원 |
comdig32.dll | 파일 입출력 및 표준 대화 창 관리 |
comctl32.dll | 상태 바, 진행 바 등 응용프로그램 등 접근 지원 |
shell32.dll | 쉘 기능 접근 지원 |
netapi32.dll | 다양한 통신 기능을 응용프로그램에서 쓸수있도록 지원 |
advapi32.dll | 레지스트리, 윈도우 서비스 시작 종료, 계정 관리 등 |
ctypes
- 파이썬으로 ctypes를 이용하여 DLL과 C언어 변수 사용 가능
ctypes 기능 | 설명 |
DLL 로드 | windll.kernel32, windll.user32 |
API 호출 | windll.user32. SetWindowsHookExA |
함수 인자 자료형 지정 | printf = libc.printf print.argtypes = [c_char_p, c_int, c_double] printf("String %s, int %d, bouble %f\n", "hello", 1, 3.14) |
함수 반환값 타입 지정 | libc.strchr.restype = c_char_p |
자료형 예시 | i = c_int(42) pi = POINTER(c_int) |
포인터 전달 | f = c_float() s = create_string_buffer("\000" *32) windll.msvcrt.sscanf("1 3.14 wow", "%f %s", byref(f), s) |
콜백 함수 선언 | def py_cmp_func(a, b): print "py_cmp_func", a, b return 0 CMPFUNC = CFUNCTYPE(c_int, POINTER(c_int), POINTER(c_int)) cmp_func = CMPFUNC(py_cmp_func) windll.msvcrt.qsort(ia, len(ia), sizeof(c_int), cmp_func) |
구조체 선언 | class POINT(Structure): _fileds_ = [("x", c_int), ("y", c_int)] point = POINT(10, 20) |
300x250
'컴퓨터과학 > 통신, 보안' 카테고리의 다른 글
해킹 - 6. 키보드 후킹 (0) | 2020.07.29 |
---|---|
해킹 - 5. 후킹 (0) | 2020.07.29 |
해킹 - 3. 관련 용어 (0) | 2020.07.28 |
해킹 - 2. 해킹 종류 (1) | 2020.07.28 |
해킹 - 1. 해킹 개요 (0) | 2020.07.28 |