新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 讨论密码学、密码协议、入侵检测、访问控制等与安全理论研究有关的主题
    [返回] 中文XML论坛 - 专业的XML技术讨论区计算机理论与工程『 安全理论 』 → 硬盘加密初探 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 13745 个阅读者浏览上一篇主题  刷新本主题   平板显示贴子 浏览下一篇主题
     * 贴子主题: 硬盘加密初探 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     卷积内核 帅哥哟,离线,有人找我吗?
      
      
      威望:8
      头衔:总统
      等级:博士二年级(版主)
      文章:3942
      积分:27590
      门派:XML.ORG.CN
      注册:2004/7/21

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给卷积内核发送一个短消息 把卷积内核加入好友 查看卷积内核的个人资料 搜索卷积内核在『 安全理论 』的所有贴子 访问卷积内核的主页 引用回复这个贴子 回复这个贴子 查看卷积内核的博客楼主
    发贴心情 硬盘加密初探

    //以下程序适用平台为WIN98/WINME,WIN2000或者更高版本不支持对硬盘直接读写操作。
         我们都有知道硬盘的分区表位于0柱0面1扇区,在偏移地址1BE至1FD处就是硬盘的分区表内容,通常我们看硬盘分区表,只需用DEBUG即可,即是说:
    C:\>DEBUG
    -A100
    MOV AX,0201
    MOV BX,0200
    MOV CX,0001
    MOV DX,0080
    INT 13
    INT 20
    -G=100
    -D3BE 3FF
    //SAVE PARTITION DATA INTO FILE AKING.DAT
    -N AKING.DAT
    -RCX
    :200
    -W200
    执行完上述指令,我们将会看到66个字节,其中最后两个字节必定为55AA,这是硬盘的主引导标志(也称自举标志),如果这两个字节不为55AA,那么你的硬盘将不能启动,因为电脑识别不了硬盘。而且在偏移地址1BE处一定是80H,否则在启动时会提示操作系统丢失。除去硬盘的自举标志,总共剩下达64个字节,每个硬盘占用16个字节,主机上的IDE口或EIDE口总共可以挂4个硬盘(外挂的不算),通常为安全起见我们可以将硬盘这重要的66个字节信息或多或少512个字节信息保存到一个文件中。每一个硬盘分区表的16个字节都有其对应的含义:
    第一个字节:如果是引导分区,就是80H,如果不是,就是00H
    第二个字节到第四个字节:是该分区的起始扇区号
    第五个字节:标志字节,比如05表示扩展分区
    第六个字节到第八个字节:该分区的终止扇区号
    第九个字节到第十二个字节:该分区使用的扇区数
    第十三个字到第十六个字节:该分区总共使用的扇区数
         在了解完上述架构后,写出简单的加密程序就很简单了,比如说我对硬盘的自举标志55AA作一个异或XOR运算,第一次执行程序时硬盘被锁起,第二次执行时硬盘又被解锁,第三次执行时硬盘又被锁起。。。。除了对自举标志之外,我还可以对其它重要标志作异或运算,比如说对引导分区的标志字节80作异或运算,比如说隐藏某个扩展分等都可以实现。下面我用DEBUG写出汇编程序,在这里我以加锁/解锁自举标志来写程序。以上我已经声明如果你要使用我的这个程序请注意先做一张启动盘,将硬盘分区表先以一个文件的形式保存到FLOPPY DISK中,以防万一,请看程序:
    C:\>DEBUG
    -A100
    MOV AX,0201
    MOV BX,0200
    MOV CX,0001
    MOV DX,0080
    INT 13
    JB ERROR
    MOV SI,03FE
    MOV BP,AA55
    XOR [SI],BP
    MOV AX,0301
    MOV BX,0200
    MOV CX,0001
    MOV DX,0080
    INT 13
    JB ERROR
    CMP [SI],BP
    JNZ LOCK
    MOV DX,0150
    MOV AH,9
    INT 21
    JMP END
    LOCK:
      MOV DX,0165
      MOV AH,9
      INT 21
      JMP END
    ERROR:
      MOV DX,0180
      MOV AH,9
      INT 21
    END:
      MOV AH,4CH
      INT 21H
    -N AKING.COM
    -RCX
    :200
    -W100
    -Q

    至此,我们已将上述代码存成文件AKING.COM。你可以将AKING.COM这个文件COPY到软盘,从软盘启动计算机,第一次执行AKING.COM硬盘被锁住,再一次执行硬盘解锁。

    以前读书时就对汇编以及如何用汇编对硬盘编程就很感兴趣,前两天偶然听到朋友问如何对硬盘加密,我想这是一种较为简单的方法,而且NT和2000以及XP均不去支持对硬盘的直接读写操作,在这种情况下,如果要对硬盘某一扇区进行读写操作,就需要用API来进行编程,如CreateFile,ReadFile,WriteFile等API函数。
    再有一点我要声明的是:上面的代码是随手写出来的,其中LOCK,ERROR,END这三处在实际应用中应该换成偏移地址,这里为了叙述方便用LABEL。


       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    事业是国家的,荣誉是单位的,成绩是领导的,工资是老婆的,财产是孩子的,错误是自己的。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/8/28 14:05:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 安全理论 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/12/13 20:36:03

    本主题贴数7,分页: [1]

     *树形目录 (最近20个回帖) 顶端 
    主题:  硬盘加密初探(2683字) - 卷积内核,2006年8月28日
        回复:  学习,对汇编还是要求很熟悉的!(30字) - longshentailang,2006年9月20日
            回复:  我是个刚走进计算机的小菜鸟 , 想找个计算机群和大家讨论问题,请大哥哥大姐姐有群的MM一下偶让偶..(131字) - q282466667,2006年10月21日
        回复:  好高深啊(8字) - feifei805,2006年9月13日
        回复:  好深的程序.我菜鸟5555能做我师傅吗.(36字) - Fck,2006年8月31日
        回复:  上一篇文章解析了硬盘上有两个分区的加密过程,下面的程序将允许有N个分区的加密过程:Source ..(2647字) - 卷积内核,2006年8月28日
        回复:  在对硬盘主引导记录熟悉之后,就可以编出很多种硬盘加密程序(完全取决于你自已的需要),随着硬盘容量越..(2823字) - 卷积内核,2006年8月28日

    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    78.125ms