硬盘保护锁
日期:2007年5月3日 作者: 查看:[大字体 中字体 小字体]-
我在前一段时间写了一个硬盘锁,拿出来和大家交流交流,同时有个问题,希望大
家能帮我想想。
首先,大略介绍一下我的程序,我是用汇编写成,程序有2个文件:hdlock.exe
hdlock.dat ,其中hdlock.dat是我写的用于装入硬盘0柱0道1扇的硬盘锁,hdlock.exe实现
(1)把hdlock.dat装入硬盘0柱0道1扇并设置硬盘锁的密码,(2)修改密码,(3)卸载
硬盘锁
在此,先介绍一下 hdlock.dat,因为硬盘锁本身受空间限制,必须严格控制在1bdH
字节内,(知道为什么吗?)所以是不能用masm先写原程序,再编译,我基本上是用debug
的A命令一次性写出来的,我把这些反汇编了出来,加上一些注释,给大家看看,互相学习
吗。;这一段是将整个硬盘锁从0000:7c00移至0000:0600,以免被后来读入的代码覆盖
0F6D:0100 1E PUSHDS
0F6D:0101 06 PUSHES
0F6D:0102 B90001 MOVCX,0100
0F6D:0105 BF0006 MOVDI,0600
0F6D:0108 B80000 MOVAX,0000
0F6D:010B 8ED8 MOVDS,AX
0F6D:010D 8EC0 MOVES,AX
0F6D:010F BE007C MOVSI,7C00
0F6D:0112 F2 REPNZ
0F6D:0113 A5 MOVSW
0F6D:0114 EA1A060000 JMP0000:061A ;长跳转至移动后的代码,也就是从011a处开始执行
0F6D:0119 90 NOP
0F6D:011A EB09 JMP0125;这一段是对屏幕进行初始化,显示字符串"PASSWORD"
0F6D:0125 B80006 MOVAX,0600
0F6D:0128 B7F0 MOVBH,F0
0F6D:012A B90000 MOVCX,0000
0F6D:012D BA4F18 MOVDX,184F
0F6D:0130 CD10 INT10 ;初始化屏幕(前景为黑色,背景为灰白,字符闪烁)
0F6D:0132 B21A MOVDL,1A
0F6D:0134 BE1C06 MOVSI,061C ;从061cH处显示字符(因为程序将被读入了0000:0600处,
;实际显示的也就是现在的11cH处开始的字符串)
0F6D:0137 B402 MOVAH,02
0F6D:0139 B610 MOVDH,10
0F6D:013B B700 MOVBH,00
0F6D:013D CD10 INT10 ;设光标位置(10H行1aH列)
0F6D:013F 8A04 MOVAL,[SI]
0F6D:0141 3C00 CMPAL,00
0F6D:0143 741B JZ0160 ;是否已显示完字符串,是则跳至从键盘读取密码处
0F6D:0145 B409 MOVAH,09
0F6D:0147 B90100 MOVCX,0001
0F6D:014A B700 MOVBH,00
0F6D:014C B370 MOVBL,70
0F6D:014E CD10 INT10 ;显示一个字符
0F6D:0150 FEC2 INCDL ;光标后移一位
0F6D:0152 46 INCSI ;字符指针后移一位
0F6D:0153 EBE2 JMP0137 ;继续显示下一字符0f6d:011c db 'PASSWARD'00 ;用于显示的字符串
; 从键盘读取密码
0F6D:0160 B90400 MOVCX,0004
0F6D:0163 B80000 MOVAX,0000
0F6D:0166 8EC0 MOVES,AX
0F6D:0168 BF0108 MOVDI,0801
0F6D:016B F3 REPZ
0F6D:016C AB STOSW ;在0000:0801开始处开一片长度为8个字节的缓冲区
;(用00H来标记),用于存放从键盘读入的密码,(密码
;最多为8个字符,最少为0个字符)
0F6D:016D B90900 MOVCX,0009 ;最多读9次键盘(当然第9次是重头读过)
0F6D:0170 BF0108 MOVDI,0801 ;从801H处开始写密码
0F6D:0173 B223 MOVDL,23 - [1] [2] [3] [4] [5] [6] 下一页
-
- 硬盘保护锁 相关文章:
- ·硬盘保护锁
- 硬盘保护锁 相关软件
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
上一篇:电脑游戏中的人工智能制作
精品推荐
热点TOP10
- ·图象处理中的边缘检测------canny算子
- ·EZ-USB 68013A开发指南
- ·数值计算程序大放送-特征值和特征向量
- ·ARM的嵌入式Linux移植体验之BootLoader
- ·Visual C++ ADO数据库编程入门
- ·智能手机Smartphone开发导语
- ·利用 wordXP 实现自动排班
- ·[分形]DLA团簇模型的摸拟
- ·DENX U-Boot及Linux使用手册
- ·Static和Final修饰类属性变量及初始化
- ·BPEL的异常管理
- ·看Vue 5 Esprit函数的节点与链接详情
- ·初学者全面接触学习jquery(译文)
- ·LinQ学习之旅 从整型数组中找出偶数
- ·Enterprise Library 快速入门
- ·CVS源代码库服务器建立和权限配置
- ·Visual FoxPro 9.0 SP2正式版下载
- ·VS2005控件的问题解决办法
- ·Cookie是什么?用法是怎样?与SESSION有什么区别?
- ·J2SE API读取Properties文件的六种方法
