利用BCDboot修复windows 7系统引导文件损坏
作者:freethy 发布于:2013-4-15 22:07 Monday
实验环境:windows 7 sp1
为了实验windows 7下的Bitlocker技术(驱动器加密),将C盘加密后,系统自己建立了一个额外的100M的隐藏分区。实验完成后,将此分区格式化,合并入C盘,至此问题出现,提示“bootmgr is missing”系统无法引导了。
后来发现,将C盘加密后产生的100M隐藏分区是用于存储系统引导文件的分区,格式化后,引导文件被删除了,自然无法引导。
用PE盘引导进入PE,利用BCDboot命令即可轻松的恢复引导文件。BCDboot 是一种用于快速设置系统分区或修复系统分区上的启动环境的工具。系统分区是通过从已安装的 Windows(R) 映像复制一小部分启动环境文件来设置的。BCDboot 还会在系统分区上创建引导配置数据 (BCD) 存储,该存储中包含一个新的引导项,可让您引导到已安装的 Windows 映像。
BCDboot 命令行选项
下列命令行选项可用于 BCDboot.exe。
BCDBOOT source [/l locale] [/s volume-letter] [/v] [/m [{OS Loader GUID}]]
选项 描述
source
指定作为源的 Windows 目录的位置,将从该目录中复制启动环境文件。
/l 可选。指定区域设置。默认值为美国英语。
/s 可选。指定系统分区的卷号。默认值是固件所标识的系统分区。
/v 可选。启用详细模式。
/m 可选。默认情况下,仅合并全局对象。
如果指定了 OS Loader GUID,则合并系统模板中给定的加载程序对象以生成可启动项。
在我所遇到的情况中,利用“bcdboot C:\Windows”即可使用 C: 卷上安装的操作系统映像中的文件来初始化系统分区。至此,系统恢复正常。
Mifare l卡特性简介
作者:freethy 发布于:2013-4-14 21:56 Sunday
Mifare l卡特性简介
M1卡为8K位的非接触式IC卡。
电气特性
l 容量为8K位EEPrOM
l 分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位
l 每个扇区有独立的一组密码及访问控制
l 每张卡有唯一序列号,为32位
l 具有防冲突机制,支持多卡操作
l 无电源,自带天线,内含加密控制逻辑和通讯逻辑电路
l 工作温度:-20℃~50℃
l 工作频率:13.56MHZ
l 通信速率:106KBPS
l 读写距离:10mm以内(与读写器有关)
l 数据保存期为10年,可改写10万次,读不限次
存储结构
M1卡分为16个扇区,每个扇区4块(块0~3),共64块,按块号编址为0~63。第0扇区的块0(即绝对地址0块)用于存放厂商代码,已经固化,不可更改。其他各扇区的块0、块1、块2为数据块,用于存贮数据;块3为控制块,存放密码A、存取控制、密码B,其结构如下:
A0A1A2A3A4A5 FF 07 80 69 B0B1B2B3B4B5
密码A(6字节) 存取控制(4字节) 密码B(6字节)
控制属性
每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制。在存取控制中每个块都有相应的三个控制位,定义如下:
块0: C10 C20 C30
块1: C11 C21 C31
块2: C12 C22 C32
块3: C13 C23 C33
三个控制位以正和反两种形式存在于存取控制字节中,决定了该块的访问权限(如进行减值操作必须验证KEY A,进行加值操作必须验证KEY B,等等)。三个控制位在存取控制字节中的位置如下(字节9为备用字节,默认值为0x69):
|
bit 7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
字节6 |
C23_b |
C22_b |
C21_b |
C20_b |
C13_b |
C12_b |
C11_b |
C10_b |
字节7 |
C13 |
C12 |
C11 |
C10 |
C33_b |
C32_b |
C31_b |
C30_b |
字节8 |
C33 |
C32 |
C31 |
C30 |
C23 |
C22 |
C21 |
C20 |
(注: _b表示取反)
其中,黑色区控制块3,蓝色区控制块2,绿色区控制块1,红色区控制块0。
数据块(块0、块1、块2)的存取控制如下:
控制位(X=0..2) |
访 问 条 件 (对块0、1、2) |
|||||
C1X |
C2X |
C3X |
Read |
Write |
Increment |
Decrement transfer restore |
0 |
0 |
0 |
KeyA|B |
KeyA|B |
KeyA|B |
KeyA|B |
0 |
1 |
0 |
KeyA|B |
Never |
Never |
Never |
1 |
0 |
0 |
KeyA|B |
KeyB |
Never |
Never |
1 |
1 |
0 |
KeyA|B |
KeyB |
KeyB |
KeyA|B |
0 |
0 |
1 |
KeyA|B |
Never |
Never |
KeyA|B |
0 |
1 |
1 |
KeyB |
KeyB |
Never |
Never |
1 |
0 |
1 |
KeyB |
Never |
Never |
Never |
1 |
1 |
1 |
Never |
Never |
Never |
Never |
(KeyA|B 表示密码A或密码B,Never表示任何条件下不能实现)
例如:当块0的存取控制位C10 C20 C30=100时,验证密码A或密码B正确后可读;验证密码B正确后可写;不能进行加值、减值操作。
控制块(块3)的存取控制与数据块(块0、1、2)不同,它的存取控制如下:
控制位 |
密码A |
存取控制 |
密码B |
|||||
C13 |
C23 |
C33 |
Read |
Write |
Read |
Write |
Read |
Write |
0 |
0 |
0 |
Never |
KeyA|B |
KeyA|B |
Never |
KeyA|B |
KeyA|B |
0 |
1 |
0 |
Never |
Never |
KeyA|B |
Never |
KeyA|B |
Never |
1 |
0 |
0 |
Never |
KeyB |
KeyA|B |
Never |
Never |
KeyB |
1 |
1 |
0 |
Never |
Never |
KeyA|B |
Never |
Never |
Never |
0 |
0 |
1 |
Never |
KeyA|B |
KeyA|B |
KeyA|B |
KeyA|B |
KeyA|B |
0 |
1 |
1 |
Never |
KeyB |
KeyA|B |
KeyB |
Never |
KeyB |
1 |
0 |
1 |
Never |
Never |
KeyA|B |
KeyB |
Never |
Never |
1 |
1 |
1 |
Never |
Never |
KeyA|B |
Never |
Never |
Never |
例如:当块3的存取控制位C13 C23 C33=100时,表示:
密码A: 不可读,验证KEYB正确后,可写(更改)。
存取控制:验证KEYA或KEYB正确后,可读不可写。
密码B: 不可读,验证KEYB正确后,可写。
工作原理
卡片的电气部分只由一个天线和 ASIC 组成。
天线:卡片的天线是只有几组绕线的线圈,很适于封装到 IS0 卡片中。
ASIC:卡片的 ASIC 由一个高速(106KB波特率)的 RF 接口,一个控制单元和一个8K位EEPROM组成。
读写器向 M1 卡发一组固定频率的电磁波,卡片内有一个 LC 串联谐振电路,其频率与讯写器发射的频率相同,在电磁波的激励下,LC 谐振电路产生共振,从而使电容内有了电荷,在这个电容的另一端,接有一个单向导通的电子泵,将电容内的电荷送到另一个电容内储存,当所积累的电荷达到 2V 时,此电容可做为电源为其它电路提供工作电压,将卡内数据发射出去或接取读写器的数据。