[发明专利]一种AHCI模式下访问硬盘的方法有效
申请号: | 201911050313.7 | 申请日: | 2019-10-31 |
公开(公告)号: | CN110765033B | 公开(公告)日: | 2023-03-10 |
发明(设计)人: | 许超明;梁效宁;董超;彭炼 | 申请(专利权)人: | 四川效率源信息安全技术股份有限公司 |
主分类号: | G06F12/06 | 分类号: | G06F12/06 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 641000 四*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 ahci 模式 访问 硬盘 方法 | ||
本发明公开了一种AHCI模式下访问硬盘的方法,其特征在于包括以下步骤:S100:判断硬盘的工作模式是否为AHCI模式,如果是,执行步骤S200,否则,结束流程:S200:获取PCI配置空间,并获取各个基地址寄存器的值;S300:获取AHCI空间的入口地址;S400:获取各个硬盘端口的内存空间的起始地址;S500:寻址当前硬盘端口的内存空间,读取当前硬盘端口的内存空间的前八个字节的内容作为命令列表基地址,读取第0x39至0x3C字节的内容作为命令槽忙闲指示;S600:获取并解析各个命令槽;S700:获取并解析命令表基地址的内容,确定命令封装区、数据项的操作地址及所操作数据的字节长度;S800:确定空闲命令槽;S900:选用空闲命令槽并重新设置命令槽忙闲指示,访问当前硬盘并验证访问成功。
技术领域
本发明属于数据恢复与取证领域,涉及一种访问硬盘的方法,尤其涉及一种AHCI模式下访问硬盘的方法。
背景技术
在数据恢复与取证领域中,随着硬盘容量的不断增加,加上硬盘性能也在不断提高,使得硬盘的用户群不断增加,硬盘的使用次数也急剧增加,硬盘的故障也随之提高。
一般的硬盘访问技术都是通过文件系统的方式,主要针对文件的读取、写入和删除。但是,硬盘中也存在其他的重要数据,包括MBR、DBR等。当这些重要数据被恶意的修改或者丢失后,电脑的磁盘管理器中将丢失所有的固件及管理数据,而用户的数据仍然真实存在,只是以文件系统的方式不能进行访问。这种情况下,难以实现对硬盘的读写、数据恢复与取证。现有技术正研究AHCI模式下基于IO寄存器数据交互而实现访问硬盘的方法,目前为止,尚无一种在AHCI模式下基于IO寄存器数据交互的硬盘访问方法。
发明内容
针对现有技术的不足,本发明提供了一种在AHCI模式下基于IO寄存器的硬盘访问技术,通过这样的访问方式,就可以针对硬盘的重要数据进行保护,而且可以绕开文件系统直接对硬盘的数据进行访问。本发明申请包括以下步骤:
S100:判断硬盘的工作模式是否为AHCI模式,如果是,执行步骤S200,否则,结束流程:
S200:获取PCI配置空间,并获取各个基地址寄存器的值;
S300:获取AHCI空间的入口地址;
S400:获取各个硬盘端口的内存空间的起始地址;
S500:寻址当前硬盘端口的内存空间,读取当前硬盘端口的内存空间的前八个字节的内容作为命令列表基地址,读取第0x39至0x3C字节的内容作为命令槽忙闲指示;
S600:获取并解析各个命令槽;
S700:获取并解析命令表基地址的内容,确定命令封装区、数据项的操作地址及所操作数据的字节长度;
S800:确定空闲命令槽:读取命令槽忙闲指示的各比特位,根据各比特位的值确定空闲的命令槽;
S900:选用空闲命令槽并重新设置命令槽忙闲指示,访问当前硬盘并验证访问成功。
优选地,所述寄存器的值及内存空间的值均以小端格式存储。
优选地,所述步骤S400中,每一硬盘端口的内存空间的字节长度为N,第一个硬盘端口的起始地址为所述入口地址+偏移量,之后的每一硬盘端口的起始地址为前一个硬盘端口的结束地址+1,各个硬盘端口的内存空间顺序排列,其中,硬盘端口数量不大于32,N为不小于0x40的正整数。
优选地,所述偏移量为0x100,所述硬盘端口数量为32,N为0x80。
优选地,所述步骤S600包括以下步骤:
S601:寻址当前命令列表基地址,以当前所寻址地址为起始地址,以0x20个字节为一组,依次表示第1至第32个命令槽;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川效率源信息安全技术股份有限公司,未经四川效率源信息安全技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911050313.7/2.html,转载请声明来源钻瓜专利网。