- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
rootkithook之[四]--IDTHook
标 题:?【原创】rootkit hook之[四]-- IDT Hook作 者:?combojiang时 间:?2008-02-19,17:05:37链 接:?/showthread.php?t=59867今天我们一起来学习下Rootkit里面的IDT?hook.?由于涉及到一些基本概念,在这里也顺便提一下。呵呵,帖子比较长,慢慢看。闲话少说,直奔主题。我们首先来了解下什么是IDT?IDT?=?Interrupt?Descriptor?Table?中断描述表IDT是一个有256个入口的线形表,每个IDT的入口是个8字节的描述符,所以整个IDT表的大小为256*8=2048?bytes,每个中断向量关联了一个中断处理过程。所谓的中断向量就是把每个中断或者异常用一个0-255的数字识别。Intel称这个数字为向量(vector).如图所示。对于中断描述表,操作系统使用IDTR寄存器来记录idt位置和大小。IDTR寄存器是48位寄存器,用于保存idt信息。其中低16位代表IDT的大小,大小为7FFH,高32位代表IDT的基地址。在我的机器上,基地址是8003F400H.?我们可以利用指令sigt读出IDTR寄存器中的信息,从而找到IDT在内存中的位置。IDT有三种不同的描述符或者说是入口,分别是:1。任务门描述符2。中断门描述符3。陷阱门描述符也就是说,在保护模式下,80386只有通过中断门、陷阱门或任务门才能转移到对应的中断或异常处理程序。Intel参考手册上指出“同步中断”(在一个指令执行完成后,由CPU控制单元产生的)作为“异常”。异步中断(可能会在任意时刻由其他硬件产生的)才称为“中断”。中断被外部的I/O设备产生。但是异常是由编程错误或者是由反常情况(必须由内核来处理)触发的。在该文档中,术语“中断信号”既指异常又指中断。中断分为两种类型:可屏蔽中断--它在短时间片段里可被忽略;不可屏蔽中断--它必须被立即处理。例如:硬件失败为不可屏蔽中断,IRQS(中断请求)失败为可屏蔽中断。异常被分为不同的两类:处理器产生的异常(Faults,?Traps,?Aborts)和编程安排的异常(用汇编指令int?or?int3?触发)。后一种就是我们经常说到的软中断。我们先看看这三种描述符:其中:后两种描述符,非常的相似,只有1个bit位的差别。在处理上,采用相同的处理方式。如图所示,在这后两类的描述符里面记录了一个中断服务程序(ISR?)的地址offset.?在IDT的256个向量中,除3个任务门入口外,其他都是这两种门的入口。并且所有的trap/interrupt?gate的入口,他们的segment?selector都是一样的,即:08h.?我们察看GDT中Selector?=?8的描述符,描述的?~?0ffffffffh的4G地址空间。?因此,在描述符中的中断服务程序(ISR?)的地址offset就代表了函数的入口地址。windows在处理的时候,按照下图方式,来处理这两类的描述符入口。即:根据segment?selector在GDT中找出段基地址等信息,然后跟描述符中的中断服务程序(ISR?)的地址offset相加得到代码段中的函数入口地址。然后调用该函数。这个过程,我写得比较直接,在操作系统执行这过程时,还有很多的出错判断和异常保护,这里我们略过。接下来,我们看看任务门描述符的情况。首先,根据IDT中任务门描述符的TSS?Segment??Selector?,我们在GDT中找出这个选择子。在这个选择子中,对应一个tss描述符,即:任务状态段描述符。这个描述符大小为068h,?即104字节。下面是这个任务状态段描述符的格式。我们看到在这个描述符中记录了任务状态段的位置和大小。我们根据任务状态段描述符中的base?Address,?找到TSS的内存位置。然后我们就可以进行任务切换。所谓任务切换是指,挂起当前正在执行的任务,恢复或启动另一任务的执行。在任务切换过程中,首先,处理器中各寄存器的当前值被自动保存到TR所指定的TSS中;然后,下一任务的TSS的选择子被装入TR;最后,从TR所指定的TSS中取出各寄存器的值送到处理器的各寄存器中。由此可见,通过在TSS中保存任务现场各寄存器状态的完整映象,实现任务的切换。?TR寄存器可见部分保存了tss?selector,?不可见部分,保存了任务状态段的位置和大小.如下图所示。任务状态段TSS的基本格式如下图所示。?从图中可见,TSS的基本格式由104字节组成。这104字节的基本格式是不可改变的,但在此之外系统软件还可定义若干附加信息。理论的部分,我们简单介绍这么多。接下
您可能关注的文档
最近下载
- 岛津原子吸收分光光度计AA-6300软件硬件基本操作AA-6300-rj手册说明书.pdf VIP
- The Magic of Ordinary Days《平凡岁月的魅力(2005)》完整中英文对照剧本.docx VIP
- 注册税务师备考课件.pptx VIP
- MECG1000心电图机培训.pptx VIP
- 国内外CO2催化转化技术发展现状与未来展望.docx VIP
- 道路运输企业双重预防机制建设资料(安全风险分级管控和隐患排查治理).pdf
- HG∕T 5421-2018 噻唑膦原药(可复制版).pdf
- 括号里最大能填几326题.pdf VIP
- 公司物业服务投标方案(技术方案).docx VIP
- 实验动物学学堂云学堂在线课后题答案.docx VIP
文档评论(0)