第1步先把ntdll 读入内存。查看内存,开始动态查找 进入GetFunctionAddress,先找到ssdt,进入GetExportSsdtIndex,进入GetExportOffset找到函数对应在ntdll中的偏移。(函数代码起始地址),找到函数名,找到函数偏移,查看反汇编,通过汇编特征算出index,就可以找到索引了。
源码:https://github.com/haidragon/DriverInjectDll
先给硬盘分区 再安装系统。ssdt全称为System Services Descriptor Table,中文为系统服务描述符表,ssdt表就是把ring3的Win32 API和ring0的内核API联系起来。SSDT并不仅仅只包含一个庞大的地址索引表,它还包含着一些其它有用的信息,诸如地址索引的基地址、服务函数个数等。
ssdt通过修改此表的函数地址可以对常用windows函数进行hook,从而实现对一些核心的系统动作进行过滤、监控的目的。一些HIPS、防毒软件、系统监控、注册表监控软件往往会采用此接口来实现自己的监控模块。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)