WEB开发网
开发学院软件开发汇编语言 汇编源代码之硬盘保护锁 阅读

汇编源代码之硬盘保护锁

 2009-01-28 09:37:08 来源:WEB开发网   
核心提示:0F6D:017D B402 MOVAH,020F6D:017F 90 NOP0F6D:0180 90 NOP0F6D:0181 B610 MOVDH,100F6D:0183 B700 MOVBH,000F6D:0185 CD10 INT10 ;设置光标位置(当然是"PASSWARD"字符串后面了)

  0F6D:017D B402 MOVAH,02

0F6D:017F 90 NOP

0F6D:0180 90 NOP

0F6D:0181 B610 MOVDH,10

0F6D:0183 B700 MOVBH,00

0F6D:0185 CD10 INT10 ;设置光标位置(当然是"PASSWARD"字符串后面了)

0F6D:0187 3C08 CMPAL,08

0F6D:0189 7437 JZ01C2 ;是退格键则跳至退格处理

0F6D:018B 50 PUSHAX

0F6D:018C B40E MOVAH,0E

0F6D:018E B02A MOVAL,2A

0F6D:0190 B307 MOVBL,07

0F6D:0192 CD10 INT10 ;显示一个"*"(没有回显的密码输入是不是很恐怖)

0F6D:0194 58 POPAX

0F6D:0195 0423 ADDAL,23 ;密码字符加23H(受空间限制,加上该程序在系统启

;动前执行,在此,我只是简单的将密字加上23H,

;如果谁有好而小巧的算法,别忘了告诉我)

0F6D:0197 8805 MOV[DI],AL

0F6D:0199 47 INCDI

0F6D:019A 49 DECCX

0F6D:019B 83F900 CMPCX,+00

0F6D:019E 740A JZ01AA ;是否读了第9次键盘,是跳转至输入溢出处

0F60:01A0 FEC2 INC DL

0F60:01A2 EBD1 JMP 0175

;本段用于处理键盘输入超过8次

0F6D:01AA B610 MOVDH,10

0F6D:01AC B402 MOVAH,02

0F6D:01AE B223 MOVDL,23

0F6D:01B0 B700 MOVBH,00

0F6D:01B2 CD10 INT10

0F6D:01B4 B409 MOVAH,09

0F6D:01B6 B000 MOVAL,00

0F6D:01B8 B307 MOVBL,07

0F6D:01BA B90900 MOVCX,0009

0F6D:01BD CD10 INT10

0F6D:01BF EB9F JMP0160 ;重新读取密码

;本段用于退格处理

0F6D:01C2 51 PUSHCX

0F6D:01C3 B403 MOVAH,03

0F6D:01C5 B700 MOVBH,00

0F6D:01C7 CD10 INT10 ;读光标位置

0F6D:01C9 80FA23 CMPDL,23

0F6D:01CC 74A7 JZ0175 ;光标是否已到头,是则去读下一密字

0F6D:01CE 81FF0008 CMPDI,0800

0F6D:01D2 74A1 JZ0175 ;密码缓冲是否已到头,是则去读下一密字

0F6D:01D4 B402 MOVAH,02

0F6D:01D6 FECA DECDL

0F6D:01D8 CD10 INT10

0F6D:01DA B40E MOVAH,0E

0F6D:01DC B000 MOVAL,00

0F6D:01DE B307 MOVBL,07

0F6D:01E0 CD10 INT10 ;光标前移一位,并删除一个"*"

0F6D:01E2 B80000 MOVAX,0000

0F6D:01E5 8905 MOV[DI],AX ;密码缓冲当前指针处清零

0F6D:01E7 4F DECDI ;密码缓冲指针减一

0F6D:01E8 8905 MOV[DI],AX ;密码缓冲当前指针处清零

0F6D:01EA 59 POPCX

INC CX ;///CX 应该加1

0F6D:01EB EB88 JMP0175 ;重新读键盘

;本段用于比较密字

0F6D:01F6 B80000 MOVAX,0000

0F6D:01F9 8EC0 MOVES,AX

0F6D:01FB 8ED8 MOVDS,AX

0F6D:01FD BEB007 MOVSI,07B0

0F6D:0200 BF0108 MOVDI,0801

0F6D:0203 B90400 MOVCX,0004

0F6D:0206 F3 REPZ

0F6D:0207 A7 CMPSW

0F6D:0208 7404 JZ020E ;字符串相同则跳转至正确引导系统代码

0F6D:020A EB3C JMP0248 ;字符串不相同则跳转至加密硬盘代码

;正确引导系统代码

0F6D:020E B80000 MOVAX,0000

0F6D:0211 8EC0 MOVES,AX

0F6D:0213 B80102 MOVAX,0201

0F6D:0216 B90200 MOVCX,0002

0F6D:0219 BA8000 MOVDX,0080

0F6D:021C BB00F0 MOVBX,F000

0F6D:021F CD13 INT13

0F6D:0221 B80103 MOVAX,0301

0F6D:0224 B90100 MOVCX,0001

0F6D:0227 BA8000 MOVDX,0080

0F6D:022A CD13 INT13 ;0柱0道2扇是HDBOOT.EXE写入的由硬盘锁代码

;(也就是大家现在看到的代码)+正确的硬盘分

;区表组成,将其写入0柱0道1扇后操作系统就可

;正常读取硬盘了

上一页  1 2 3 4 5 6  下一页

Tags:汇编 源代码 硬盘

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接