반응형


정적 기초 분석을 수행하면서 임포트 테이블 정보를 수집하려 하거나 제대로 고급 기법을 이용하려 할 때 참고  


* accept

  들어오는 연결을 리스닝할 때 사용한다. 이 함수는 프로그램이 소켓에서 수신 연결을 리스닝하고 있음을 암시한다.


* AdjustTokenPrivileges

  특정 권한을 활성화하거나 비활성화할 때 사용한다. 프로세스 인젝션을 행하는 악성코드는 종종 추가 권한을 얻기 위해 이 함수를 호출한다.


* AttachThreadInput

  두 번째 쓰레드가 키보드나 마우스 같은 입력 이벤트를 수신할 수 있게 하나의 쓰레드가 다른 쓰레드의 입력을 처리할   때 사용한다. 키로거나 스파이웨어가 이 함수를 이용한다.


* bind

  들어오는 연결을 리스닝할 목적으로 로컬 주소에 연관 지을 때 사용한다.


* BitBlt

  한 장치에서 다른 장치로 그래픽 데이터를 복사할 때 사용한다. 스파이웨어는 이 함수를 이용해 화면을 캡쳐한다. 

  이 함수는 라이브러리 코드의 일부로 컴파일러가 종종 추가한다.


* CallNextHookEx

  SetWindowsHookEx가 설정한 이벤트를 후킹하는 코드 내에서 사용한다. CallNextHookEx 함수는 체인 내의 다음 후킹을 호출한다. 

  SetWindowsHookEx가 설정한 후킹의 목적을 알아내려면 CallNextHookEx을 호출한 함수를 분석하면 된다.


* CertOpenSystemStore

  로컬 시스템에 저장한 인증서에 접근할 때 사용한다.


* CheckRemoteDebuggerPresent

  특정 프로세스가 디버깅 중인지 확인한다. 이 함수는 때로 안티디버깅 기법의 일부로 사용한다.


* CoCreateInstance

  COM 객체를 생성한다. COM 객체는 광범위한 기능을 제공한다. 클래스 식별자(CLSID)를 통해 어떤 파일이 COM 체를 구현한 코드를 갖고 있는지 알 수 있다.


* connect

  원격 소켓에 연결할 때 사용한다. 악성코드는 명령 제어 서버에 연결하는 하위 수준의 함수를 종종 사용한다.


* ConnectNamedPipe

  접속하는 클라이언트 파이프를 기다리는 내부 프로세스 통신에 사용하는 서버 파이프를 생성한다.

  백도어와 리버스 쉘은 때로 ConnectNamedPipe를 이용해 명령 제어 연결을 단순화한다.


* ControlService

  실행 중인 서비스를 시작, 중지, 수정하거나 시그널을 보낼 때 사용한다.

  악성코드가 악의적인 서비스를 이용하고 있다면 호출 용도를 확인하기 위해 서비스를 

  구현한 코드를 분석할 필요가 있다.


* CreateFile

  새로운 파일을 생성하거나 기존 파일을 오픈한다.


* CreateFileMapping

  파일을 메모리로 로드하는 파일 매핑 핸들을 생성하고 메모리 주소를 통해 접근할 수 있게 한다.

  실행기(Launcher), 로더, 인젝터는 이 함수를 이용해 PE 파일을 읽고 수정한다.


* CreateMutex

  악성코드가 특정 시간에 시스템에서 하나의 인스턴스 생성만 보장하게 악성코드가 사용할 수 있는 

  상호 배제(mutual exclusion)를 생성한다. 

악성코드는 고정된 뮤텍스명을 이용하는데, 악성코드의 추가 감염을 탐지할  수 있는 좋은 호스트 기반의 감염 흔적으로 사용할 수 있다.


* CreateProcess

  새로운 프로세스를 생성하고 실행한다. 

  악성코드가 신규 프로세스를 생성하면 새로운 프로세스 역시 분석할 필요가 있다.


* CreateRemoteThread

  원격 프로세스(호출 프로세스가 아닌)에서 쓰레드를 시작할 때 사용한다.

  실행기와 은폐형 악성코드는 CreateRemoteThread를 이용해 다른 프로세스에 코드를 주입한다.


반응형

+ Recent posts