반응형

* GetForegroundWindow

 데스크톱에서 현재 포어그라운드로 수행 중인 핸들을 반환한다. 키로거는 보통 이 함수를 이용해 어떤 윈도우에서 사용자가 키 입력을 하고 있는지 확인한다.


* gethostbyname

 원격 호스트로 IP 연결하기 전에 특정 호스트명에 대한 DNS 질의를 수행할때 사용한다. 명령 제어 서버가 제공하는 호스트명은 네트워크 기반의 좋은 시그니처가 될 수 있다.


* gethostname

 컴퓨터의 호스트명을 검색한다. 백도어는 공격 대상 장비를 조사할 때 때때로 gethostname을 사용한다.


* GetKeyState

 키로거가 키보드에서 특정 키의 상태 정보를 획득할 때 사용한다.


* GetModuleFilename

 현재 프로세스에 로드된 모듈 파일명을 반환한다. 악성코드는 이 함수를 이용해 현재 실행 중인 프로세스 내의 파일을 수정하고 복사한다.


* GetModuleHandle

 이미 로드한 모듈의 핸들을 가져올 때 사용한다. 악성코드는 GetModuleHandle 을 이용해 로드한 모듈에서 코드를 위치시키고 수정하거나 코드 인젝션에 사용할 좋은 위치를 탐색한다.


* GetProcAddress

 메모리로 로드한 DLL에서 함수 주소를 검색한다. PE 파일 헤더에서 임포트한 함수뿐 아니라 다른 DLL에서 함수를 임포트할 때 사용한다.


* GetStartupInfo

 표준 핸들이 위치한 곳과 같이 현재 프로세스의 실행 환경에 관한 세부 정보를 담고 있는 구조체를 검색한다.


* GetSystemDefaultLangId

 시스템의 기본 언어 설정을 반환한다. 이를 이용해 특정 지역에 있는 시스템만 영향을 받게 하는 ‘충성스러운’ 악성코드는 감염 장비의 정보를 일부로 화면과 파일명을 개별화한다.


* GetTempPath

 임시 파일 경로를 반환한다. 악성코드가 이 함수를 호출하면 임시 파일 경로에 임의의 파일을 읽고 쓰는지 확인한다.


* GetThreadContext

 주어진 스레드의 컨텍스트 구조체를 반환한다. 스레드 컨텍스트는 레지스터 값과 현재 상태 같은 스레드 정보 모두를 저장한다.


* GetTickCount

 부팅 시간 이후 경과 시간을 밀리초로 가져온다. 이 함수는 때때로 안티디버깅 기법으로 시간 정보를 수집할 때 사용한다. 컴파일러가 종종 GetTickCount를 추가해 많은 실행 파일을 포함하므로 단순히 이 함수가 임포트됐다고 해도 알아 낼 수 있는 정보는 거의 없다.


* GetVersionEx

 윈도우 현재 실행 버전에 관한 정보를 반환한다. 이를 이용해 공격 대상을 관찰하거나 다른 버전의 윈도우 사이에 바뀐 문서화하지 않은 구조체의 다른 오프셋 중에 선택한다.


* GetWindowsDirectory

 윈도우 디렉토리(보통 C:\Windows)의 파일 경로를 반환한다. 악성코드는 이를 호출해 추가적인 악성 프로그램을 설치할 디렉토리를 알아낸다.


* inet_addr

 connect와 같은 함수가 사용할 수 있게 127.0.0.1과 같은 IP 주소 문자열을 반환한다. 지정된 문자열은 네트워크 기반 시그니처로 활용할 수 있다.


* InternetOpen

 InternetOpenUrl 이나 InternetReadFile 같이 WinINet에서 인터넷에 접근할 수 있는 상위 수준 함수를 초기화 한다. InternetOpen을 검색하면 인터넷 접속 기능 시작점을 발견할 수 있는 좋은 방법이다. InternetOpen 파라미터 중 하나는 User-Agent 인데, 좋은 네트워크 기반 시그니처로 활용할 수 있다.



반응형

+ Recent posts