无聊翻翻4年前的黑防,发现个蛋疼#rootkit#:
给ethread的内存设置present bit,读取这块内存会引起page fault;
dr0置为KiTrap0e; dr1置为KiTrap01; 硬件读断点;
inline hook KiTrap0e; 对ethreat做内存欺骗;
inline hook KiTrap01; 处理读的断点,
用dr0和dr1来做inline hook code的内存欺骗,dr0~1断下来就恢复钩子;
给ethread的内存设置present bit,读取这块内存会引起page fault;
dr0置为KiTrap0e; dr1置为KiTrap01; 硬件读断点;
inline hook KiTrap0e; 对ethreat做内存欺骗;
inline hook KiTrap01; 处理读的断点,
用dr0和dr1来做inline hook code的内存欺骗,dr0~1断下来就恢复钩子;
然后dr3设置为eip的下一句;dr3断下来在挂上钩子= =
这样确实绕过rootkit检测了
详见黑防08年第五期 p56