반응형

* InternetOpenUrl

 FTP, HTTP, HTTPS를 사용해 특정 URL 연결을 오픈한다. URL이 고정이라면 좋은 네트워크 기반의 시그니처로 사용할 수 있다.


* InternetReadFile

 이전에 오픈한 URL에서 데이터를 읽는다.


* InternetWriteFile

 이전에 오픈한 URL에서 데이터를 쓴다.


* IsDebuggerPresent

 현재 프로세스가 디버깅 중인지 여부를 확인하는데, 안티디버깅 기법의 일부로 종종 사용한다. 이 함수는 컴파일러가 종종 추가해 많은 실행 파일에 포함돼 있으므로 단순히 이 함수를 임포트한 사실만으로 알아낼 수 있는 정보는 거의 없다.


* IsNTAdmin

 사용자가 관리자 권한을 갖는지 확인한다.


* IsWoW64Process

 32비트 프로세스가 64비트 운영체제에서 동작하고 있는지 확인할 때 사용한다.


* LdrLoadDll

 LoadLibrary와 같이 프로세스로 DLL을 로드하는 하위 수준의 함수다. 일반 프로그램은 LoadLibrary를 사용하므로 임포트 함수의 존재 여부로 프로그램이 은폐 시도를 하는지 알 수 있다.


* LoadLibrary

 프로그램을 시작할 때 로드하지 않은 프로세스로 DLL을 로드한다. 거의 모든 Win32 프로그램이 임포트한다.


* LoadResource

 PE 파일에서 메모리로 리소스를 로드한다. 악성코드는 때때로 문자열, 설정 정보, 다른 악의적인 파일을 저장할 목적으로 리소스를 사용한다.


* LsaEnumerateLogonSessions

 현재 시스템에서 로그온 세션을 수집하는데 계정 정보를 훔치는 용도로 사용할 수 있다.


* MapViewOfFile

 메모리로 파일을 매핑해서 메모리 주소를 통해 파일 내용에 접근할 수 있게 한다. 실행기, 로더, 주입기는 이 함수를 이용해 PE 파일을 읽고 수정한다. MapViewOfFile을 이용해 악성코드는 파일 내용을 수정할 목적으로 WriteFile을 사용하지 않을 수 있다.


* MapVirtualKey

 가상 키 코드를 문자 값으로 변환한다. 키로깅 악성코드가 자주 사용한다.


* MmGetSystemRoutineAddress

 GetProcAddress와 유사하지만 커널 코드가 이용한다. 이 함수는 다른 모듈에서 함수 주소를 알아낼 수 있지만, ntoskrnl.exe와 hal.dll에서만 가능하다.


* Module32First/Module32Next

 프로세스로 로드한 모듈을 수집하는 데 사용한다. 주입기는 이 함수를 이용해 코드 인젝션 위치를 결정한다.


* NetScheduleJobAdd

 특정 날짜와 시간에 실행할 프로그램 요청을 추가한다. 악성코드는 NetScheduleJobAdd를 이용해 다른 프로그램을 동작할 수 있다. 악성코드 분석가로서 미래에 실행될 프로그램 위치를 알아내고 분석할 필요가 있다.


* NetShareEnum

 네트워크 공유 정보를 수집할 때 사용한다.


* NtQueryDirectoryFile

 디렉토리에서 파일 관련 정보를 반환한다. 루트킷을 주로 파일을 숨길 용도로 이 함수를 후킹한다.


* NtQueryInformationProcess

 특정 프로세스에 관련한 다양한 정보를 반환한다. 이 함수는 때때로 CheckRemoteDebuggerPresent와 동일한 정보를 반환하기 때문에 안티디버깅 기법으로 사용하기도 한다.


반응형

+ Recent posts