3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 论坛

注册 登录

QQ登录

只需一步,快速开始

查看: 7770|回复: 12
打印 上一主题 下一主题

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

[复制链接]

27

主题

1387

帖子

1万

积分

3DM-DNR工作室

Rank: 12Rank: 12Rank: 12

贡献度
2137
金元
14879
积分
10036
精华
0
注册时间
2004-1-26
跳转到指定楼层
主题
发表于 2009-4-24 15:51 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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保护文件的注入》
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2026-3-19 07:58 , Processed in 0.028191 second(s), 20 queries , Memcached On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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