dvd播放软件哪个好(电脑上播放dvd的软件推荐)

No.1

声明

No.2

前言

昨日像那东流水,离我远去不可留,今日乱我心,多烦忧。——新鸳鸯蝴蝶梦

千禧年之后,潮流之水加快了他涌动的步伐,DVD一个伴随着我们的记忆载体却未能在互联网浪潮之中留下过多的痕迹。翻阅因特网,我们只知道他来过,也明白他从未消失,但他却在不知不觉中随着智能手机的兴起慢慢地淡出了我们的生活,和软盘一样虽有残魂但不可多留…

DVD在那边呐喊着,是啊,在欧美地区或除了中国大陆以外或在少部分人的生活中,他还以那传统的方式运作着,续这这最后一丝丝情怀。DVD的历史和Flash一样要也必定要翻篇,他将在21世纪被彻底终结,但在这之前得给DVD的安全研究记上最后一笔。那么这位“古墓派”研究员就由我来当吧,带大家回到那个“蓝天白云”、拨号上网的时代,一起考一考科技的“古”。

在正文开始之前,我想再说一说:技术文章写的是技术,学的是思维,想的是本质,品的是乐趣。他所涉及的技术不一定要超凡也无需脱俗,他不是一种我写出来你看不懂的炫耀,更不是一本就事论事的说明书。这便是写此文章的初衷,我调侃道,这篇文章什么都好也有趣就是技术过了时,但除了技术这个虚拟物本身的其他部分才是我们文章最有价值的地方,包括让您放松以及博君一笑。

No.3

正文

我于2020年极其现代的某一天拿到了一张极其现代的DVD,在那极其现代的电脑上研究起了极其不现代的DVD系统。在使用播放器打开这张光碟后,DVD播放菜单界面中共有三本电影可供选择,其中第一本电影是免费的可直接选中观看,其余两本选择之后则会跳转到如下界面:

dvd播放软件哪个好(电脑上播放dvd的软件推荐)

这是一个名为“Lock & Pay”的锁定系统,用户需通过使用手机或短信付费获取对应电影的解锁密码,然后输入获取得到的密码才能观看。如此“新颖”的系统便让我对他产生了“不可抗拒的”兴趣,在我的记忆中光碟系统最多就是能选择个菜单切换个音轨、字幕,居然还有这种需要输入密码的交互系统设计,我是第一次见。此系统不拿来做研究就真的太可惜了,接着我便产生了如下三个研究观点:

??系统密码不能被暴力破解,而人工尝试输入也几乎是不可能的;

??是否可以绕过此锁定系统,直接读取光碟内影片文件;

??DVD系统老旧而且功能并不复杂,其系统实现原理必定也不复杂,破解起来不会太难。

在否决了暴力破解密码方案之后,第二种方案显然显得十分的诱人以及“廉价”,但DVD光碟内文件这么多,哪一个文件才是我们需要读取的目标文件,并且是否有软件可以成功读取呢?在想到这些问题之后,对此DVD文件格式做一个了解便显得特别有必要了:在属性一栏中我们可以看到此DVD使用的是标准的UDF文件系统格式,这是一种标准的DVD文件系统,此文件系统格式由于和本文无关,我们不具体展开介绍。

接着我们打开DVD光碟的根目录,在根目录下有“AUDIO_TS”和“VIDEO_TS”两个文件夹,“AUDIO_TS”是保留给激光唱片用的故在影片光碟中为空文件夹,而在“VIDEO_TS”中则保存着我们想要的有关于影片的所有的信息。在这个文件夹中包含着三类文件:

??IFO文件:控制着VOB文件的播放,起到了DVD画面控制程序的重要作用

??BUP文件:IFO文件的备份文件,在源文件损坏的情况下自动读取bup文件

??VOB文件:包含了所有的音频、视频等数据内容,是一种MPEG-2数据流

在知道VOB文件储存着所有视频内容并且本质是一个MPEG—2视频文件之后我便尝试在Windows XP上用VLC播放器打开VOB文件,果然文件成功打开了,跳出来了FBI警告电影的部分画面。然而就在我窃喜之时我发现我的屏幕一闪一闪的,是黑色的那种闪,不是星星也不是电火花。没错,DVD系统的开发者并没有这么傻,他们在每个影片内随机大量地插入了长度不等的黑屏画面来防止用户直接观看,并且将完整的电影拆分成了多个视频文件。当然,如果用户使用他们的系统解锁之后观看影片并不会收到影响,因为在IFO文件中早已写入了每个黑屏的具体信息,DVD播放器能够顺利的读取并且跳过这些黑屏片段。

残酷的现实拍打着我,现在只剩下了破解DVD系统的这最后一个方案,而根据前文的介绍,DVD文件的系统文件正是“.IFO”文件。在尝试多款软件之后我发现“IfoEdit”软件最为好用(下载:http://data.hackinn.com/tools/Ifoedit0971.zip) 只有1M大小但功能十分齐全,他的官网依然能够打开,打开之后散发出一种浓浓的世纪初的年代感,软件最新版v0.971永远地停留在了2004,这是一个因时代所生又被时代抛弃的良心软件。

随后我们在IfoEdit软件中打开“VTS_01_0.IFO”文件(别问我为什么是这个,问就是一个个试出来的),在根选择(“E:\VIDEO…”一栏)中的详情部分(截图所示下半部分)我们可以看到当前IFO文件中的所有的菜单,双击对应的菜单将会跳出对应菜单的预览内容,这个功能十分的实用,可以让我们快速确认每个菜单的具体画面详情。

另外,在“VTS_C_ADT”一栏中我们可以看到当前IFO文件中所保存的所有单元的控制表,他告诉播放器每个单元应该从何处开始播放,播放多久,而前面我们提到的视频黑屏画面正可以通过此机制完美的被“处理掉”:

但这些内容并不是最为控制DVD程序的关键部分,在IFO文件中有两类数据类型,分别是:

??浏览数据(Navigation Data):由视频管理器信息(VMGI)、视频节目集信息(VTSI)、程序链信息(PGCI)、演播控制信息(PCI)和数据搜索信息(DSI)等5个部分组成。

??演播数据(Presentation Data):由音频、视频和子图组成。它至少含有一个节目。一个节目至少包含一个程序链PGC。一个节目中的第一个程序链总是Entry PGC。在只有一个程序链的节目中,该程序链就是Entry PGC。

而每一个程序链PGC由程序链信息PGCI和视频对象集VOB中的单元组成。PGCI又由前命令(Pre-command)、后命令(Post-command)及单元(Cell)组成的程序组成,这些单元指向VOBS中的单元,这样就定义了回放这些单元的顺序。至此我们便可明白DVD系统的指令部分便是由PGCI控制的,我们只要尝试读取PGCI的指令具体内容便可以知道完整的DVD系统逻辑流程。知道这些信息我们即可选中IfoEdit软件中“VTSM_PGCI_UT”一栏并展开,可以看到当前IFO文件内的所有菜单对应的PGI内容选项出现在了我们的眼前:

这里我们选择第12号菜单的PGI单击打开,在详情中“PGC Command Table”一栏之后便可以找到此PGC的具体指令内容。在快速观察之后我们发现PGI的命令其实十分简单,稍微有点编程基础便不难猜测出每行代码的具体含义,感觉像是一个C语言和汇编语言的阉割合成品,其指令本身也并不多。其中“Switch”、“FOR”、“While”等逻辑全靠“If”语句来完成,“MOV”指令用于赋值,“NOP”则是空指令,除此之外还有“Add”、“Goto”、“Break”等指令。

在实际分析中可以不用理会“Pre Command”和“Cell”代码段,“Post Command”才是最重要的。上述代码在分析后可转变为如下自然语言:如果值为1跳转到185号菜单的PGC指令,如果值为2跳转到186号菜单的PGC指令…那么“cmp-val”的值为何物呢?其实每个DVD的菜单“按钮”选项都有一个属于自己的值,用户在选择对应选项之后系统便会将其对应的值返回给PGC并触发代码执行操作。

在上图例子中选项1为第一本电影,按了之后“cmp-val”的值变为1,之后执行PGC中的”If…”等指令,同理“cmp-val”的值变为4时便是用户按下了返回选项。在示例中我们选择第二本电影,也就是选项2,根据指令我们将会来到第186号菜单的PGC指令,接着我们在软件中跟进选择对应的PGC:

可以看到第186号菜单的PGC指令直接跳转至了第128号菜单的PGC,我们继续跟进分析:

读者朋友们可以清晰的看到在第128号菜单的PGC中,如下格式的指令被执行了10次:

If GPreg<0> != (cmp-val)<X> then Goto line# XXSet GPreg<4> mov (set-val)<1>Link PGC XXXNOP

而只有当“cmp-val”的值为4和5时,程序才跳转至第124号菜单的PGC,其余值都转向第126号菜单的PGC。此时我们便可以大胆地猜测当用户在第一位密码的菜单界面中按下选项4和选项5时程序才会跳转至下一个正确的菜单,而其他的选项则将会前往“没有前途的”假菜单(虽然功能一样,但不论之后作何操作最终会跳转至用户输入密码界面)。虽然不知道为何有选项4和选项5两个正确选项值(2个正确的第一位密码),但可以肯定这便是控制访问密码的关键所在。那么第一种想到的绕过系统密码的最简单方法边是将所有跳转至第128号菜单(假页面)的PGC的指令全部修改为跳转至第126号菜单的PGC即可,也就是将“7E”修改为“7C”:

然而在本示例中,光碟是不可写的状态(只读),并且也并无多余的储存空间供我们修改文件,于是及时我们修改了IFO文件也无法顺利保存至DVD光碟中成功运行。虽然说可以直接制作光盘ISO镜像,然后再修改系统文件重新生成镜像再用虚拟光驱挂在,但这个方案实在是太费时间了,还是直接读取密码才是上策。

Lock & Pay系统通过使用不同密码按钮选择之后跳转至不同的的菜单实现了类似于密码访问的效果,虽然为实现此技术需要为每个选项创建大量的菜单页面,但在古老切功能并不复杂的DVD播放系统中,也算是一种非常明智的解决方案了。进过三次的跳转分析我们分别拿到了第一、二、三、四位的访问的选项值,分别为:“4、5”,“4,10”,“3,9”,“1,6”,也就是可以产生16种不同的密码组合。

那么每个选项对应的具体密码是多少呢?若不解决这个问题则我们前面的一切便白分析了,幸运的是在我尝试了多次之后我发现选项值与具体密码的对应关系是永远保持不变的,恒为如下顺序的对应关系:

也就是说此电影的访问密码可以是第一位为“4、5”,第二位为“4、0”,第三位为“3、9”,第四位为“1、6”的任意密码组合,接着我向对应服务商发送了索取访问密码的短信,可以看到所获取得到的密码与我们分析出来的密码一致,“5096”是16种密码中的其中一种组合(短信居然收费四点五欧,哭晕):

至此整套DVD系统的“密码验证”流程便分析完了,我们顺利破解了这套简单并有年代感的系统拿到了接入密码。我于2020年6月29日向Lock & Pay系统的生产厂商发送了完整的测试报告:

我在报告中给出如下三种漏洞修复方案:

1、使用变幻的选项与密码关系来代替一成不变的选项与密码对应关系,加大攻击者分析难度;

2、使用DVD光盘加密技术,对其数据进行加密保存及读取;

3、使用更为高级的程序来代替老旧的DVD播放系统程序。

这篇简短的文章到这里便结束了,仔细回想一下,其实漏洞的机理并不难,读者朋友们可能觉得此文章不值得一提。但正如前文所说,技术以及漏洞本身并不是我写这篇文章的初衷,在未知漏洞世界的探索才是此文章最有价值的部分。对任何一个漏洞的探索以及研究理应如此,并不是所有的研究都是有参考资料能给你的,也不是每一个技术都有前人为你铺路,你要做的便是开启一段新的认知,带着对这份职业的热爱从0到1完成一次质的飞跃。此外年代的碰撞和我们对这套系统的分析本身不也很有趣吗?或许我们会在哪一天的CTF题目中再次看见DVD系统熟悉的身影…

招聘启事

简历投递至 strategy@dbappsecurity.com.cn

设计师(实习生)

————————

【职位描述】负责设计公司日常宣传图片、软文等与设计相关工作,负责产品品牌设计。【职位要求】1、从事平面设计相关工作1年以上,熟悉印刷工艺;具有敏锐的观察力及审美能力,及优异的创意设计能力;有 VI 设计、广告设计、画册设计等专长;2、有良好的美术功底,审美能力和创意,色彩感强;精通photoshop/illustrator/coreldrew/等设计制作软件;3、有品牌传播、产品设计或新媒体视觉工作经历;【关于岗位的其他信息】企业名称:杭州安恒信息技术股份有限公司办公地点:杭州市滨江区安恒大厦19楼学历要求:本科及以上工作年限:1年及以上,条件优秀者可放宽

简历投递至 strategy@dbappsecurity.com.cn

安全招聘————————公司:安恒信息岗位:Web安全 安全研究员部门:战略支援部薪资:13-30K工作年限:1年 工作地点:杭州(总部)、广州、成都、上海、北京

工作环境:一座大厦,健身场所,医师,帅哥,美女,高级食堂…【岗位职责】1.定期面向部门、全公司技术分享;2.前沿攻防技术研究、跟踪国内外安全领域的安全动态、漏洞披露并落地沉淀;3.负责完成部门渗透测试、红蓝对抗业务;4.负责自动化平台建设5.负责针对常见WAF产品规则进行测试并落地bypass方案【岗位要求】1.至少1年安全领域工作经验;2.熟悉HTTP协议相关技术3.拥有大型产品、CMS、厂商漏洞挖掘案例;4.熟练掌握php、java、asp.net代码审计基础(一种或多种)5.精通Web Fuzz模糊测试漏洞挖掘技术6.精通OWASP TOP 10安全漏洞原理并熟悉漏洞利用方法7.有过独立分析漏洞的经验,熟悉各种Web调试技巧8.熟悉常见编程语言中的至少一种(Asp.net、Python、php、java)【加分项】1.具备良好的英语文档阅读能力;2.曾参加过技术沙龙担任嘉宾进行技术分享;3.具有CISSP、CISA、CSSLP、ISO27001、ITIL、PMP、COBIT、Security 、CISP、OSCP等安全相关资质者;4.具有大型SRC漏洞提交经验、获得年度表彰、大型CTF夺得名次者;5.开发过安全相关的开源项目;6.具备良好的人际沟通、协调能力、分析和解决问题的能力者优先;7.个人技术博客;8.在优质社区投稿过文章;

岗位:安全红队武器自动化工程师薪资:13-30K工作年限:2年 工作地点:杭州(总部)【岗位职责】1.负责红蓝对抗中的武器化落地与研究;2.平台化建设;3.安全研究落地。【岗位要求】1.熟练使用Python、java、c/c 等至少一门语言作为主要开发语言;2.熟练使用Django、flask 等常用web开发框架、以及熟练使用mysql、mongoDB、redis等数据存储方案;3:熟悉域安全以及内网横向渗透、常见web等漏洞原理;4.对安全技术有浓厚的兴趣及热情,有主观研究和学习的动力;5.具备正向价值观、良好的团队协作能力和较强的问题解决能力,善于沟通、乐于分享。【加分项】1.有高并发tcp服务、分布式等相关经验者优先;2.在github上有开源安全产品优先;3:有过安全开发经验、独自分析过相关开源安全工具、以及参与开发过相关后渗透框架等优先;4.在freebuf、安全客、先知等安全平台分享过相关技术文章优先;5.具备良好的英语文档阅读能力。

简历投递至 strategy@dbappsecurity.com.cn

岗位:红队武器化Golang开发工程师薪资:13-30K工作年限:2年 工作地点:杭州(总部)【岗位职责】1.负责红蓝对抗中的武器化落地与研究;2.平台化建设;3.安全研究落地。【岗位要求】1.掌握C/C /Java/Go/Python/JavaScript等至少一门语言作为主要开发语言;2.熟练使用Gin、Beego、Echo等常用web开发框架、熟悉MySQL、Redis、MongoDB等主流数据库结构的设计,有独立部署调优经验;3.了解docker,能进行简单的项目部署;3.熟悉常见web漏洞原理,并能写出对应的利用工具;4.熟悉TCP/IP协议的基本运作原理;5.对安全技术与开发技术有浓厚的兴趣及热情,有主观研究和学习的动力,具备正向价值观、良好的团队协作能力和较强的问题解决能力,善于沟通、乐于分享。【加分项】1.有高并发tcp服务、分布式、消息队列等相关经验者优先;2.在github上有开源安全产品优先;3:有过安全开发经验、独自分析过相关开源安全工具、以及参与开发过相关后渗透框架等优先;4.在freebuf、安全客、先知等安全平台分享过相关技术文章优先;5.具备良好的英语文档阅读能力。简历投递至 strategy@dbappsecurity.com.cn

专注渗透测试技术

全球最新网络攻击技术

END

发表评论

登录后才能评论