中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > ASM汇编
硬盘加密----解析三
作者:kingcaiyao 时间:2001-12-09 11:28 出处:互联网 责编:chinaitpower
              摘要:硬盘加密----解析三

硬盘加密--解析三
上一篇文章解析了硬盘上有两个分区的加密过程,下面的程序将允许有N个分区的加密过程:
Source Codes:

data segment
  FQB DB 512 dup(0);a buffer that will be used to store partition-table
  FIRSTP DB 40 dup(0);storing the first partition information
  SECONDP DB 00,01,00,00
          DB 512 dup(0)
  INFO1 DB "My Computer has the following drives:!$"
  INFO2 DB 0DH,0AH,"Please enter the drive needed to be locked!$"
  INFO3 DB 0DH,0AH,"Invalid Enter!$"
  ERROR DB 0DH,0AH,"Harddisk I/O error!$"
data ends
code segment
   assume cs:code,ds:data
   START:
      MOV AX,1000H
      MOV DS,AX
      MOV SI,OFFSET SECONDP;
      MOV DI,OFFSET FIRSTP;
      SUB DI,4
   READP:
      MOV AX,0201
      MOV BX,OFFSET FQB
      MOV CX,WORD PTR [SI+1]
      MOV DX,0080
      INT 13
      JB ERROR
      ADD SI,4
      ADD DI,4
      ;The first partition
      ADD BX,1BE
      MOV AX,WORD PTR [BX+1]
      MOV [DI],AX
      MOV AX,WORD PTR [BX+3]
      MOV [DI+2],AX
      ;The second partition
      ADD BX,10H
      MOV AX,WORD PTR [BX+1]
      MOV [SI],AX
      MOV AX,WORD PTR [BX+3]
      MOV [SI+2],AX
      CMP WORD PTR [SI+1],0;Determine whether the header,sector is 0 or not
      JNZ READP
      LEA DX,INFO1
      MOV AH,9
      INT 21H
      MOV DL,43H
      MOV DI,OFFSET FIRSTP
   DISP:
      CMP WORD PTR [DI+1],0
      JZ ENCRYPT
      MOV AH,02
      INT 21H
      MOV CL,DL
      CMP BYTE PTR [DI+3],0
      JNZ NLOCK
      JMP ENCRYPT
   NLOCK:
      MOV DL,','
      INT 21
      MOV DL,CL
      INC DL
      ADD DI,4
      JMP DISP
   ENCRYPT:
      MOV AH,9
      LEA DX,INFO2
      INT 21
      MOV AH,1
      INT 21
      CMP AL,'A'
      JB ERROR1
      CMP AL,'Z'
      JA ERROR1
      SUB AL,43H
      XOR AH,AH;AH=0
      SHL AX,1
      SHL AX,1
      MOV SI,OFFSET SECONDP
      ADD SI,AX
      MOV AX,0201
      MOV BX,OFFSET FQB
      MOV CX,[SI+1];Sector,Cylinder
      MOV DH,[SI];Header
      MOV DL,80H;The first harddisk:80,the second:81
      INT 13
      JB ERROR
      ADD BX,1C1H
      MOV AX,[BX]
      XCHG [BX-20],AX
      MOV [BX],AX
      MOV AX,0301
      MOV BX,OFFSET FQB
      MOV CX,[SI+1]
      MOV DH,[SI]
      MOV DL,80H
      INT 13
      JB ERROR
      MOV AX,0040
      MOV DS,AX
      MOV SI,0072
      MOV AX,1234
      MOV [SI],AX
      JMP FFFF:0
      INT 20H
   ERROR1:
      LEA DX,INFO3
      MOV AH,9
      INT 21H
      JMP EXIT
   ERROR:
      LEA DX,INFO2
      MOV AH,9
      INT 21
   EXIT:
      MOV AH,4CH
      INT 21H
  code ends

  end start           

 

           
  

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有