注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

熊猫正正的博客

熊猫正正的天空

 
 
 

日志

 
 

读出SSDT表当前函数地址  

2011-02-23 22:21:54|  分类: 优秀技术文章收集 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

系统服务描述符表 在ntoskrnl.exe导出KeServiceDescriptorTable 这个表

typedef struct _ServiceDescriptorTable {

PVOID ServiceTableBase; //System Service Dispatch Table 的基地址  

PVOID ServiceCounterTable;

//包含着 SSDT 中每个服务被调用次数的计数器。这个计数器一般由sysenter 更新。 

unsigned int NumberOfServices;//由 ServiceTableBase 描述的服务的数目。  

PVOID ParamTableBase; //包含每个系统服务参数字节数表的基地址-系统服务参数表 

}*PServiceDescriptorTable;  

//由SSDT索引号获取当前函数地址  

//NtOpenProcess  [[KeServiceDescriptorTable]+0x7A*4]  

extern PServiceDescriptorTable KeServiceDescriptorTable; 

方法纯汇编读取< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" />

ULONG SSDT_NtOpenProcess_Addr;

//[[KeServiceDescriptorTable]+0x7A*4]

__asm

{

 push eax  

 //

 mov eax,KeServiceDescriptorTable

 mov eax,[eax// //System Service Dispatch Table 的基地址

 imul eax,eax,0x7a

 shl eax,2 //[KeServiceDescriptorTable]+0x7A*4

 mov eax,[eax//[[KeServiceDescriptorTable]+0x7A*4]

 mov SSDT_NtOpenProcess_Addr,eax

 //   

 pop  eax

}

KdPrint(("读取SSDT_NtOpenProcess_Addr=%x +++++++\n",SSDT_NtOpenProcess_Addr));

    //读取SSDT_NtOpenProcess_Addr=8058270a +++++++

    //SSDT_NtOpenProcess_Cur_Addr=8058270a

方法2:用指针读取

LONG *SSDT_Adr,SSDT_NtOpenProcess_Cur_Addr,t_addr

KdPrint(("驱动成功被加载中.............................\n"));

//读取SSDT表中索引值为0x7A的函数

//poi(poi(KeServiceDescriptorTable)+0x7a*4)

t_addr=(LONG)KeServiceDescriptorTable->ServiceTableBase;

KdPrint(("当前ServiceTableBase地址为%x \n",t_addr));

SSDT_Adr=(PLONG)(t_addr+0x7A*4);

KdPrint(("当前t_addr+0x7A*4=%x \n",SSDT_Adr)); 

SSDT_NtOpenProcess_Cur_Addr=*SSDT_Adr;

KdPrint(("当前SSDT_NtOpenProcess_Cur_Addr地址为%x \n",SSDT_NtOpenProcess_Cur_Addr));

当前ServiceTableBase地址为804e58a0 

当前t_addr+0x7A*4=804e5a88 

当前SSDT_NtOpenProcess_Cur_Addr地址为8058270a 

 

主要用于SSDT HOOK~~

 

  评论这张
 
阅读(121)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017