该资源为电脑版,暂无安卓版
WinHex是一款常用的日常数据恢复工具,这款工具已经免费了,小编为大家提供最新附脚本教程与数据恢复教程,让大家下载发现问题时能即时找到解决方法,如果你需要这款软件,就来9553下载
WinHex 中文版同时也可以用来对付各种日常紧急情况的小工具。可以用来检查和修复各种文件、恢复删除文件、硬盘损坏造成的数据丢失等。同时它还可以让你看到其他程序隐藏起来的文件和数据。
WinHex一直以来广受赞誉,是软件破解、BIOS修改等方面的必备工具,其对十六进制数据的处理能力即使是常用的UltraEdit也无法望其项背的。
WinHex曾经和UltraEdit齐名的编辑器,但是后来两者的发展路线截然不同,UltraEdit做了全功能编辑器,而WinHex的功能更加趋于检查和修复各种文件、恢复删除文件、硬盘损坏造成的数据丢失等。利用WinHex可让你看到其他程序隐藏起来的文件和数据。而且其同样是非常不错的16进制编辑器。
– 硬盘, 软盘, CD-ROM 和 DVD, ZIP, Smart Media, Compact Flash, 等磁盘编辑器…
– 支持 FAT, NTFS, Ext2/3, ReiserFS, Reiser4, UFS, CDFS, UDF 文件系统
– 支持对磁盘阵列 RAID 系统和动态磁盘的重组、分析和数据恢复
– 多种数据恢复技术
– 可分析 RAW 格式原始数据镜像文件中的完整目录结构,支持分段保存的镜像文件
– 数据解释器, 已知 20 种数据类型
– 使用模板编辑数据结构 (例如: 修复分区表/引导扇区)
– 连接和分割、以奇数偶数字节或字的方式合并、分解文件
– 分析和比较文件
– 搜索和替换功能尤其灵活
– 磁盘克隆 (可在 DOS 环境下使用 X-Ways Replica)
– 驱动器镜像和备份 (可选压缩或分割成 650 MB 的档案)
– 程序接口 (API) 和脚本
– 256 位 AES 加密, 校验和, CRC32, 哈希算法 (MD5, SHA-1, …)
– 数据擦除功能,可彻底清除存储介质中残留数据
– 可导入剪贴板所有格式数据, 包括 ASCII、16 进制数据
– 可进行 2 进制、16 进制 ASCII, Intel 16 进制, 和 Motorola S 转换
– 字符集: ANSI ASCII, IBM ASCII, EBCDIC, (Unicode)
– 立即窗口切换、打印、生成随机数字
– 支持打开大于 4 GB 的文件,非常快速,容易使用。
– 广泛的联机帮助
文件类型支持
一个新的目录浏览器列现在可以在x - way取证和x - way调查者中使用,并且在元数据提取过程中填充:设备类型。这一栏显示了一个设备的类别,它产生了一个给定的JPEG文件,例如智能手机的主摄像头,智能手机的前置/辅助摄像头,一个点和拍摄/袖珍相机,摄像机,数码单反相机,网络摄像头等等。这些信息都来自于生成器的签名。本专栏还附带了一个过滤器。例如,如果你在寻找私密照片(用智能手机的前置摄像头拍摄)或相当专业的照片(比如单反相机或数码相机),就可以对设备类型进行过滤。
扫描图像通过报告表关联被识别。现在已经不是这样了。它们是由扫描仪产生的,现在可以在前面提到的专栏中看到。
被识别为屏幕截图的图片现在以“屏幕”显示为设备类型。设备类型“屏幕”识别屏幕截图,有时图片看起来是特别大小以匹配某个屏幕分辨率(例如壁纸)。
GPS的处理模式,如果有的话,在细节模式中列出。这种模式允许估计坐标的可靠性/精度。它被不同的制造商使用,它可以是下列值之一:未知,GPS,网络,混合,融合,或CELLID。
在提取的元数据和细节模式中,新的条目命名为“地理定位”,使用GPS坐标表示为谷歌地图、OpenStreetMap或Bing Maps所接受的符号。在提取的元数据中,它也取代了之前的字段纬度和经度,因为它更适合于自动处理。
额外的三个字段用于Exif GPS数据在可用的细节模式下输出:高度、图像方向和GPS错误。高度可能有助于判断geo坐标的可靠性。图像方向是高端智能手机的一个特点。
如果JPEG图片中的GPS坐标有什么不寻常的地方,这些GPS坐标现在用蓝色高亮显示。例如如果GPS坐标和GPS时间戳是缺席,为移动设备类型,众所周知,总是同时包括前置或后置摄像头(有时取决于使用),或相机类型没有GPS,它可能意味着坐标一直追溯嵌入式。与照片拍摄时不同的GPS时间戳也用蓝色突出显示。
一个名为PhoneAliasTable的新文件。txt包含一个从内部设备名称到人类可读的市场名称的翻译。在三星、摩托罗拉、LG和华为所使用的特定设备中,如果被翻译的话,它们的含义相当模糊,也更容易理解。此表还可以包含设备的发布日期和区域。这个表目前相对稀疏地填充,但是它的格式在header中被解释,以便用户可以帮助完成它。
Details模式现在显示了由许多三星手机创建的JPEG文件的固件日期和区域,这可以帮助验证其他元数据。
基于Exif数据验证的发电机签名表现在支持超过11000个设备(智能手机的前置摄像头被视为独立设备)。
从一些新的索尼设备产生的文件中提取的时区。
JPEG文件中的Twitter时间戳被识别并输出到“创建内容”列中。
从JPEG文件中提取内容创建的时间戳改进了。
自动删除在JPEG文件中两个缩略图之间的填充填充数据,这些数据是由不同的数码相机模型创建的,之前已经包含在第二个缩略图的数据中。
PNG文件现在还接收一个生成器签名作为元数据提取的一部分,以识别可能源自相同源和PNG文件的PNG文件,这些文件是屏幕截图。
检测一些PNG文件的生成设备类型,也显示在新设备类型列中。
改进了对旧手机的PNG截图的检测。
支持iOS netusage。sqlite文件,记录应用程序的数据使用情况。除了大量的数据流进和流出外,当应用程序在第一次和最后一次使用时,它们还提供了大致的时间戳。提取适当的事件并创建包含所有相关信息的HTML预览。
在处理EVTX文件时提高了稳定性。
支持Windows 10中某些注册表值的新格式变体。
图片显示
如果图片显示在预览模式下的内部图形浏览图书馆,不是单独查看器组件,他们现在可以旋转90°步骤中通过点击鼠标左键(向左旋转)和鼠标右键(向右旋转)。
在肖像模式下,一些主要制造商的手机和数码相机所拍摄的照片被存储在景观方向,并被标记为rota。
右击桌面的计算机图标”-“管理”-“磁盘管理” 可以看到磁盘1中有个1.8T的未分配的空间,这部分空间就是丢失的分区
打开WINHEX 按F9选择HD1物理磁盘
滚动条拉到最低
从这个扇区的0x28处记录的,可以知道文件系统大小3906321838
从左下角可以看出当前扇区是3907029166,根据当前扇区号和文件系统总扇区数 可以算出文件系统的起始扇区号 3907029166-3906321838=707328
跳转到707328扇区,发现是个正常的DBR说明我们刚刚算对了
跳转到0号扇区,将找到的分区起始扇区号和文件系统的总扇区数写到分区表就可以了。按CTRL+S保存修改。
在磁盘管理中,将硬盘刷新磁盘(先脱机再联机)
可以看到分区已经恢复正常了。
脚本命令适用的环境比较多。脚本文件中的注释以为双斜杠开头。脚本支持的最长255字符的参数。有疑点的地方是十六进制,文
本字符串(甚至10进制数值)都可以作为参数,你可以使用引号强制转换数字参数为文本参数。如果文本或者变量名中存在空格,
则引号是必须的,在引号中的所有字符都被被识别成一个参数而存在。
当在winhex中使用数学表达式的时候,可以引用数学表达式,但是必须用括号括起来。在数学表达式中不能有空格。同样可以在数
学表达式中应用数字变量。支持的操作有,加法(+),减法(-),乘法(*),整除(/),模除(%),逻辑运算符AND(&),
OR(|),以及XOR(^)。以下是有效的数学表达式:(5*2+1), (MyVar1/(MyVar2+4)), or (-MyVar)。
以下是目前支持的脚本命令的详细描述以及使用实例。
Create "D:My File.txt" 1000
创建一个1000字节的新文件,如果已经存在同名文件,则将其覆盖。
Open "D:My File.txt"
Open "D:*.txt"
打开指定格式的文件,如果通配符为“?”则winhex会让用户选择要打开的文件。
Open C:
Open D:
打开指定的逻辑驱动器。如果通配符为“:?”则winhex会让用户选择要打开的逻辑驱动器或者磁盘。
Open 80h
Open 81h
Open 9Eh
打开指定的物理介质。软盘的为00h,硬盘与u盘为80h,光盘为9Eh。
可以增加第二个参数来设定文件或者介质的编辑模式(“in-place”或者“read-only”)
CreateBackup
为活动文件的当前状态创建WHX备份。
CreateBackupEx 0 100000 650 true "F:My backup.whx"
备份当前活动磁盘中从0扇区到100000扇区的数据。备份文件将自动分割成650M大小。并且选择了压缩选项。输出文件的路径以及
名称作为最后的参数写入。
如果备份文件不需要分割,则第三个参数的数值该为0即可。如果不启动压缩功能则将“true”改为“false”。如果需要自动分配
文件名以及文件路径则最后的参数表示为“""”即可。
Goto 0x128
Goto MyVariable
将光标的位置移动到偏移量0x128位置(16进制表示)。同样也可以用数字变量(最长8字节)来定义光标移动的位置。
Move 100
将当前光标的位置向后移动100字节(16进制)。
Write "Test"
Write 0x0D0A
Write MyVariable
在光标当前位置(以覆盖模式)写入ASCII字符“Test”或者两个字节的16进制数“0D0A”。这里同样可以写入数字变量中的值。
同时将光标移动到被覆盖部分的后面。当到达文件的结尾时,将在文件尾部添加空字节以完成操作。下一个写命令将不会在文件尾
巴
Write2
和“Write”的功能类似,当时当到达文件结尾的时候,不会在文件添加空字节。So it is
not safe to assume that Write2 always moves the current position forward by the number of bytes
written.
Insert "Test"
功能与“Write”类似,但是在“insert”模式只能应用于文件。
Read MyVariable 10
从当前位置读入10个字节的数据到“MyVariable”变量中。如果变量不存在,它将会创建一个。winhex同时可以支持48个不同的变
量。另一个创建变量的命令是“Assign”。
ReadLn MyVariable
从当前位置读入一整行的数据到“MyVariable”变量中直到遇到换行符。如果变量已经存在了,则变量的大小将会被从新调整。
Close
不保存的关闭当前活动窗口。
CloseAll
不保存的关闭所有窗口。
Save
保存当前活动窗口中打开的文件或磁盘的修改。
SaveAs "C:New Name.txt"
将当前活动窗口打开的文件另存为指定目录下的文件。如果通配符为“?”,则winhex会让用户自己选择保存的路径以及文件名。
SaveAll
保存所有窗口中修改。
Terminate
中断脚本的执行。
Exit
中断脚本的执行并且关闭winhex。
ExitIfNoFilesOpen
如果在winhex中没有打开的文件将终止脚本文件的执行。
Block 100 200
Block "My Variable 1" "My Variable 2"
在当前活动窗口中定义一个偏移量从100到200的选块(10进制)。下一行命令表示定义从变量"My Variable 1"到"My Variable 2"
的选块(最长8字节)
Block1 0x100
在偏移量0x100处定义一个字节的选块。同样可以使用变量。
Block2 0x200
定义一个从开头到偏移量0x200部分的选块。同样可以使用变量。
Copy
将当前选块复制进剪切板中。如果没有定义选块,其功能和编辑菜单中的复制命令相同。
Cut
将当前选块中的文件剪切到剪切板中。
Remove
将当前选块中的数据从文件中移除。
CopyIntoNewFile "D:New File.dat"
CopyIntoNewFile "D:File +MyVariable+.dat"
将当前选块中的数据复制进指定的新文件,而不复制进剪切板。如果没有定义选块,其功能和编辑菜单中的复制命令相同。同样可
以复制磁盘扇区中的数据作为一个新文件。新建的文件不会自动在winhex的编辑窗口中打开。可以在“+”之间加入变量,变量名
将被解释为不大于2^24(16M)的整数。通常在循环应用以及文件恢复中比较有用。
Paste
将剪切板中的数据粘贴入文件中,并且不改变光标当前位置。
WriteClipboard
将剪切板中的数据写入文件或磁盘扇的当前位置中,不改变光标当前位置,并且覆盖从当前光标所在位置以后的数据。
Convert Param1 Param2
将当前活动文件中的数据从一种格式转换成另一种格式。有效的参数是ANSI,IBM,EBCDIC,Binary,HexASCII,IntelHex,
MotorolaS, Base64, UUCode, LowerCase, 以及UpperCase,与转换菜单中的转换菜单命令功能相同。
AESEncrypt "My Password"
使用AES加密当前活动文件或者磁盘,或其选块,使用指定的密钥(最高32位)。
AESDecrypt "My Password"
解密当前活动文件或磁盘。
Find "John" [MatchCase MatchWord Down Up BlockOnly SaveAllPos Unicode Wildcards]
Find 0x1234 [Down Up BlockOnly SaveAllPos Wildcards]
分别搜索当前活动窗口中名为“john”的字符串或16进制值数0x1234,并且在第一个搜索到的地方停下来。其他的参数是可选的。
默认的winhex搜索整个文件或磁盘。其他的可选参数功能和通常的winhex搜索选项相同。
ReplaceAll "Jon" "Don" [MatchCase MatchWord Down Up BlockOnly Unicode Wildcards]
ReplaceAll 0x0A 0x0D0A [Down Up BlockOnly Wildcards]
在当前活动窗口中使用其他的值替换所有存在上述字符串或16进制数值的地方。在“in-place”模式下只能应用与磁盘。
IfFound
如果发现了值则执行下面的命令。
IfEqual MyVariable "Hello World"
IfEqual 0x12345678 MyVariable
IfEqual MyVariable 1000
IfEqual MyVariable MyOtherVariable
IfEqual MyVariable (10*MyOtherVariable)
比较两个整数值(其中每个值可以是常量,整数变量或者数学表达式)或者两个变量,ASCII字符串,或16进制数值(2进制模式)
。比较两个对象的2进制数值长度,如果不相同的话则返回结果为false。只有返回值为true时,下面的命令才会被执行。if条件不
可以镶套使用。
IfGreater MyVariable "Hello World"
IfGreater 0x12345678 MyVariable
IfGreater MyVariable 1000
IfGreater MyVariable MyOtherVariable
IfGreater MyVariable (10*MyOtherVariable)
和IfEqual拥有相同的参数。第一个参数大于第二个参数,返回值为true,则下面的命令才能被执行。if条件不可以镶套使用。
Else
应用在IfFound或IfEqual之后。如果没有任何对象被搜索到或者比较的目标不相同,则执行else后面的代码。
EndIf
结束if条件命令执行(在IfFound或IfEqual之后)。
{...
ExitLoop
...}
退出循环。其后会有一个方括号来定义其循环次数,可以是变量也可以是关键字“unlimited”(无限循环)。winhex脚本中循环
只能使用ExitLoop命令来退出。循环不可以镶套使用。
举例:
{ Write "Loop" }[10] 将输出“Loop”字符串10次。
Label ContinueHere
创建一个标签并命名为“ContinueHere”
JumpTo ContinueHere
脚本跳转到标签处继续执行.
NextObj
循环在所有窗口中进行切换“活动”窗口。如果有三个窗口被打开,并且窗口#3状态为活动窗口,则“NextObj”命令将会让窗口
#1变为活动窗口。
ForAllObjDo
在ForAllObjDo与EndDo之间的脚本代码将在所有打开的文件或者磁盘中执行。
CopyFile C:A.dat D:B.dat
将C:A.dat文件中的内容复制到D:B.dat中。
MoveFile C:A.dat D:B.dat
将C:A.dat文件转移到D盘中并命名为D:B.dat。
DeleteFile C:A.dat
将C:A.dat文件删除。
InitFreeSpace
InitSlackSpace
使用当前初始化设置清理当前逻辑驱动器中的所有自由空间或松散空间,InitSlackSpace将驱动器的模式临时转换为“in-place”
模式,以保存未保存的修改。
InitMFTRecords
使用当前初始化设置在当前NTFS格式的逻辑驱动器中清理未使用的MFT FILE记录。对于其他的文件系统无效。修改立即就会写入硬
盘中。
Assign MyVariable 12345
Assign MyVariable 0x0D0A
Assign MyVariable "I like WinHex"
Assign MyVariable MyOtherVariable
将整数,二进制数值,ASCII文本,或其他变量内容保存到“MyVariable”变量中。如果这个变量不存在,将会被自动创建。其他
的创建变量的方法:Read,GetUserInput,InttoStr。同时可以允许有48个变量存在。
Release MyVariable
删除一个已存在的变量,因为winhex脚本中只支持48个变量存在,所以用过的不再使用变量我们可以将其删除以释放变量空间。
GetUserInput MyVariable "Please enter your name:"
在脚本运行期间,保存用户指定的ASCII文本或二进制数据(0x...)到变量“MyVariable”中。第二个参数给除了用户提示。如果
变量不存在,它将重新创建一个。其他创建变量的方式:Assign,Read。
GetUserInputI MyIntegerVariable "Please enter your age:"
与GetUserInput功能相同,但是只允许整数型变量。
Inc MyVariable
将变量解释为整数(不大于8位)并且每运行一次变量自动加1。在循环中有用。
Dec MyVariable
将变量解释为整数(不大于8位)并且每运行一次变量自动减1。在循环中有用。
IntToStr MyStr MyInt
IntToStr MyStr 12345
将第一个变量中的ASCII文本转换成整数并保存到第二个变量中。
StrToInt MyInt MyStr
将第一个变量中的整数转换成ASCII文本并保存到第二个变量中。
GetClusterAlloc MyStr
在逻辑卷中,找回哪个文件被储存在当前簇中的文本描述,然后将描述保存到指定的变量中。
GetClusterAllocEx IntVar
在逻辑卷中,找回一个整数值指示簇是否被分配,1或者非0,表示该簇已被分配。并且将描述保存在指定变量中。
GetClusterSize IntVar
返回逻辑卷中簇的大小,并将数值保存到指定的变量中。
InterpretImageAsDisk
将磁盘镜像或证据文件作为原始物理磁盘或分区一样对待。需要specialist或forensic许可。
CalcHash HashType MyVariable
CalcHashEx HashType MyVariable
与工具菜单中的hash命令功能相同并且将变量储存在指定变量中(如果变量不存在,则会自动创建)。HashType参数必须为以下类
型中的一种:CS8, CS16, CS32, CS64, CRC16, CRC32, MD5, SHA-1, SHA-256, PSCHF。CalcHashEx命令将在windows窗口中显示
hash值。
MessageBox "Caution"
显示信息对话框,并且提供ok和cancel两个按钮。按下cancel按脚本本。
ExecuteScript "ScriptName"
在脚本的当前运行处运行另一个脚本。调用其他外部脚本可以镶套使用。当被调用的脚本执行完成以后,脚本继续执行下面的命令
。这个特征可以帮助用户清楚的了解脚本的结构。
Turbo On
Turbo Off
管理道模式开关。
Debug
用户可以利用该命令确定脚本中的每一条命令都是否有效。
UseLogFile
错误信息被写入当前文件夹下的日志文件“scripting.log”。这些信息不会显示在信息对话框中。非常有用,特别在运行的脚本
主机无法远程连接的时候。
CurrentPos
GetSize
unlimited
以上三个是winhex脚本中的关键字,可以被使用在应用数字参数的地方。在脚本执行过程中,CurrentPos表示当前活动文件或者磁