본문 바로가기
프로그래밍/Windows API

꼭 알아야 할 필수 API 함수

by 호군 2010. 10. 27.
반응형

윈도우 환경에서 exe 파일을 분석할 경우 API 함수들을 많이 알고 있는 것이 분석에 도움이 된다. 디버거를 사용하여 현재 프로그램에서 사용되는 API 함수들을 나열할 수 있는데 함수들의 기능이나 리턴값을 알아야만 프로그램을 디버깅 하는 과정에서 브레이크포인트를 지정할 곳을 쉽게 찾아낼 수 있다. 여기서는 악성코드에서 자주 사용되거나 필히 알아 두어야 할 API 함수들에 대해서 살펴보도록 하겠다.

파일 및 디렉토리 관련 함수
- CreateFile : 파일을 생성하거나 연다
- ReadFile : 파일의 내용을 읽는다.
- WriteFile : 파일에 내용을 쓴다.
- SetFilePointer : 파일 포인터를 이동시킨다.
- CopyFile : 파일을 복사한다.
- GetFileAttribute : 파일이나 디렉토리의 속성을 저장한다.
- SetFileAttribute : 파일이나 디렉토리의 속성을 설정한다.
- FindFirstFile : 디렉토리에서 파일을 찾는다.
- FindNextFIle : 파일 검색을 계속한다. FindFirstFile 함수의 호출에 이어서 검색을 계속한다.
- GetModuleFileName : 파일의 절대 경로를 저장한다.
- GetSystemDirectory : 윈도우가 설치된 디렉토리를 저장한다.
- GetWindowsDirectory : 윈도우가 설치된 디렉토리를 알아낸다.
- GetCommandLine : 현재 프로세스의 commandline 문자열을 저장한다.
- Set CurrentDirectory : 현재 프로세스에 대해 현재 디렉토리를 바꾼다.
 
레지스트리 관련 함수
- RegCreateKey : 레지스트리키를 생성하거나 연다.
- RegOpenKeyEx : 레지스트리키를 연다.
- RegSetValueEx : 레지스트리 값을 설정한다.
- RegQueryValueEx : 타입과 데이터를 저장한다.
 
네트워크 관련 함수
- WSAStartup : WS2_32.DLL을 사용하기 위해 초기화 한다.
- socket : 소켓을 생성한다.
- recv : 연결되거나 바운드된 소켓으로부터 데이터를 받는다.
- send : 연결된 소켓으로 데이터를 보낸다.
- listen : 연결 요청이 들어오는 것을 기다린다.
- accept : 소켓을 통해 들어오는 연결을 허용한다.
- gethostbyname : 호스트 정보를 저장한다.
- ntohs : network byte order 를 host byte order 로 변환한다.
- inet_addr : IN_ADDR 구조체로 주소를 변환한다.
- WNetOpenEnum : 열거할 네트워크 자원에 대해 목록화 한다.
- WNetEnumResource : WNetOpenEnum 에서 나열된 데이터를 반복적으로 가져온다.
- InternetGetConnectedState : 로컬시스템의 연결 상태를 저장한다.
- ioctlsocket : 소켓의 입출력 모드를 제어한다.
 
메모리 관련 함수
- RtlZeroMemory : 한 메모리 블록을 0으로 채운다.
- GlobalAlloc : Heap 메모리를 할당한다.
 
기타함수
- ShellExecute : 프로그램 내에서 다른 프로그램을 실행시키기 위해 사용한다.
- GetProcAddress : SLL로부터 익스포트된 함수의 주소를 저장
- CreateThread : 실행할 쓰레드를 생성한다.
 
 
이 외에도 여러 가지 함수들을 알고 있어야 하며 함수들에 대한 자세한 내용은 WIN32.HLP 파일을 참조하면 된다.

반응형