Sci论文 - 至繁归于至简,Sci论文网。 设为首页|加入收藏
当前位置:首页 > 计算机论文 > 正文

基于Winhex的SONY MP4视频图像碎片重组技术在刑事案件中的应用论文

发布时间:2022-12-30 09:48:53 文章来源: SCI论文网 我要评论














SCI论文(www.lunwensci.com):

  摘要:SONY MP4视频文件由于其不连续存储的特性,在存储介质损坏、病毒破坏、删除、格式化等操作下,视频文件会形成大量的视频流碎片。在刑事案件中,由于案件证据固定和侦查的时效性要求较高,往往需要现场及时提取恢复,针对SONY MP4视频文件碎片大小不统一,一般需要先分析碎片大小及特征,再编写程序进行提取重组,相对比较耗时。本文基于Winhex编写脚本,利用脚本的批处理特性,主要从其文件底层存储的特性和规则,对视频文件碎片进行提取和重组,相对灵活,方便快捷,可以提高在刑事案件应用中的时效性。
 
  关键词:Winhex脚本;SONY MP4;视频图像;文件碎片
 
  Application of SONY MP4 Video Image Fragmentation Technology Based on Winhex in Criminal Cases
 
  LI Donghui,ZHAO Zhizhen
 
  (Beijing Tongda Fazheng Forensic Appraisal Center,Audio-Visual Data Appraisal Laboratory,Beijing 100071)
 
  【Abstract】:Due to its discontinuous storage characteristics,SONY MP4 videofiles will form a large number of video stream fragments under the operation of storage medium damage,virus damage,deletion,formatting,etc.In criminal cases,due to the high requirements for thefixation of case evidence and the timeliness of investigation,it is often necessary to extract and restore the scene in time.Since the fragment size of SONY MP4 videofiles is not uniform,it is generally necessary to analyze the size and characteristics of the fragmentsfirst,and then write a program to extract and reorganize,which is relatively time-consuming.This article is based on Winhex to write a script,using the batch processing feature of the script,mainly from the characteristics and rules of the underlying storage of thefile,to extract and reorganize the videofile fragments,which is relativelyflexible,convenient and fast.It can improve the timeliness in the application of criminal cases.
 
  【Key words】:Winhex Script;SONY MP4;video images;file fragments
 
  0引言
 
  多起刑事案件中,存在SONY高清视频录像机内MP4视频文件被破坏的情况,给案件的证据固定和侦查工作带来了很多阻碍,本文针对3起刑事案件中涉及到被删除、格式化的SONY MP4文件碎片存储规则,编写Winhex脚本,分别对文件头、视频流、封装代码等进行提取。
 
  通过设置不同视频流块大小的参数,可以实现对视频碎片的自动定位和提取。通过文件底层代码的顺序拼接实现对文件头、视频流块、封装代码的重组。
 
  1脚本
 
  1.1脚本的定义
 
  脚本是一种以纯文本形式保存的程序,是批处理文件的延伸,通常是解释运行而不进行编译操作。
 
  脚本语言是为缩短传统的“编写、编译、链接、运行”(edit-compile-link-run)过程而创建的计算机编程语言,普遍都具有简洁、批处理、易学、易用的特点。计算机系统的各个层次几乎都有对应的一种脚本语言,比如操作系统层、网络应用程序等。在很多方面,脚本语言和其他计算机高级编程语言之间存在相互交叉,并没有很明确的界限。


\
 
 
  1.2脚本的基本概述
 
  脚本是由一系列命令组成,查看和编辑都比较简单易操作,可以使用任何的文本编辑器打开查看和进行编辑(如可以使用记事本、Notepad++、EditPlus、EmEditer、Sublime Text等打开查看、编辑),在执行脚本程序时,系统的一个解释器先将脚本的一系列命令一条一条地翻译成机器可识别的指令,再按照程序的顺序来执行指令。
 
  脚本语言的种类较多,一般的脚本语言的执行只同具体的解释执行器有关,所以只要系统上有相应语言的解释程序就可以做到跨平台。脚本(Script),就是含有bind和alias等命令的集合,你可以把这个集合存为一个独立的文件然后在需要的时候执行,这样就可以方便在CS中的使用。脚本可以存为后缀名为.cfg的文件放在cstrike文件夹下,执行时在控制台输入:exec(脚本文件名).cfg即可。比如将一个脚本存为buys.cfg文件,则在控制台中输入:execbuys.cfg则可以实现我们所需要的功能。要实现一个命令只要把这一过程定义(alias)好,并且分配一个键位给这个命令,以后只要按分配好的键位,就可以实现这一过程。所有的脚本都是通过这一方法实现的[1]。
 
  1.3脚本的特性
 
  总的来说脚本是一种特定格式的可实现批处理功能的描述性语言,它的主要特性是:描述性、批处理和语法性。描述性是脚本最本质的特性,也就是说,我们只需要描述出我们想要达到的目的,它就可以帮助我们完成;批处理是脚本最有用的特性,可以自动化地实现一种处理逻辑;语法性是脚本形态的体现,不同种类的脚本语言拥有不同的语法,不能相互使用、错用。
 
  1.4常见脚本语言
 
  常见的脚本语言有ASP、PHP、JSP、Python、Perl、Shell、Ruby、VBScript、Scala、JavaScript、MAX Script、SQL、JavaFX、ActionScriptLua、AutoIt、Winhex等,其中Winhex脚本常用于文件底层十进制、十六进制代码的分析和批处理。
 
  2 Winhex脚本
 
  Winhex脚本是后缀名为“whs”的运行于winhex程序中的一种脚本语言,主要用于底层数据(十进制、十六进制)代码的批量分析、搜索、定位、修改、提取。Winhex脚本主要是利用脚本的批处理特性将原本复杂繁琐的手工数据分析过程自动化,提高数据分析的时效,使得分析结果更高效、更便捷。Winhex脚本的语言基础是底层数据,底层数据包含文件系统结构、数据区、未分配簇和文件残留区等,由于其原始性和全面性更适用于在刑事案件中的数据分析。
 
  2.1 Winhex脚本的语法
 
  Winhex脚本包含变量、操作符、关键字、函数等,其大部分功能都可以利用脚本的批处理特性实现自动运行,其基本语法主要包括以下几个方面:
 
  (1)脚本的启动可以从命令行和启动中心运行;
 
  (2)脚本文件可以使用任何文本编辑器(如Notepad++、EditPlus、EmEditer、Sublime Text等)编写,后缀名为“whs”;
 
  (3)编写脚本时应一行一句,做到代码直观简洁;
 
  (4)脚本编写时不区分大小写,注释可以用“//”表示,并且可以在脚本的任何位置添加注释;
 
  (5)脚本的长度最大不超过255个字符,可以是十进制整数、十六进制整数、文本等;
 
  (6)脚本编写中可以用双引号“”或单引号‘’将整数强制转换为文本;
 
  (7)脚本编写中在需要数字(整数)参数的时候,内部集成的公式解析器支持使用数据表达式。这些表达式需要用单括号括起来,可以用代表整数的变量但不能包含空格字符。支持数学运算(如:加(+)、减(—)、乘(*)、整数除法(/)、取模(%)、按位与(&)、按位或(|)、按位异或(^))[2]。
 
  2.2 Winhex脚本变量
 
  Winhex脚本的变量可以直接进行赋值就能表达相应的类型,而不需要特意指明变量的类型,且可以有48个变量同时存在。例如使用“Assign MyVariable 6666、Assign MyVariable 0x0F1E、Assign MyVariable‘I loveScript’、Assign MyVariable MyOtherVariable”将整数,二进制数值,ASCII文本,或其他变量内容保存到“MyVariable”变量中。变量不存在时将会被自动创建变量;使用“Release MyOtherVariable”来删除一个已经存在的变量,因为在Winhex脚本中只支持48个变量存在,所以已经使用过的不需要再使用变量可以将其删除以释放变量空间。
 
  Winhex变量(命令)分别具有特定的语法,分别实现不同的功能,在视频碎片数据分析中常用变量有Create新建一个文件并指定其创建路径和初始大小、Open打开文件、打开磁盘、通配符访问,会打开访问对象并将其数据显示在编辑区、Move移动光标(相对跳转)、Write写入数据、Read读取数据、Close/CloseAll关闭当前编辑窗口/无条件关闭所有编辑窗口并不保存、Save保存、SaveAs另存为、Block数据选块、CopyIntoNewFile复制数据创建空白文件,并将数据写入新建文件、Find搜索、IfFind条件搜索、IfEqual条件判断、ForAllObjDo并行等。
 
  3 MP4流文件的组成机制
 
  一个MP4文件可以包含所有表达的数据元,并按照一个标准规范被格式化。如果该文件包含所有的媒体数据,则它就是一个自包含文件,否则它就是一个引用文件[3]。自包含文件只包含当前使用的核心媒体数据和信息,不包含与基于流协议之上的流相关的信息,它对数据元文件的格式的约束只限于媒体文件中的媒体数据必须能够被媒体数据的定义所描述。其他的文件可能是ISO文件、图像文件或其他格式的文件,因此这些辅助文件的格式基本上是自由格式[4]。
 
  MP4文件格式采用面向对象技术将许多分离的内容通过轨道链接在一起,但是文件的物理结构和媒体层都不和媒体的时间顺序捆绑在一起,视频帧并不需要按时间顺序存放在文件中。这意味着需要通过描述媒体放置和时间的文件结构来引用媒体数据,这些文件结构允许但并不要求文件有时间顺序。通过数据引用可以对辅助媒体文件中的媒体定位。这样就可以利用存在分离的文件中的“库”媒体合成一个文件,而不需要将这些媒体数据复制到一个文件中,这样更适合编辑。在MP4文件格式中,整体表达文件叫做一个视频/影片[3]。逻辑上将它划分为轨道,每个轨道代表一个时间化的媒体序列(例如视频帧)。采用上述方式,就可以将MP4文件组织为一个对象序列。文件中的对象序列应该精确地包含一个数据元外包的表达(视频区段)。它通常存在于文件的开始和结束,这样就很容易找到它。其他的对象可以存在于自由空间区段或媒体数据区段[4]。在对象中的域首先是使用大字节数来保存,也就是网络字节顺序或big-endian格式[5]。基于MP4文件的“流文件特性”,在底层存储上表现为不连续存储,这样在文件被删除或格式化后在底层的存储表现为文件碎片形式。
 
  4 SONY MP4视频文件底层存储特性
 
  Sony MP4文件从底层存储结构上可以分为文件头、视频流、备份的文件头和视频封装代码4个主要部分。文件头在前,被破坏的视频文件头中4个记录该视频文件大小的字节被清除,文件的大小信息记录在备份的文件头中,备份的文件头紧接着是封装代码,扇区连续。封装代码在文件结尾处,中间是视频流、视频流连续,但是视频流之前的扇区不连续,且不同视频文件的视频流存在交叉存储。
 
  4.1文件头
 
  文件头标志为“ftypmp42”,对应16进制代码为“00 00 00 18 66 74 79 70 6D 70 34 32”,共占用128个扇区,每个扇区512个字节,文件头的大小为65536个字节。在mdat(6D 64 61 74)前的4个字节记录了文件大小,在视频文件被删除、格式化后,记录文件大小的4个字节被清除,变为“00 00 00 00”,如图1所示。

\
 
  在文件尾部封装之前有一个备份的文件头,记录文件大小的字节为“09 84 81 01”,该字节为BigEndation高位优先存储顺序,即最地位地址存放最高位字节。经过数据解析器Data Interpreter(Big Endation)可以看到文件大小为159678721字节,如图2所示。
 
  4.2视频流
 
  视频流是以00到FF的顺序的视频流块连接,顺序指示位置位于“F8 E0 01 00 01 00 00 00”之后的第1个字节,如图3中的标记的黄色字节,“70 54 0A”为每个视频流块的起始字节,起始字节前的8个字节为视频流标志如“08 00 46 02 02 40 5A 96”,每个视频的视频流标志不同,可以根据这8个字节来区分视频流的所属。在3起典型的刑事案件中的每个视频流块是以32000、32256、32512个扇区存储,如图3、图4所示。

\
 
 
  4.3封装代码
 
  封装代码在视频文件结尾处,是以moov(6D 6F 6F 76)前4个字节开始,到〈/NonRealTimeMeta>(3C 2F 4E 6F 6E 52 65 61 6C 54 69 6D 65 4D 65 74 61 3E 0D 0A)结束,如图5、图6所示。
 
  5 SONY MP4视频文件碎片的提取
 
  根据SONY MP4视频文件碎片存储特征,分别编写Winhex脚本对文件头、尾部封装代码、视频流进行提取和编号。
 
  5.1文件头的提取
 
  依据文件头的开始标志字节“00 00 00 18 66 74 79 70”编写向下查找的脚本“Find 0x000000001C66747970”找到文件头,“move 65535”向下移动128个扇区减去1个字节(65536个字节)到文件头的结尾处,提取本段代码,“CopyIntoNewFile"G:SONY MP4文件头T+MyVariable+.mp4"”保存为文件。通过此脚本可以将视频存储介质中的全部SONY MP4视频文件的文件头提取出来,并顺序编号。主要脚本如图7所示。
 

\
 
  5.2尾部封装代码的提取
 
  依据尾部封装代码的开始标志字节“6D 6F 6F 76”编写脚本,首先找到标志字节“Find 0x6D6F6F76 Down”,“move-4”向前移动4个字节到封装代码的起始处,“Find 0x3C2F4E6F6E5265616C54696D654D6574613E0D0A Down”继续向下查找封装代码的结束标志〈/NonRealTimeMeta>提取本段代码,“CopyIntoNewFile"G:SONY MP4尾部封装W+MyVariable+.mp4"”保存为文件。通过此脚本可以将视频存储介质中的全部SONY MP4视频文件的尾部封装代码提取出来,并顺序编号。主要脚本如图8所示。
 

\
 
  5.3视频流碎片的提取
 
  依据视频流的开始前的标志字节“F8 E0 01 00 01 00 00 00”编写脚本,首先找到标志字节“Find F8 E0 01 00 01 00 00 00”,“move 48”向后移动48个字节到视频流的开始字节“70 54 0A”,根据视频流的存储大小32000、32256、32512扇区,分别向后跳转16380999、16515071、16646143个字节,提取本段代码“CopyIntoNewFile"G:SONY MP4视频流L+MyVariable+.mp4"”保存为文件。通过此脚本可以将视频存储介质中的全部SONY MP4视频流提取出来,并顺序编号。主要脚本如图9所示。

\
 
 
  6 SONY MP4视频文件碎片的重组
 
  视频流起始字节“70 54 0A”前的8个字节为视频流标志如“08 00 46 02 02 40 5A 96”,每个视频的视频流标志不同,可以根据这8个字节来区分视频流的所属。
 

\
 
  将SONY MP4视频文件头、视频流和封装代码依据编号顺序、备份文件头的特征、视频流的标志规则进行匹配,匹配后使用Winhex的文件底层按字节连接的功能“Concatenate”进行字节连接,连接后所有视频碎片复原,文件总大小为159678721字节与备份文件头中记录的文件大小一致,视频文件可以正常播放,如图10所示。
 

  \
 
  7结语
 
  在实际刑事案件中,可使用此技术有针对性地单独提取某段关键视频,快速定位关键视频位置,时效性较高。依照对SONY MP4视频文件底层存储规律的研究,也可以适用于大部分的流媒体视频文件格式的碎片重组,比如SONY MOV、MTS、M2TS、MXF、Canon MP4、Canon MOV、H264、H265、DAV等。
 
  参考文献
 
  [1]天脉聚源(北京)科技有限公司.一种动态数据分别编辑更新方法及系统:中国,CN201510941447.3[P].2017-06-23.
 
  [2]高志鹏,张志伟,孙云峰.识数寻踪Winhex应用与数据恢复开发秘籍[M].北京:人民邮电出版社,2013.
 
  [3]AHMED T,BURIDANT G,MEHAOUA A.Encapsulation and Marking of MPEG4video Over IP Differentiated Services[A].Computers and Communications Proceedings of Sixth IEEE Symposium[C]//2001:346-352.
 
  [4]郑翔,周秉峰,叶志远,等.流文件MP4文件的核心技术[J].计算机应用,2004(5):76-79.
 
  [5]Coding of Audio-Visual Objects:Reference Software.ISO/IEC14496-5Draft Text of Final Draft International Standard[Z].ISO/IEC JTC1/SC29/WG11N2505,1998.
 
关注SCI论文创作发表,寻求SCI论文修改润色、SCI论文代发表等服务支撑,请锁定SCI论文网!
 

文章出自SCI论文网转载请注明出处:https://www.lunwensci.com/jisuanjilunwen/49209.html

发表评论

Sci论文网 - Sci论文发表 - Sci论文修改润色 - Sci论文期刊 - Sci论文代发
Copyright © Sci论文网 版权所有 | SCI论文网手机版 | 鄂ICP备2022005580号-2 | 网站地图xml | 百度地图xml