denworld 发表于 2009-4-24 15:51

【DNR教程】《LBA保护的修复(二) LBA保护文件中LBA信息的分析与

本帖最后由 lgzylp 于 2010-12-26 19:39 编辑

前一讲,介绍了如何找到 LBA保护文件,参见【DNR教程】《LBA保护的修复(一) LBA保护文件的确定》

这一讲,将介绍如何分析LBA保护文件中的LBA信息,以及如何导出这些信息。

我们用winhex来打开上次找到的HEADER.BIN。


开始2个字节9C 0C 表示被保护的文件的个数。倒过来,0x0C9C=3228,这3228个文件是受保护的,
也就是说,你rip完了之后,这3228个文件的 首地址(LBA) 和 大小(Size),都必须与HEADER.BIN里面保存的 LBA和Size相一致。

我已经用红,黄,绿,蓝,紫 五种颜色标注出来了(只标注了5个文件,其它可以同理)。经过验证发现,
每种颜色代表一个文件的信息,每种颜色又分5小块,每块4个字节,其中 第三块和第四块(已框),是我们需要的信息,
其他1,2,5三个部分是文件名的位置,文件标识符等,与修复无关,我们不感兴趣。

原理明白了,开始编程


通过以上的程序,LBA和Size就被导出来了,导出后的文件如下图


LBA.TXT每一行有三个部分组成。

LBA|Size|FILEXXXXXX

好了,到这里,第二讲已经讲完了。

补充一下完整的思路:
(1)导出HEADER.BIN里面保存的 3228个 LBA 和 Size到一个文本文件 LBA.TXT(已完成!)
(2)导出原版ISO里面所有文件的 LBA 和 Size 到一个文本文件 oldISO.TXT
(3)导出rip后的iso里面所有文件的 LBA 和 Size 到一个文本文件 newISO.TXT
(4)通过比较 LBA.TXT 和 oldISO.TXT 得到 受保护的文件的名字
(5)到newISO.TXT查找 受保护的文件的名字,并获取他们新的 LBA 和 新Size
(6)用新的LBA和新Size替换LBA.TXT里的 旧LBA和 旧Size,另存为LBA.NEW
(7)把LBA.NEW写回 HEADER.BIN
(8)利用VCDROMX把新HEADER.BIN写入rip后的iso,替换旧HEADER.BIN

以上就是整个LBA修复的过程
当然,如果人工一步步去做的话,太恐怖了。必然有捷径。
其中(2)---(6)步将在下一讲 【DNR教程】《LBA保护的修复(三) LBA的比较与更新》
(7)--(8)步 将在第四讲 【DNR教程】《LBA保护的修复(四) 新LBA的回写与新LBA保护文件的注入》



================================================================================
本系列一共四讲
【DNR教程】《LBA保护的修复(一) LBA保护文件的确定》
【DNR教程】《LBA保护的修复(二) LBA保护文件中LBA信息的分析与导出》
【DNR教程】《LBA保护的修复(三) LBA的比较与更新》
【DNR教程】《LBA保护的修复(四) 新LBA的回写与新LBA保护文件的注入》

dq198973 发表于 2009-4-24 15:59

skiinder 发表于 2009-4-24 16:44

强大,每帖必顶!

donghui2199 发表于 2009-4-24 17:54

编程高手

bsgb666 发表于 2009-4-24 22:51

牛X教程系列贴

yoyomat 发表于 2009-4-24 22:58

技术贴二支持

zack_m33 发表于 2009-4-28 17:30

教程好!!学习中

QQMILK54188 发表于 2009-7-16 12:39

有些复杂,研究中。

archykk 发表于 2009-10-13 23:25

完全弄不懂啊....

还有我等我 发表于 2009-11-21 16:57

a a a a aa a a a   看不懂啊

mhp265 发表于 2010-6-25 11:59

看不懂啊~~~~~~~~~~~~~

pzx333 发表于 2010-7-30 09:55

内存地址查找与替换工具?
貌似以前玩奇迹sf 用外挂替换端口时用过。。。。
都忘记怎么用了 哈哈
页: [1]
查看完整版本: 【DNR教程】《LBA保护的修复(二) LBA保护文件中LBA信息的分析与