无名侠 发表于 2014-2-23 15:12:55

一个完整的硬盘逻辑锁锁代码。

经过上一次的改进,已经支持输入自定义密码了。
使用方法和原来一样
原帖:
硬盘逻辑锁 - 只有输入密码硬盘才会被解锁
http://bbs.fishc.com/thread-43343-1-1.html

自动加锁原理:http://bbs.pediy.com/showthread.php?p=1263142


org 0x7c00;原MBR内容位于 逻辑3扇区密码4扇区
                        ;密码加密方式   所有字符ASCLL相加
start:
mov ax,cs
mov ds,ax
mov ss,ax
mov es,ax
mov sp,0x100
mov bx,0
main:
;读取原内容
mov ax,0x7e00
mov ds,ax
mov bx,0
mov dx,0x1f2
mov al,0x01
out dx,al
mov dx,0x1f3
mov al,0x3;3扇区
out dx,al
inc dx;8-15
mov al,0
out dx,al
inc dx ;16-23
out dx,al
inc dx ;24-27
mov al,0xe0
out dx,al
mov dx,0x1f7 ;读命令
mov al,0x20
out dx,al
mov dx,0x1f7
.waits:
        in al,dx
        and al,0x88
        cmp al,0x08
        jnz .waits
        mov cx,256
        mov dx,0x1f0
        .read:
        in ax,dx
        mov ,ax
        add bx,2
        loop .read       
        ;显示字符串
mov bp,msg1
mov cx,msg2-msg1
mov ax,0x1301
mov bx,0x0c
mov dl,0
int 0x10
;检测按键
GetKey:
mov bx,0
mov si,0
GetKey_:
mov ax,0xb800
mov ds,ax
mov ax,0
int 0x16
cmp al,0x1b ;Esc键
je Esc_
cmp al,0x8;退格键
je BackSpace
cmp al,0x0d ;回车键
jne GetKey_q
        next:
        ;判断密码
        mov cx,si
        mov bx,0
        mov dx,0
        mov si,0
        key_js:
        mov al,
        mov ah,0
        add dx,ax
        add si,2
        loop key_js
        mov ax,
        cmp ax,dx
        je Ks
        jne Esc_
       
        Esc_:
        mov ch,0
        movcl,0x4e
        moval,0x00
        mov ah,0x07
        mov bx,0
       _esc:
       mov ,ax
       add bx,2
        loop _esc
        mov bx,0
        mov si,0
        mov ,al
        mov ,ah
        jmp GetKey
       
;解除硬盘逻辑锁       
Ks:
mov ax,0x7e00
mov ds,ax
mov bx,0

mov dx,0x1f2
mov al,0x01
out dx,al

mov dx,0x1f3
mov al,0x0;0扇区
out dx,al

inc dx;8-15
mov al,0
out dx,al

inc dx ;16-23
out dx,al

inc dx ;24-27
mov al,0xe0
out dx,al

mov dx,0x1f7 ;写命令
mov al,0x30
out dx,al

mov dx,0x1f7
.waits_wr:
        in al,dx
        and al,0x88
        cmp al,0x08
        jnz .waits_wr
        mov cx,256
        mov dx,0x1f0
        .write:
        mov ax,
        out dx,ax
        add bx,2
        loop .write       
       
;重启计算机
.REST:
mov ax,0xb800
mov ds,ax
mov bx,0
mov byte ,'a'


mov ax,0xffff
push ax
mov ax,0
push ax
retf

GetKey_q:
mov byte ,al
add bx,2
inc si
jmp GetKey_
BackSpace:
mov byte ,0
sub si,1
sub bx,2
jmp GetKey_

msg1 db 'Please Input Password'
msg2 db '.'
msg3 db '*'
msg4 db 'KeyTag'
y_key dw 0x019E       ;密码的ASCLL和 需要替换。
times 510-($-$$)db 0
dw 0xAA55**** Hidden Message *****


无名侠 发表于 2014-2-23 18:52:58

没人吗???:sad:sad:sad

chinacolor 发表于 2016-2-26 10:43:21

好文章

zjk 发表于 2016-2-26 18:34:13

无名人贴竟然没人顶?!顶下!!!

chenvip 发表于 2016-4-27 17:33:20

好厉害。·········倒是不会玩

wm88990 发表于 2016-5-1 10:29:06

好厉害啊

⌒荒岛流年# 发表于 2016-5-8 10:04:05

赞一个{:10_256:}

pjl123 发表于 2016-5-8 23:50:17

汇编表示要慢慢看{:10_269:}

billgate2013 发表于 2016-5-10 16:10:45

好厉害的高手

aosbdoassd 发表于 2016-5-20 12:44:20

谢谢,支持一下

watcher 发表于 2016-5-21 12:02:34

阿萨德撒打算

zhouxcpython 发表于 2016-5-21 22:23:50

感谢分享

柠檬不萌 发表于 2016-5-26 13:05:54

kankna

qhj7788123 发表于 2016-6-6 18:22:10

我就看看

27号 发表于 2016-6-6 21:59:55

看看学习

62596729 发表于 2016-6-10 09:41:11

这个是源码还是模块

研究僧 发表于 2016-6-11 22:21:12

感谢,下载研究!

痴心布偶 发表于 2016-6-12 17:34:50

{:9_237:}

zolte 发表于 2016-6-14 13:46:07

好棒

Conver 发表于 2016-6-16 14:31:15

下载来研究一下
页: [1] 2 3 4 5 6 7
查看完整版本: 一个完整的硬盘逻辑锁锁代码。