该系列案例解析按级别类别排列,如:
- `5 z2 T8 M/ i7 v) A1 D0 v: y. x6 U" S5 i! i) N
6 U- z% Z7 n T6 p/ A: r6 ?
6 t7 z3 C7 X# I
知识普及:
6 A4 Z8 _2 c8 [2 W2 q& w7 x3 ~. l
硬盘的引导扇区位于 0 磁道 0 磁头 1 扇区位置,该扇区存放着系统的引导程序和硬盘的分区表等重要信息。另外小甲鱼八卦一下,该扇区常常是病毒的重点攻击目标!
% M; I: ^& Y9 W& R$ x)
警告:MBR乃引导硬盘加载系统的核心,该操作危险,有可能使您的硬盘数据丢失,请先用栗子 2.1 备份硬盘MBR以作为恢复使用!
; L2 B! u5 C' N; c
* i$ g0 W" i, y W
% R8 D1 s" K( Q7 W' e' t
实现要求:用准备好的boot.ini文件改写、覆盖硬盘MBR。
+ ]! T9 K8 e: \! c- A( Z
程序演示:
+ x9 C0 ]0 _) j- r, f
STEP1. 先用WINHEX等工具查看当前MBR的数据
<IGNORE_JS_OP>
& e k% v2 d5 Z# y6 Y5 [2 `3 E- Y8 B
STEP2. 准备好修改过的boot.ini文件放在编译后的程序同个文件夹
9 i/ D2 F3 m; ]; N$ g2 g
STEP3. 执行修改程序
<IGNORE_JS_OP>
) W0 j: `( e+ i
STEP4. 用WINHEX查看硬盘MBR引导区,这时候已经成功修改了。
<IGNORE_JS_OP>
0 c+ V Q0 r% G7 q. q' s
STEP5. 重启系统,硬盘引导区错乱,已经无法启动了
<IGNORE_JS_OP>
4 B( v4 s, f8 p: s3 N; b2 j2 I
9 }" o8 _ z: U8 S8 q5 B" u: P% W {
喜讯:在STEP4修改后的MBR数据中,选中部分数据被小甲鱼用凯撒密码加密过,第一个还原出原文的童鞋奖励100鱼币。
提示1. 还原后的原文是中文哦
提示2. 可以用小甲鱼在 密码学系列教程中 给大家提供的破解工具。
9 c) N4 l P5 e- J/ g4 s
题外话:不知道为啥,众杀软居然无视我对MBR的修改,然后我成功毁了自己的虚拟机 。。。你没的杀软,坑爹的杀软,然后没有然后了 。。。。。。
9 q" I( m* V Q9 y* X
实现原理:
上节课小甲鱼不是说会告诉大家如何在用户模式下直接访问硬盘么?嗯,而且承诺绝对简单通俗。好吧,事实上,硬盘内核驱动程序将硬盘作为一个文件,文件名为:"\\.\\physicaldrive0"
* Q7 P; ? K) N7 R+ ^
我们可以利用这个鲜为人知的文件名,通过 CreateFile, ReadFile, WriteFile 和 DeviceIoControl API 来进行访问硬盘。; m$ L& E7 B$ K4 F A: ^; |: b, c
+ D4 j P+ r3 S9 a
2 J8 p& y$ w# K+ Z: {4 n' Q- j代码及详细注释: