江民硬盘锁收藏本站找回密码开启辅助访问OTP 登录 注册 找回密码
安基网
请输入搜索内容
搜索
首页资讯软件IT技术公开课人才投稿
冰盾DDoS防火墙
冰盾DDoS防火墙
专业防护DDoS和CC攻击15年,网站和游戏服务器的保护神
点击了解详情
安基网›首页›IT技术›电脑技术› 查看内容
利用江民锁原理写的一个硬盘锁程序
2004-9-29 20:05| 投稿: computer
免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和图片版权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!
摘要: 我在前一段时间写了一个硬盘锁,拿出来和大家交流交流,同时有个问题,希望大家能帮我想想。 首先,大略介绍一下我的程序,我是用汇编写成,程序有2个文件:hdboot.exe、hdboot.dat ,其中h...
我在前一段时间写了一个硬盘锁,拿出来和大家交流交流,同时有个问题,希望大家能帮我想想。 首先,大略介绍一下我的程序,我是用汇编写成,程序有2个文件:hdboot.exe、hdboot.dat ,其中hdboot.dat是我写的用于装入硬盘0柱0道1扇的硬盘锁,hdboot.exe实现 (1)把hdboot.dat装入硬盘0柱0道1扇并设置硬盘锁的密码,(2)修改密码,(3)卸载硬盘锁 在此,我主要介绍 hdboot.dat,因为硬盘锁本身受空间限制,必须严格控制在1bdH字节内,(知道为什么吗?)所以是不能用masm先写原程序,再编译,我基本上是用debug的A命令一次性写出来的,我把这些反汇编了出来,加上一些注释,给大家看看,互相学习好吗? ;这一段是将整个硬盘锁从0000:7c00移至0000:0600,以免被后来读入的代码覆盖 0F6D:0100 1E PUSHDS 0F6D:0101 06 PUSHES 0F6D:0102 B90001 MOVCX,0100 0F6D:0105 BF0006 MOVDI,0600 0F6D:0108 B80000 MOVAX,0000 0F6D:010B 8ED8 MOVDS,AX 0F6D:010D 8EC0 MOVES,AX 0F6D:010F BE007C MOVSI,7C00 0F6D:0112 F2 REPNZ 0F6D:0113 A5 MOVSW 0F6D:0114 EA1A060000 JMP0000:061A ;长跳转至移动后的代码,也就是从011a处开始执行 0F6D:0119 90 NOP 0F6D:011A EB09 JMP0125 ;这一段是对屏幕进行初始化,显示字符串"PASSWORD" 0F6D:0125 B80006 MOVAX,0600 0F6D:0128 B7F0 MOVBH,F0 0F6D:012A B90000 MOVCX,0000 0F6D:012D BA4F18 MOVDX,184F 0F6D:0130 CD10 INT10 ;初始化屏幕(前景为黑色,背景为灰白,字符闪烁) 0F6D:0132 B21A MOVDL,1A 0F6D:0134 BE1C06 MOVSI,061C ;从061cH处显示字符(因为程序将被读入了0000:0600处, ;实际显示的也就是现在的11cH处开始的字符串) 0F6D:0137 B402 MOVAH,02 0F6D:0139 B610 MOVDH,10 0F6D:013B B700 MOVBH,00 0F6D:013D CD10 INT10 ;设光标位置(10H行1aH列) 0F6D:013F 8A04 MOVAL,[SI] 0F6D:0141 3C00 CMPAL,00 0F6D:0143 741B JZ0160 ;是否已显示完字符串,是则跳至从键盘读取密码处 0F6D:0145 B409 MOVAH,09 0F6D:0147 B90100 MOVCX,0001 0F6D:014A B700 MOVBH,00 0F6D:014C B370 MOVBL,70 0F6D:014E CD10 INT10 ;显示一个字符 0F6D:0150 FEC2 INCDL ;光标后移一位 0F6D:0152 46 INCSI ;字符指针后移一位 0F6D:0153 EBE2 JMP0137 ;继续显示下一字符 0f6d:011c db "PASSWARD"00 ;用于显示的字符串 ; 从键盘读取密码 0F6D:0160 B90400 MOVCX,0004 0F6D:0163 B80000 MOVAX,0000 0F6D:0166 8EC0 MOVES,AX 0F6D:0168 BF0108 MOVDI,0801 0F6D:016B F3 REPZ 0F6D:016C AB STOSW ;在0000:0801开始处开一片长度为8个字节的缓冲区 ;(用00H来标记),用于存放从键盘读入的密码,(密码 ;最多为8个字符,最少为0个字符) 0F6D:016D B90900 MOVCX,0009 ;最多读9次键盘(当然第9次是重头读过) 0F6D:0170 BF0108 MOVDI,0801 ;从801H处开始写密码 0F6D:0173 B223 MOVDL,23 0F6D:0175 B400 MOVAH,00 0F6D:0177 CD16 INT16 ;读键盘 0F6D:0179 3C0D CMPAL,0D 0F6D:017B 7479 JZ01F6 ;是回车则跳至密码比较处 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 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扇后操作系统就可 ;正常读取硬盘了 0F6D:022C B80000 MOVAX,0000 0F6D:022F 8EC0 MOVES,AX 0F6D:0231 B80102 MOVAX,0201 0F6D:0234 B90300 MOVCX,0003 0F6D:0237 BA8000 MOVDX,0080 0F6D:023A BB007C MOVBX,7C00 0F6D:023D CD13 INT13 ;0柱0道3扇是HDBOOT.EXE写入的原MBR区的备份,将 ;其读入0000:7c00处 0F6D:023F EA007C0000 JMP0000:7C00 ;长跳转至原MBR代码处执行(以后怎么样引导就不 ;是我们现在讨论的了),从而正确引导系统 ;加密硬盘代码 0F6D:0248 B80000 MOVAX,0000 0F6D:024B 8EC0 MOVES,AX 0F6D:024D B80102 MOVAX,0201 0F6D:0250 B90400 MOVCX,0004 0F6D:0253 BA8000 MOVDX,0080 0F6D:0256 BB00F0 MOVBX,F000 0F6D:0259 CD13 INT13 0F6D:025B B80103 MOVAX,0301 0F6D:025E B90100 MOVCX,0001 0F6D:0261 BA8000 MOVDX,0080 0F6D:0264 CD13 INT13 ;0柱0道4扇是HDBOOT.EXE写入的由硬盘锁代码(也就是 ;大家现在看到的代码)+江明原理的逻辑锁(循环分区表),将其写入0柱0道 ;1扇后操作系统就被完全锁死了(不能从其它盘引导) 0F6D:0266 CD19 INT19 ;不用多说吧,相当于热启动 大家看后一定看出了一些问题,为了能够让这个硬盘锁可以跨平台,我设置为输入正确密码后就将 正确的分区表读入0柱0道1扇,输入不正确密码后就将江明锁读入0柱0道1扇,明白人一下就看出了,如 果电脑主人上次用正确密码进入了电脑,而电脑非法使用者一次都不试密码,就直接用软盘或光盘或 USB盘引导,那么就可以非法访问硬盘了,说实话,这个问题困扰了我许久,一直不得其解,不这样做, 就得在输入正确密码后就将正确的分区表读入0柱0道1扇,然后在操作系统启动后再做手脚把0柱0道1扇的 分区表加密,这样做有两个问题,(1)操作系统启动做的手脚一定是放在操作系统的自启动中(如DOS的 AUTOEXEC.BAT、WIN98的"启动"等),这样做显然不安全,(2)同时这样做显然不能做到"跨平台",所以我只 能在程序说明中告诉使用者,如果离开电脑,就故意输入一错误密码,那么逻辑锁(循环分区表)就将硬盘锁死了,这样电脑 非法使用者用软盘或光盘或USB盘都不能引导了,(大家知道所谓江明锁,就是让扩展分区指向本分区表所在的扇,从而使 启动程序陷入死循环,这个东西也不知害了多少硬盘,也该让他做做好事了),要是谁有更好的方法 解决这一问题,一定要告诉我. 另外大家万一掉了密码,又输入了不正确密码,可一定要找我,我一定会写好程序等着你的
Tag标签:
小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!
免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和图片版权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!
鲜花
握手
雷人
路过
鸡蛋
收藏邀请
相关阅读
• 一通进销存 (李翔鹏修改版)• 无线图标不见了,但是还是可以连上网络解决• MySql远程任意用户连接语句• 无网络环境重装系统驱动问题• 数据包分离处理• 教你怎么使用服务器才不会被管理员发现• 查看服务器连接状态• 深入SQl编程• 谈隐私安全• Windows 10 Redstone 2 (RS2) Build 14951简体中文ISO下载• UNIX oracle 10g能用utl_file包读取文件数据吗• 无线网络的各种隐藏设置• [译稿]微软副总裁讲述Windows 版本号的故事• MySQL互为主从配置• 隐藏桌面上的某些系统图标• 魔兽世界6.0初期踏风PVP心得• php中使用base HTTP验证的方法• 无线ap是什么意思• 2007思科CCNP改版的背景以及原因分析 • Pentium III处理器的单指令多数据流扩展指令(1)• Foxmail口令解密教程• FoxMail和OICQ泄密• 路由器和交换机有什么区别?路由器和交换机有什么作用?• Windows7是什么
最新评论
评论
手机数码
电脑技术
网络管理
安全攻防
编程开发
智能硬件
办公设计
网赚电商
最新
能够删除杀毒软件的新型Linux挖矿木马来袭
FIT 2019不见不散!大会详细议程公布
用户设备易被黑的十大机场
数字货币价格普遍回暖 比特币重返4200美元
红魔MARS游戏手机发布 液冷+风冷+炫彩灯+边
00后没见过 这些老产品依旧堪称神器
因MacBook和iMac屏幕进灰事件 苹果遭遇集体
美司法部指控两名伊朗黑客勒索攻击 造成300
网络黑灰产已近千亿 个人信息泄露是源头
真相令人崩溃 你在网上设的密码大多数形同
00后“白帽黑客”7天挖11企业漏洞!今年17
高达800万次下载量的npm包被黑客篡改代码,
黑客“自学成才”进行DDOS攻击,杭州一集团
工信部:监测处置网络安全威胁约3397万个
最近,互联网一个47年的协议就要停止支持了
5毛1GB太便宜!固态价格持续下降可以入手了
“多才多艺”的安卓木马Rotexy已在3个月里
专家发现一个Spotify的网络钓鱼活动
Uber被曝270万用户信息被黑客盗取 遭监管机
移动支付排名:微信第一、支付宝第二、Appl
专为AR/VR场景打造 高通正在开发全新SoC
苹果macOS曝三个零日漏洞,可导致Mac电脑被
越南黑客组织“海莲花”被指针对东南亚发起
13款恶意安卓APP被曝光,总下载量超过56万
攻击者可通过侧通道攻击暴露Facebook、XBox
聊一款专为图形工作者准备的笔记本电脑
恐怖!一天之内比特币跌破3500美元,官媒发
共享充电宝退潮后:那些海量旧电芯去了哪里
人工智能如何与现代黑客和网络犯罪作斗争
非常琐碎的Spotify钓鱼活动被专家发现
Web应用服务器性能压力测试
任天堂Switch 6.2系统被破解 黑客将于本周
虚拟机加密:超融合世界的加密策略
python编程实现局域网arp抓取室友网上浏览
9款电脑黑科技小软,开启你成就网络管理员
斯诺登:比特币终将消失 加密货币则会永生
警惕eval()的安全漏洞
自学Python入行数据挖掘,听听数据挖掘美女
马斯克考虑移居火星 建立基地不返回地球
新型 Linux 病毒,脚本超 1000 行,功能复
渗透测试——黑客如何通过QQ号获取到你的手
黑客怎么利用手机进行网络渗透测试!
黑客入侵电脑常用的5种手段,如果你电脑里
黑客的“攻”与“受”之防火墙
安卓已过时?华为、荣耀参与测试全新操作系
亏损超1亿!比特币价格大跌,两万多部矿机
乳胶枕被检出含致癌物,还是花6800买的!乳
英语不好?那你就试试TensorFlow官方中文版
Hadoop学习-块、网络拓扑、副本策略、机架
超详细的Linux时间同步配置方法
比特币跌破3500美元至2017年9月以来的最低
北京一培训公司员工为赚提成收集千万个人信
腾讯QQ发布公告:因安全功能升级 不再提供
苹果macOS曝三个零日漏洞,可导致Mac电脑被
Facebook提高发现账户劫持漏洞的赏金金额
Linux内核发现两个尚未修复的DoS漏洞
淘宝双12大促玩法曝光:必须设店铺红包
PS4出现一位黑客 把不尊重他的玩家永久断开
你的ofo押金退了吗?
2019互联网校招薪酬曝光 看你能拿到多少钱
感恩节黑客也搞起了黑五大促 但甩卖的是你
网上谍影:境外间谍情报机关通过互联网窃取
亚马逊用户电子邮箱地址在黑色星期五前夕外
vivo NEX2首次曝光:极致双面屏+22.5W超级
百度网盘六周年庆活动上线:新用户1元买一
国产手机逆势崛起 苹果三星被挤压
QQ v9.0.8.24194 体验版发布
小米蓝牙耳机Air现身FCC:10小时续航
比特币再次暴跌 感恩节当周市值损失四分之
iOS登录,退出流程整理
© 2003-2018 安基网(SAFEBASE.CN) 京公网安备11010802027589号 京ICP备10030376号-6 【手机版】Powered by Discuz 存档 联系信箱: 0daybank
文章评论