文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>PS2键盘保护的另一种方法

PS2键盘保护的另一种方法

时间:2011-01-14  来源:Mix

By Mix
mix#ph4nt0m.org


为了保障用户输入帐号密码的安全性,各种安全控件、密码保险箱产品比比皆是,衍生出了很多保护键盘的方法。就笔者了解的,纠结到系统底层国内的资料大部分都是落在了直接I/O端口读写上,再往上一点就是IDT中断了,本文将逐步探讨和中断有关的攻防技术,这也是笔者一次学习和小结的过程。


一、基础知识

有不少内容其实大学的课程里面都有,只是当时听讲的时候大都觉得枯燥无味,刚走出大学校门时更是觉得那时候学的那些东西在实际工作中几乎完全用不到,但是在深入学习和研究过程中才发现原来那些东西居然真的需要被了解和掌握。

所谓中断,就是指在CPU执行过程中出现了某些突发事件时,CPU需要停止当前程序转去处理突发事件,处理完成后返回原处继续之前的工作。那么系统中每个中断对应的哪段处理代码(即中断门),就需要一份对应的表以供查找,这个表被称为中断描述符表Interrupt
Descriptor Table(即IDT)。

对于IDT的存放和使用,按照程序员的逻辑来说就是在一片连续内存中依次存放着0xFF
个P2C_IDTENTRY结构,结构描述如下:
--code------------------------------------------------------------------------- typedef struct P2C_IDT_ENTRY_ { P2C_U16 offset_low;//中断门所在地址的底位 P2C_U16 selector; P2C_U8 reserved; P2C_U8 type:4; P2C_U8 always0:1; P2C_U8 dpl:2; P2C_U8 present:1; P2C_U16 offset_high; //中断门所在地址的高位 } P2C_IDTENTRY, *PP2C_IDTENTRY; -------------------------------------------------------------------------------

在WindowsXP默认的IDT中,第0x93个结构就是被用来描述键盘的中断门。思维迅猛的读者肯定会刨根问底了:“那为什么第0x93是描述键盘的呢?”

因为在硬件设备和CPU之间还有个衔接设备,叫中断控制器,专门负责管理IDT的填充、查找和修改。请允许粘贴一段关于中断控制器的精确描述:-------------------------------------------------------------------------------
中断控制器经历了PIC(Programmable Interrupt Controller,可编程中断控制器)和APIC(Advanced Programmable Interrupt Controller,高级可编程中断控制器)两个阶段。

而APIC 又由两部分组成,一个称为LAPIC(Local APIC,本地高级中断控制器),一个称为IOAPIC(I/O APCI,I/O 高级中断控制器)
-------------------------------------------------------------------------------

标签分类:

相关阅读 更多 +
排行榜 更多 +
全民飞机空战手机版

全民飞机空战手机版

飞行射击 下载
弗拉格职业射手手机版

弗拉格职业射手手机版

飞行射击 下载
反射单元2

反射单元2

飞行射击 下载