[发明专利]一种基于内核驱动钩子技术的电子标签数据保护方法有效
申请号: | 201310472008.3 | 申请日: | 2013-10-11 |
公开(公告)号: | CN103559450A | 公开(公告)日: | 2014-02-05 |
发明(设计)人: | 张伟;曹承志;李鹏;王汝传;徐鹤 | 申请(专利权)人: | 南京邮电大学 |
主分类号: | G06F21/60 | 分类号: | G06F21/60;G06K7/00 |
代理公司: | 江苏爱信律师事务所 32241 | 代理人: | 唐小红 |
地址: | 210000 江苏省*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 内核 驱动 钩子 技术 电子标签 数据 保护 方法 | ||
1.一种基于内核驱动钩子技术的电子标签数据保护方法,其特征在于采用Windows内核驱动钩子技术从电子标签系统的底层直接获取电子标签数据,从而达到保护电子标签数据的目的,具体是使用Windows内核驱动钩子技术对读卡器驱动程序进行处理,即通过定位钩子位置、编写钩子DLL程序并通过钩子注入器将钩子DLL程序注入到读卡程序中来获取电子标签数据;该方法所包含的步骤为:
步骤1).用户使用电子标签读卡器读取电子标签的数据,如果能正常读取,则转步骤2),如果不能正常读取,转步骤6);
步骤2).用户运行钩子注入器;
步骤3).用户使用步骤2)中的钩子注入器将钩子DLL程序注入到读卡程序中,如不能成功注入则转步骤6);
步骤4).等待钩子DLL程序注入成功提示,然后重新使用读卡器对电子标签进行读卡操作;
步骤5).等待读卡程序显示出读取的电子标签数据,如果显示的数据与步骤1)中正常读取的数据相同,则电子标签数据保护成功;否则,转步骤6);
步骤6).检查出错原因,然后回步骤1)执行。
2.根据权利要求1所述的基于内核驱动钩子技术的电子标签数据保护方法,其特征在于所述的钩子DLL程序,使用内联钩子技术,通过解析原读卡函数的头五个字节,把它们复制到数组保存起来,然后用守护读卡函数的地址替换掉它们,达到一旦用户执行原读卡函数,就会跳转执行守护读卡函数的目的;钩子DLL程序所包含的步骤为:
步骤1) 定位原读卡函数的头五个字节,然后修改原读卡函数的内存属性,改为“可读可写”;
步骤2) 将原读卡函数的头五个字节保存到临时数组中,并使用0xE9+守护读卡函数的地址替换掉原读卡函数的头五个字节;
步骤3) 程序执行守护读卡函数,守护读卡函数用来获取电子标签的数据;
步骤4) 程序将保存在临时数组中的原读卡函数的头五个字节取出并恢复;
步骤5) 程序恢复到原读卡程序正常的执行流程。
3.根据权利要求1所述的基于内核驱动钩子技术的电子标签数据保护方法,其特征在于所述的钩子注入器,使用DLL注入技术中的远线程注入技术,通过在读卡程序进程中创建远线程的方法进入到读卡程序进程的内存地址空间,并通过该远线程将钩子DLL程序注入到读卡程序进程的地址空间中,从而达到在读卡程序进程中注入钩子DLL程序的目的;钩子注入器所包含的步骤为:
步骤1) 使用OpenProcess函数得到读卡程序进程的句柄;
步骤2) 在读卡程序进程中为钩子DLL程序分配内存,然后把钩子DLL程序的文件路径写到分配的内存中;
步骤3) 使用CreateRemoteThread和LoadLibrary函数把钩子DLL程序映射到读卡程序进程中;
步骤4) 等待远线程结束,然后释放步骤2)中分配的内存;
步骤5) 用CreateRemoteThread和FreeLibrary把钩子DLL程序从读卡程序进程中卸载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京邮电大学,未经南京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310472008.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种桶装货物的起吊装置
- 下一篇:一种配粉升降装置