.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加个界面了呢( ´◔ ‸◔’)