.Net真是逆向的時候和寫的時候一樣爽www

ComicDown最以前是一個(腐)妹紙推薦給我的,說是神器;一用,果然是神器;現在我也還用着。能在我電腦上留它這麼久的軟件也算屈指可數了-w-

(好了馬屁拍完了

現在把以前的comicdown翻出來看,發現那時它還用的是.net 2.0的框架,用的是飛信一樣的自帶vm;現在名字改成了千尋漫畫盒,換了.net 4.0,但是代碼還是沒有被混淆(笑

因為隨手用7zip打開了站點包cdp文件,但是無法解壓提示校驗失敗,甚覺気になります,準備干點猥瑣的事情(๑>◡<๑)

於是用.Net Relector,從主程序開始順藤摸瓜,摸啊摸啊……

摸到了這個庫ComicDown.Plugin, 在裏面定義了四個類

就是它了。在CdpLoader類中即為cdp文件的加解密實現。實際上就是交換了7z數據段的某兩段。在這裡不想詳細描述文件的結構,有一點很有趣的是,cdp的文件結構利用了壓縮文件的文件頭,因為解壓縮軟件在確定壓縮文件格式的時候,都會從頭開始掃描標誌位(比如7z的就是0x377a),因此可以在標誌位前添加任意奇怪的東西,解壓時會被當做自解壓頭而被忽略。其實利用這個的很有名的例子就是圖種

這裡是一個cdp解包的python的實現,輸入cdp,輸出是正常的7z文件

cdp中一個clst文件是網站所有漫畫的名稱和url,一個超長的json;另一個dll也是.net的,繼承ComicDown.Core.Interface下的一些類來提供正則匹配網頁內容的接口;都是可以利用的資源ww

逆向.net寫的程序超沒成就感的.(。→‿←。)

順帶一提,最以前的comicdown是這個樣子的

是不是該給xeHentai加個界面了呢( ´◔ ‸◔’)