-
-
[旧帖]
[原创]以前无聊时写的简单硬盘锁
0.00雪花
-
发表于:
2010-10-25 19:39
1140
-
[旧帖] [原创]以前无聊时写的简单硬盘锁
0.00雪花
看了《数据重现》这本书,就自己动手学了个简单的硬盘锁玩,源代码丢了,只有这个人人上发的这篇文章了
将MBR备份到第52号扇区
主程序放在了第53号扇区
重写MBR,保留分区表
MBR中代码如下
mov ax,0
mov es,ax ;设置ES为0
mov ax,0201h ;读入一个扇区
mov bx,0200h ;读到 es:bx处(0000:2000)
mov cx,0035h ;要读的扇区号为53
mov dx,0080h ;要读的磁头号为0,读第一硬盘
int 13h ;执行13号中断
jmp 0000:0200 ;跳转到0000:2000处
53号扇区中代码如下(未编译时)
org 200h ;加载到0:200处
mov ax,cs
mov es,ax
mov ds,ax ;初始化
mov ax,tishi
mov bp,ax
mov cx,22
mov ax,1301h
mov bx,000ah
mov dl,0 ;显示提示信息
int 10h ;执行中断
mov ax,0b800h
mov es,ax ;初始化显存
kaishi:
mov ax,jilu
mov di,ax
mov cx,0 ;初始化指针,记录数据
doh:
mov ah,0
int 16h ;读取键盘
cmp al,0dh ;检测是否为回车
jz jiance ;是则跳转
inc cx
cmp cx,8 ;检测密码超长
ja doh
mov [ds:di],al ;储存输入密码
inc di
jmp doh ;继续输入
tishi: db 'please press password!' 数据
mima: db 'xxxxxxxx'
jilu: db '00000000'
jiance:
cmp cx,8 ;检测密码长度
jnz kaishi
mov ax,mima
mov di,ax ;初始化指针
doj: ;循环比较
mov al,[ds:di]
cmp [ds:di+8],al
jnz kaishi ;不等于就重新开始
inc di
loop doj
mov ax,0
mov es,ax ;同MBR
mov ax,0201h
mov bx,7c00h
mov cx,0034h
mov dx,0080h
int 13h
jmp 0000:7c00h ;跳转0000:7c00处,系统正式启动
说实话,好像这个也没啥技术含量。也是很多东西都没处理,不过硬盘读写还是不错的。
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法