루트킷은 적어도 5가지 종류가 존재하며 이는 사용자모드, 커널모드, 부트킷, 하이퍼바이저레벨, 펌웨어와 하드웨어로 나눌 수 있다. (1) 사용자 모드(User Mode) : 사용자 모드 루트킷은 링-3에서 동작하는 시스템 프로세스이며, 응용 프로그램 인터페이스와 API의 트랜잭션을 가로채고 수정하기 위한 기능등을 가지고 있다. 일부 사용자 모드는 동적 링크 라이브러리(dll)를 다른 프로세스에 삽입함으로써 어느 대상 프로세스에도 루트킷이 실행될 수 있게 한다. 애플리케이션에 의해 호출되는 API함수가 특정한 데이터필드를 사용한다는 점, 또는 API의 Get Proc Address를 이용하여 어드레스를 받아오는 점을 이용하는 것이다. 프로그램 코드는 Dll 모듈에 삽입되고 기존의 시스템 프로세스의 어드레스..