|
发表于 2020-8-9 14:10:51
|
显示全部楼层
本帖最后由 tangptr@126.com 于 2020-8-9 14:19 编辑
win10rs1开始直接遍历win32u.dll的导出表就行了,除了那个gDispatchTableValues之外都是SSSDT上的函数。然后index嘛只需要借助反汇编引擎算出syscall/sysenter之前eax的值即可。(与一般系统上ntdll.dll动态解析SSDT是同一个原理)
然后SSSDT上的index是从4096,也就是0x1000开始的,所以需要-4096。
如果用你那张表的话,你可以注意到这张表是按函数名排过序的,所以如果只是搜索一个函数的index就可以直接用二分法。Windows 10 x64 2004有1316个SSSDT函数,那么搜索次数不超过ceil(log(2,1316))+1=12次就能找到任意函数的index。 |
|