|
作者:Tesla.Angela
内核EAT HOOK本质上跟RING3的EAT HOOK差不多,都是找到导出表记录『偏移地址』的位置,然后修改数值,使调用导出表函数时直接跳到代理函数地址。偏移地址=代理函数地址-函数所属模块基址。在WIN32系统上,有一些HIPS就用EAT HOOK来替代INLINE HOOK实现自我保护,比如微点。不过在WIN64系统上,内核EAT HOOK的实用性几乎为0,一来是PatchGuard作怪,二来是PE32和PE32+在导入表的结构上都是一样的,偏移地址只有4个字节。这就导致WIN64系统进行EAT HOOK时,必须采用二段跳,结合CODE PATCH才能使用(方法类似于教程里的WIN64 SSDT/SSSDT HOOK)。
|
|