学生黑客联盟-官网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 640|回复: 11

如何读取CD音频光盘,大刀阔斧砍WinHex、gBurner、VLC

[复制链接]

该用户从未签到

2

主题

2

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2021-7-22 14:54:16 | 显示全部楼层 |阅读模式
前言
之前写了一款镜像转储工具,FastImageDump。在对软件测试的时候发现CD音频光盘在转储时有点问题。
然后作者各项调试,发现大多数的API在音频光盘上都无法操作(GetDiskFreeSpaceEx、ReadFile等)
经过对2款镜像工具(WinHex、gBurner),1款播放器(VLC)的逆向,基本了解了CD光盘的读取方法。三款软件的实现方式都不一样,
但是机智的作者们貌似都破解出来了读取的方法。

逆向分析
众所周知,一般对设备的操作涉及到以下API们
CreateFileA/W、ReadFile、WriteFile、DeviceIoControl等
对软件一顿猛下断,神奇的发现三款软件都没有使用ReadFile来读取,可见CD音频光盘果然不支持这种读取方式。
WinHex
网络新闻动向交流-前言之前写了一款镜像转储工具,FastImageDump。在对软件测试的时候发现CD音频光盘在转储时有点问题。然(1)
网络新闻动向交流-前言之前写了一款镜像转储工具,FastImageDump。在对软件测试的时候发现CD音频光盘在转储时有点问题。然(2)
如上图可以看到CtrlCode是0x4D014,百度得到 IOCTL_SCSI_PASS_THROUGH_DIRECT,此方法可以直接发送SCSI指令给驱动器设备。
功能不言而喻,可以实现的功能多多,甚至可以穿透还原和影子系统篡改硬盘数据。
采用的操作指令是 0xBE <strike>VOLUME SET (IN)</strike> READ CD(比较早期CD光驱时代的指令),虽然百度了老半天查到这个指令,
但却有没详细的参数用法,但看上去参数比较简单。
参数就是1扇区2扇区这样的,后面我们直接用他数据来进行测试。
gBurner
网络新闻动向交流-前言之前写了一款镜像转储工具,FastImageDump。在对软件测试的时候发现CD音频光盘在转储时有点问题。然(3)
网络新闻动向交流-前言之前写了一款镜像转储工具,FastImageDump。在对软件测试的时候发现CD音频光盘在转储时有点问题。然(4)
网络新闻动向交流-前言之前写了一款镜像转储工具,FastImageDump。在对软件测试的时候发现CD音频光盘在转储时有点问题。然(5)
网络新闻动向交流-前言之前写了一款镜像转储工具,FastImageDump。在对软件测试的时候发现CD音频光盘在转储时有点问题。然(6)
网络新闻动向交流-前言之前写了一款镜像转储工具,FastImageDump。在对软件测试的时候发现CD音频光盘在转储时有点问题。然(7)
可以看到他的操作相对来说比较复杂,但后续都是通过 0x52 <strike>XDREAD (10)</strike>READ TRACK INFORMATION,来进行读取的。
VLC
网络新闻动向交流-前言之前写了一款镜像转储工具,FastImageDump。在对软件测试的时候发现CD音频光盘在转储时有点问题。然(8)
网络新闻动向交流-前言之前写了一款镜像转储工具,FastImageDump。在对软件测试的时候发现CD音频光盘在转储时有点问题。然(9)
网络新闻动向交流-前言之前写了一款镜像转储工具,FastImageDump。在对软件测试的时候发现CD音频光盘在转储时有点问题。然(10)
网络新闻动向交流-前言之前写了一款镜像转储工具,FastImageDump。在对软件测试的时候发现CD音频光盘在转储时有点问题。然(11)
可以看到VLC采用的是CtrlCode 0x2403E<strike>(未百度到)</strike>IOCTL_CDROM_RAW_READ来操作,而非SCSI指令。
网络新闻动向交流-前言之前写了一款镜像转储工具,FastImageDump。在对软件测试的时候发现CD音频光盘在转储时有点问题。然(12)
对参数分析,得到参数应该是bit值。没有强制的扇区概念,该操作方式相对来说比较自由。

技术重现
采用WinHex的方式来读写扇区
网络新闻动向交流-前言之前写了一款镜像转储工具,FastImageDump。在对软件测试的时候发现CD音频光盘在转储时有点问题。然(13)
采用VLC的方式来读写扇区
网络新闻动向交流-前言之前写了一款镜像转储工具,FastImageDump。在对软件测试的时候发现CD音频光盘在转储时有点问题。然(14)
对照WinHex,可以看到读取OK!
网络新闻动向交流-前言之前写了一款镜像转储工具,FastImageDump。在对软件测试的时候发现CD音频光盘在转储时有点问题。然(15)
网络新闻动向交流-前言之前写了一款镜像转储工具,FastImageDump。在对软件测试的时候发现CD音频光盘在转储时有点问题。然(16)
网络新闻动向交流-前言之前写了一款镜像转储工具,FastImageDump。在对软件测试的时候发现CD音频光盘在转储时有点问题。然(17)

总结
至于为啥无法读取音频光盘?个人猜测应该是系统为了防拷贝而屏蔽了上层API的操作(可能存在某种公约)。
同样的,VirtualBox 也无法映射音频光盘到虚拟机上。对此表示很无奈,<strike>本想着对WMP尝试下逆向的。</strike>
已对WMP和PotPlayer逆向,均采用 IOCTL_CDROM_RAW_READ 方式来读取音频光盘数据。
而WinHex的作者<strike>貌似对磁盘比较了解,所以采用卷集的方式来读取,</strike>可能年纪比较大,对CD光驱时代的指令比较了解,
采用了READ CD指令,gBurner作者对DVD光驱比较了解所以采用 READ TRACK INFORMATION。
可以看到各软件为此都用出了自己的看家本事,百花齐放百家争鸣,咩哈哈。逆向真是个好东西。

该用户从未签到

1

主题

1624

帖子

1045

积分

金牌会员

Rank: 6Rank: 6

积分
1045
发表于 2021-7-22 14:54:50 | 显示全部楼层
winhex、r-studio、diskgen都可以重建raid
回复

使用道具 举报

该用户从未签到

3

主题

1674

帖子

893

积分

高级会员

Rank: 4

积分
893
发表于 2021-7-22 14:55:00 | 显示全部楼层
上次raid数据有问题,就是人家远程用winhex帮我搞定的,太厉害了,他操作的时候要只两分钟,我付费500元。
回复

使用道具 举报

该用户从未签到

1

主题

1624

帖子

1045

积分

金牌会员

Rank: 6Rank: 6

积分
1045
发表于 2021-7-22 14:55:34 | 显示全部楼层
精彩的技术帖子,学习了。
回复

使用道具 举报

该用户从未签到

0

主题

1726

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2021-7-22 14:55:39 | 显示全部楼层
学习学习
回复

使用道具 举报

该用户从未签到

3

主题

1674

帖子

893

积分

高级会员

Rank: 4

积分
893
发表于 2021-7-22 14:56:26 | 显示全部楼层
学习一下
回复

使用道具 举报

该用户从未签到

0

主题

1726

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2021-7-22 14:57:11 | 显示全部楼层
技术帖子,学习了。
回复

使用道具 举报

该用户从未签到

3

主题

1674

帖子

893

积分

高级会员

Rank: 4

积分
893
发表于 2021-7-22 14:57:45 | 显示全部楼层
感觉分享,可以试试NtReadFile
回复

使用道具 举报

该用户从未签到

0

主题

1726

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2021-7-22 14:57:59 | 显示全部楼层
肯定读不了
回复

使用道具 举报

该用户从未签到

0

主题

1726

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2021-7-22 14:58:33 | 显示全部楼层
cd不是啥秘密了吧 楼主可以试试sacd哈哈哈哈哈哈
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭Powered by ©科大讯飞语音云

QQ|Archiver|手机版|小黑屋|TBC ( 鄂ICP备19004742号(鄂ICP备19004742号-2) )|网站地图|鄂ICP备19004742号(鄂ICP备19004742号-2) 联系站长

GMT+8, 2021-9-26 02:36 , Processed in 3.859375 second(s), 70 queries .

Powered by TBC! X3.4

© 2001-2020 TBC.. 技术支持 by 复仇者黑客组织

快速回复 返回顶部 返回列表