This document discusses different types and generations of rootkits. Type I rootkits replace or modify system files without altering operating system code. Type II rootkits modify operating system code through techniques like API and SDT hooking. Type III rootkits use direct kernel object manipulation to modify dynamically allocated data and objects. Next generation rootkits may use virtualization. Detection methods include checking for import address table, inline hook, and system service dispatch table modifications.