<progress id="yueoz"><code id="yueoz"><xmp id="yueoz">

      1. 吾愛破解 - LCG - LSG |安卓破解|病毒分析|www.13ee.cn

         找回密碼
         注冊[Register]

        QQ登錄

        只需一步,快速開始

        搜索
        查看: 2654|回復: 18
        上一主題 下一主題

        [調試逆向] 如何讀取CD音頻光盤,大刀闊斧砍WinHex、gBurner、VLC

          [復制鏈接]
        跳轉到指定樓層
        樓主
        JuncoJet 發表于 2020-6-3 11:47 回帖獎勵
        本帖最后由 JuncoJet 于 2020-6-4 15:48 編輯

        前言
        之前寫了一款鏡像轉儲工具,FastImageDump。在對軟件測試的時候發現CD音頻光盤在轉儲時有點問題。
        然后作者各項調試,發現大多數的API在音頻光盤上都無法操作(GetDiskFreeSpaceEx、ReadFile等)
        經過對2款鏡像工具(WinHex、gBurner),1款播放器(VLC)的逆向,基本了解了CD光盤的讀取方法。三款軟件的實現方式都不一樣,
        但是機智的作者們貌似都破解出來了讀取的方法。

        逆向分析
        眾所周知,一般對設備的操作涉及到以下API們
        CreateFileA/W、ReadFile、WriteFile、DeviceIoControl等
        對軟件一頓猛下斷,神奇的發現三款軟件都沒有使用ReadFile來讀取,可見CD音頻光盤果然不支持這種讀取方式。
        WinHex


        如上圖可以看到CtrlCode是0x4D014,百度得到 IOCTL_SCSI_PASS_THROUGH_DIRECT,此方法可以直接發送SCSI指令給驅動器設備。
        功能不言而喻,可以實現的功能多多,甚至可以穿透還原和影子系統篡改硬盤數據。
        采用的操作指令是 0xBE VOLUME SET (IN) READ CD(比較早期CD光驅時代的指令),雖然百度了老半天查到這個指令,
        但卻有沒詳細的參數用法,但看上去參數比較簡單。
        參數就是1扇區2扇區這樣的,后面我們直接用他數據來進行測試。
        gBurner





        可以看到他的操作相對來說比較復雜,但后續都是通過 0x52 XDREAD (10)READ TRACK INFORMATION,來進行讀取的。
        VLC




        可以看到VLC采用的是CtrlCode 0x2403E(未百度到)IOCTL_CDROM_RAW_READ來操作,而非SCSI指令。

        對參數分析,得到參數應該是bit值。沒有強制的扇區概念,該操作方式相對來說比較自由。

        技術重現
        采用WinHex的方式來讀寫扇區

        采用VLC的方式來讀寫扇區

        對照WinHex,可以看到讀取OK!




        總結
        至于為啥無法讀取音頻光盤?個人猜測應該是系統為了防拷貝而屏蔽了上層API的操作(可能存在某種公約)。
        同樣的,VirtualBox 也無法映射音頻光盤到虛擬機上。對此表示很無奈,本想著對WMP嘗試下逆向的。
        已對WMP和PotPlayer逆向,均采用 IOCTL_CDROM_RAW_READ 方式來讀取音頻光盤數據。
        而WinHex的作者貌似對磁盤比較了解,所以采用卷集的方式來讀取,可能年紀比較大,對CD光驅時代的指令比較了解,
        采用了READ CD指令,gBurner作者對DVD光驅比較了解所以采用 READ TRACK INFORMATION。
        可以看到各軟件為此都用出了自己的看家本事,百花齊放百家爭鳴,咩哈哈。逆向真是個好東西。

        源碼.zip

        1.77 KB, 下載次數: 11, 下載積分: 吾愛幣 -1 CB

        免費評分

        參與人數 6威望 +2 吾愛幣 +107 熱心值 +5 收起 理由
        shi128862 + 1 + 1 我很贊同!
        sssjcccz01a + 1 + 1 謝謝@Thanks!
        Hmily + 2 + 100 + 1 感謝發布原創作品,吾愛破解論壇因你更精彩!
        5omggx + 1 + 1 期待FastImageDump支持生成優化合并重復文件的iso
        jiangweiforever + 1 謝謝@Thanks!
        610100 + 3 + 1 感謝發布原創作品,吾愛破解論壇因你更精彩!

        查看全部評分

        發帖前要善用論壇搜索功能,那里可能會有你要找的答案或者已經有人發布過相同內容了,請勿重復發帖。

        推薦
        thankit 發表于 2020-6-22 11:36
        上次raid數據有問題,就是人家遠程用winhex幫我搞定的,太厲害了,他操作的時候要只兩分鐘,我付費500元。
        推薦
        傷心的筆 發表于 2020-6-21 16:30
        音頻CD畢竟是基于軌道的,沒有文件系統,Windows為了方便給音頻CD和VCD構造了虛擬的文件系統而已
        沙發
        gblgbl 發表于 2020-6-3 12:36
        3#
        mitimake 發表于 2020-6-3 13:07
        學習學習
        4#
        ShinRan 發表于 2020-6-3 13:29
        學習一下
        5#
        會成功的人 發表于 2020-6-3 13:58
        技術帖子,學習了。
        6#
        flac 發表于 2020-6-3 15:14
        感覺分享,可以試試NtReadFile
        7#
         樓主| JuncoJet 發表于 2020-6-3 15:18 |樓主
        flac 發表于 2020-6-3 15:14
        感覺分享,可以試試NtReadFile

        肯定讀不了
        8#
        netspirit 發表于 2020-6-3 15:35
        cd不是啥秘密了吧 樓主可以試試sacd哈哈哈哈哈哈
        9#
        mengxiang12388 發表于 2020-6-3 16:07
        挺深奧呀,表示看不太懂
        10#
        duanlai 發表于 2020-6-3 20:19
        謝謝分享,看不太懂
        您需要登錄后才可以回帖 登錄 | 注冊[Register]

        本版積分規則 警告:本版塊禁止灌水或回復與主題無關內容,違者重罰!

        快速回復 收藏帖子 返回列表 搜索

        RSS訂閱|小黑屋|聯系我們|吾愛破解 - LCG - LSG ( 京ICP備16042023號 | 京公網安備 11010502030087號 )

        GMT+8, 2020-6-28 21:02

        Powered by Discuz!

        Copyright © 2001-2020, Tencent Cloud.

        快速回復 返回頂部 返回列表
        快三开奖结果