分类目录归档:技术文献

WinHex脚本自动修复FAT32 DBR

        本代码并非通过备份DBR修复,而是通过文件系统结构来达到修复的目的,如有需要请把以下代码保存成whs文件,放到WinHex目录中即可运行。

Assign ParSize GetSize
Assign SecSize 512

Goto 0x000
Write 0xEB5890
Write 0x4D53444F53352E30
Write SecSize
Write 0x00
Write 0x0000
Write 0x02
Write 0x0000
Write 0x0000
Write 0xF8
Write 0x0000
Write 0x3F00
Write 0xFF00
Write 0x00000000
Write 0x0000000000000000
Write 0x0000
Write 0x0000
Write 0x02000000
Write 0x0100
Write 0x0600
Write 0x000000000000000000000000
Write 0x80
Write 0x00
Write 0x29
Write 0x9E3A76F0
Write 0x48424E2052657061697220
Write 0x4641543332202020
{
Write 0x00
}[420]
Write 0x55AA

Goto 0x020
Write (ParSize/SecSize)

Goto 0x000
Find 0xF8FFFF0FFFFFFF Down
IfFound
Assign FAT1 CurrentPos
Move SecSize
EndIF

Find 0xF8FFFF0FFFFFFF Down
IfFound
Assign FAT2 CurrentPos
Move SecSize
EndIF

Goto 0x024
Write ((FAT2/SecSize)-(FAT1/SecSize))

Goto 0x00E
Write (FAT1/SecSize)

Goto ((FAT2-FAT1)+FAT2)
Find 0x2E20202020202020202020 Down
IfFound
Assign SEC1 CurrentPos
Move 26
Read CDX1 2
EndIF

Find 0x2E20202020202020202020 Down
IfFound
Assign SEC2 CurrentPos
Move 26
Read CDX2 2
EndIF

Goto 0x00D
Write (((SEC1/SecSize)-(SEC2/SecSize))/((CDX1)-(CDX2)))

MessageBox "DBR修复完成!"

VirtualBox虚拟机磁盘结构-WinHex模板

以下是VirtualBox虚拟机磁盘结构的WinHex模板,研究此结构的可以借鉴。

 

template "VirtualBox虚拟机磁盘结构 v1.1"
description "VirtualBox虚拟机磁盘结构 v1.1"

sector-aligned
applies_to disk
requires 0x0 "3C 3C 3C 20 53 75 6E 20 56 69 72 74 75 61 6C 42 6F 78 20 44 69 73 6B 20 49 6D 61 67 65 20 3E 3E 3E"

begin

Char[64] "标签"
Hex 4 "标签 7F 10 DA BE"
Uint16 "版本号高"
Uint16 "版本号低"
Uint32 "结构大小(字节)" //从当前位置开始
Hex 4 "磁盘类型" //1动态扩展 2固定大小
Hex 4 "镜像标志"
char[256] "镜像备注"
UInt32 "offBlocks"
UInt32 "数据区起始偏移地址(字节)"
Section "老标准"
UInt32 "柱面"
UInt32 "磁头"
UInt32 "扇区"
UInt32 "扇区大小(字节)"
Section ""
Uint32 "BIOS的硬盘转换模式(现在未用)"
Int64 "虚拟磁盘大小(字节)"
UInt32 "块大小字节数"
Uint32 "附加块"
UInt32 "块总数"
UInt32 "使用中的块数"
numbering 1
section "镜像 UUID"
{
read-only guid "GUID (GUID~)"
move -16
hex 16 "GUID (HEX~)"
section ""
}[4]
Section "新标准"
UInt32 "柱面(新建时为0)"
UInt32 "磁头(新建时为0)"
UInt32 "扇区(新建时为0)"
UInt32 "扇区大小(字节)"

Section "说明:"
Section ""
Section "位图项总数=要新建虚拟硬盘大小(GB)*1024"
Section ""
Section "vdi虚拟硬盘文件大小(字节)="
Section "要新建虚拟硬盘大小(GB)*1024*4+512"
Section ""
Section "一块大小为2048扇区1048576字节1MB)"

end

FLV 文件格式

    FLV(Flash Video)是现在非常流行的流媒体格式,由于其视频文件体积轻巧、封装播放简单等特点,使其很适合在网络上进行应用,目前主流的视频网站无一例外地使用了FLV格式。另外由于当前浏览器与Flash Player紧密的结合,使得网页播放FLV视频轻而易举,也是FLV流行的原因之一。
    FLV视频格式是Adobe公司设计开发的,目前已经免费开放,现在的版本是v10。下面我们就了解一下FLV文件格式。
    FLV是流媒体封装格式,我们可以将其数据看为二进制字节流。总体上看,FLV包括文件头(File Header)和文件体(File Body)两部分,其中文件体由一系列的Tag及Tag Size对组成。因此一个FLV文件看上去是下面的结构:

点击查看原图

    其中,Previous Tag Size紧跟在每个Tag之后,占4个字节表示一个UI32类型的数值,表示前面一个Tag的大小。需要注意的是,Previous Tag Size #0的值总是为0。Tag类型包括视频、音频和Script,且每个Tag只能包含一种类型的数据。下面我们看看File Header和Tag的具体结构,为了方便大家理解,我贴一个实际FLV文件的字节流图片,图片中把不同部分区分了颜色。

点击查看原图

 
一、File Header结构
    File Header在当前版本中总是由9个字节组成,如图中蓝色区域所示。
    第1-3字节为文件标识(Signature),总为“FLV”(0x46 0x4C 0x56),如图中紫色区域。
    第4字节为版本,目前为1(0x01)。
    第5个字节的前5位保留,必须为0。
    第5个字节的第6位表示是否存在音频Tag。
    第5个字节的第7位保留,必须为0。
    第5个字节的第8位表示是否存在视频Tag。
    第6-9个字节为UI32类型的值,表示从File Header开始到File Body开始的字节数,版本1中总为9。
 
二、Previous Tag Size结构
    如图中红色位置所示。
 
三、Tag结构
    Tag包括Tag Header和Tag Data两部分。不同类型的Tag的Header结构是相同的,但是Data结构各不相同。如图中绿色和黄色区域分别表示Tag Header数据和Tag Data数据。
    当前版本的Tag Header结构占用11个字节。
    第1个字节表示Tag类型,包括音频(0x08)、视频(0x09)和script data(0x12),其他类型值被保留。
    第2-4字节为UI24类型的值,表示该Tag Data部分的大小。
    第5-7字节为UI24类型的值,表示该Tag的时间戳(单位为ms),第一个Tag的时间戳总是0。
    第8个字节为时间戳的扩展字节,当24位数值不够时,该字节作为最高位将时间戳扩展为32位值。
    第9-11字节为UI24类型的值,表示stream id,总是0。
    后面的字节为Tag Data数据,Data的大小由第2-4字节的数值指示,根据第1个字节指示的Tag类型,按照不同的结构解析Tag Data。下面分别介绍。
 
四、Audio Tag Data结构
    音频Tag开始的第1个字节包含了音频数据的参数信息,从第2个字节开始为音频流数据。
    第1个字节的前4位的数值表示了音频数据格式,各值代表的意义大家可以查阅Adobe公司发布的FLV格式说明文档(可以到我的磁盘空间的“资料”目录去下载 http://e.ys168.com/?tinyfun)。
    第1个字节的第5-6位的数值表示采样率,0 = 5.5 kHz,1 = 11 kHz,2 = 22 kHz,3 = 44 kHz。
    第1个字节的第7位表示采样精度,0 = 8bits,1 = 16bits。
    第1个字节的第8位表示音频类型,0 = mono,1 = stereo。
 
五、Video Tag Data结构
    视频Tag也用开始的第1个字节包含视频数据的参数信息,从第2个字节开始为视频流数据。
    第1个字节的前4位的数值表示帧类型。
    第1个字节的后4位的数值表示视频编码ID,1 = JPEG(现已不用),2 = Sorenson H.263,3 = Screen video,4 = On2 VP6,5 = On2 VP6 with alpha channel,6 = Screen video version 2。
 
六、Script Tag Data结构
    该类型Tag又通常被称为Metadata Tag,会放一些关于FLV视频和音频的参数信息,如duration、width、height等。通常该类型Tag会跟在File Header后面作为第一个Tag出现,而且只有一个。
    一般来说,该Tag Data结构包含两个AMF包。AMF(Action Message Format)是Adobe设计的一种通用数据封装格式,在Adobe的很多产品中应用,简单来说,AMF将不同类型的数据用统一的格式来描述。第一个AMF包封装字符串类型数据,用来装入一个“onMetaData”标志,这个标志与Adobe的一些API调用有,在此不细述。第二个AMF包封装一个数组类型,这个数组中包含了音视频信息项的名称和值。具体说明如下,大家可以参照图片上的数据进行理解。
 
    第一个AMF包:
       第1个字节表示AMF包类型,一般总是0x02,表示字符串,其他值表示意义请查阅文档。
       第2-3个字节为UI16类型值,表示字符串的长度,一般总是0x000A(“onMetaData”长度)。
       后面字节为字符串数据,一般总为“onMetaData”。
 
    第二个AMF包:
       第1个字节表示AMF包类型,一般总是0x08,表示数组。
       第2-5个字节为UI32类型值,表示数组元素的个数。
       后面即为各数组元素的封装,数组元素为元素名称和值组成的对。表示方法如下:
       第1-2个字节表示元素名称的长度,假设为L。
       后面跟着为长度为L的字符串。
       第L+3个字节表示元素值的类型。
       后面跟着为对应值,占用字节数取决于值的类型。

Windows 7中如何禁用EFS加密

EFS加密服务的确是很安全,但是如果不是我们自己本意识的加密,可能就是一场灾难了,比如朋友或者家人在不经意给加密了并且你还不知道,密钥也没有备份就重装系统了后果....以下是禁用EFS加密功能的方法。

 

1、打开“开始>运行”,键入 secpol.msc ,回车,打开本地安全设置对话框。

点击查看原图

2、“安全设置>公钥策略>加密文件系统”项。右击“加密文件系统”,选择“属性”。

点击查看原图

3、在“常规”选项卡中,将“使用加密文件系统的文件加密”设置为“不允许”,再按“确定”保存设置。

点击查看原图

如果要恢复加密功能,重新选择“允许”即可。
禁用 EFS 加密后就不能给文件或文件加加密了,再次加密时会出现下面的错误提示:

点击查看原图

 

 

适用系统:
Windows 7 Professional(专业版),Windows 7 Enterprise(企业版),Windows 7 Ultimate(旗舰版)

Linux_Ext分区超级块结构