国语视界

 找回密码
 立即注册
查看: 38702|回复: 91

[蓝光技术] BD-J的Scenarist工具重编译及重签名

  [复制链接]

48

主题

1487

帖子

3105

积分

版主

大洋
21754
阅读权限
140
发表于 17-7-2 03:09 | 显示全部楼层 |阅读模式
本帖最后由 nnezyj 于 17-7-2 03:09 编辑

引言:论坛内的大大们已经发布了有关BD-J菜单修改的非常完备的技术帖!在本帖中,仅是针对大大们的技术帖,提供另一种可操作工具途径,增加大家操作的选择性而已!

大大们的BD-J技术强帖:
wj102901[蓝光技术] 玩转BD-J原盘之java字节码修改
wj102901[蓝光技术] 玩转BD-J原盘之java反编译
wj102901[蓝光技术] 手动给BD-J原盘jar文件签名
wj102901[蓝光技术] BD-J原盘java签名信息中SHA1-Digest值的计算
wj102901[蓝光技术] 让English走开,狮门影业BD-J菜单中文化
wj102901[蓝光技术] BD-J菜单修改
wj102901[蓝光技术] BD-J原盘区码修改教程
zvxc122[蓝光技术] sony字符型蓝光菜单修改简单分析


一、安装 Scenarist BD
  因为本文中需要使用到的主力工具是 Scenarist BD-J 及 Scenarist Safeguard,这两个软件是 Scenarist BD 的三套件中的一员!如果没有请安装Scenarist BD!在安装 Scenarist BD 过程中,会自动将 BD-J 所需要的 JAVA 环境安装完成。【jre 1.5】


二、准备反编译工具
  因为 Scenarist BD-J 是对 java 明文进行操作的,所以需要将要做修改的 jar 内的 .class 文件反编译为 Scenarist BD-J 可读取的 .java 文件。
  在 wj102901[蓝光技术] 玩转BD-J原盘之java反编译 一文中,已经提供了很好的反编译工具介绍及使用。坛友们可以前往阅读,选择适合自己使用的一款!
  作者本文使用的是 JD-GUI,官网地址:http://jd.benow.ca/。需要注意的是,启动 JD-GUI 需要 java 环境。如果点击可以直接启动,则已安装,直接进入下一步!如果出现如图的提示,则点击确定,会自动跳转至 java 下载页面,根据提示下载安装即可。或前往 https://www.java.com/zh_CN/download/manual.jsp 下载所需版本,安装亦可!
  


三、获取需要修改的 .java 文件
  启动 JD-GUI,然后打开需要修改的 jar 文件,找到需要修改的 .class 文件,然后点击 File > Save,将这个反编译后的 .java 文件保存到电脑上。
  


四、首次启动 Scenarist BD-J
1). 设置工作空间
  启动 Scenarist BD-J。第一次启动需要设置“工作空间”,其实就是项目要放置的位置,根据自己需要设定合适的位置。点击“确定”完成设置并启动。本文使用的目录路径为“C:\workspace”。
  
  第一次启动的页面,如图所示,点击右侧的“工作台”按钮,跳转至正常工作页面。
  

2). JRE 设置
  点击菜单栏“窗口 > 首选项”,弹出首选项对话框。
  
  展开“Java > 已安装的 JRE”。确保在“已安装的 JRE”中勾选了“jre 1.5.0_07”。
  
  如果“已安装的 JRE”中没有“jre 1.5.0_07”。点击“添加”按钮,弹出“添加 JRE”对话框。
  
  点击“JRE 主目录”右侧的“浏览”按钮。在弹出的“浏览文件夹”选框中选择到 jre 1.5.0_07 所在的安装目录,点击“确定”。
  
  此时,“添加 JRE”对话框中显示了刚刚选择添加的 jre 的信息,点击“确定”完成添加。
  
  勾选中“jre 1.5.0_07”,点击“确定”按钮关闭首选项。

3). 新建 BD-J 项目
  点击菜单栏“文件 > 新建 > BD-J Project”,弹出新建向导。
  
  在项目名输入项目名称。本文使用“test”作为项目名。
  
  点击“完成”按钮,弹出“打开相关联透视图”对话框,点击“否”,完成新建向导。
  

4). 项目编码设置
  对“包资源管理器”中的 test 项目,右键选择“属性”。弹出项目属性对话框。
  
  点击“信息”,在“文本文件编码”区域,勾选“其他”,选择“UTF-8”,点击“确定”,完成设置。
  

5). 添加 BD-J 库
  对“包资源管理器”中的 test 项目,右键选择“构建路径 > 配置构建路径”。弹出“Java 构建路径”对话框,点击“库”选项卡。展开“BD-J”。
  
  如果没有包含“pbp_1_0.jar” 、“basis.jar” 、“btclasses.zip” 和 “SonicBDJ.jar”等的 jar 库,选中“BD-J”,然后点击“编辑”。
  
  点击“用户库”。
  
  选中“用户库”中的 BD-J,然后点击“添加 JAR”按钮。
  
  在打开的“选择 JAR”浏览窗口中,选择到 Scenarist BD-J 安装目录下的 JARS 文件夹,选中文件夹内所有的文件,然后点击“打开”。
  
  JAR 文件被添加到了 BD-J 库,点击“确定”按钮。
  
  点击“完成”按钮。
  
  展开 BD-J,可以见到刚刚添加的库文件,点击“确定”完成。
  
  可以在 test 项目中,看到新添加的 BD-J 库。
  


五、使用 Scenarist BD-J 修改 .java 文件
1). 添加 .jar 及 .java 文件
  打开 Scenarist BD-J 在电脑上的实际工作目录,本文的工作空间路径 C:\workspace\test
  将第三步中的 jar 文件复制到这个目录内。
  
  将 .java 文件复制到 src 文件夹内。
  
  【注意:根据 .java 的源 class 出处实际情况,在 src 目录内,新建对应文件夹放置  .java 文件。】
  【如本示例中的 SettingsMenu.class,其在 com.nnezyj.app 项下,所以新建目录 com > nnezyj > app,放置这个 .java 文件。】
  【也可以通过使用 rar 等解压缩工具打开 jar 文件,查看这个 class 文件的目录情况!】

2). 添加源 jar 文件到用户库
  在 Scenarist BD-J 中,对 test 项目右键,选择“构建路径 > 添加外部归档”。
  
  在“选择 JAR”浏览窗口中,选择到工作目录下的 jar 文件,点击“打开”。
  
  在“包资源管理器”中的 test 项目中,可以看到新添加的“引用库”文件。
  

3). 刷新项目
  在 Scenarist BD-J 中,对 test 项目右键,选择“刷新”。
  
  此时,之前添加的文件,出现在 test 项目中。
  

4). 对 java 文件进行修改
  展开 src 目录,双击打开想要修改的 java 文件。根据需要对 java 文件进行修改。具体如何修改,参考本文开头提供的大大们的教程帖!
  
  修改完成,点击菜单栏“文件 > 保存”,或着按键盘快捷组合键 Ctrl + S 完成保存。
  可以在项目的工作目录下的 classes 文件夹内,查看到实时编译出来的 .class 文件。
  

评分

参与人数 2大洋 +105 收起 理由
why1812 + 100 大神好厉害!
yunxk + 5 支持支持支持支持支持支持支持支持支持支持.

查看全部评分

48

主题

1487

帖子

3105

积分

版主

大洋
21754
阅读权限
140
 楼主| 发表于 17-7-2 03:09 | 显示全部楼层
本帖最后由 nnezyj 于 17-7-3 23:11 编辑

六、重新打包 jar
1). 解包源 jar 文件
  使用 rar 等解压缩工具解压源 .jar,复制除 META-INF 外的所有文件到工作目录的 classes 文件夹内。 跳过“替换同名文件”,因为这些同名的 .class 文件,其实是刚刚修改好的 java 文件编译生成的 class 文件。

2). 创建 Ant 构建文件
  在 Scenarist BD-J 中,对 test 项目右键,选择“导出”。
  
  在“导出”对话框中,展开“常规”,选择“Ant 构建文件”,点击“下一步”。
  
  勾选上我们制作的项目,本文是“test”,点击“完成”。
  
  

3). 修改 Ant 构建文件
  双击打开刚刚新建的“bulid.xml”文件。找到“<javac …> ”项目。在原内容基础上,添加如下红色标记的内容 。

  以下是原始内容:

        <javac debug="true" debuglevel="${debuglevel}" destdir="classes" source="${source}" target="${target}">
            <src path="src"/>
            <classpath refid="test.classpath"/>
        </javac>

  以下是修改后内容:

        <javac debug="true" debuglevel="${debuglevel}" destdir="classes" source="${source}" target="${target}" encoding="UTF-8" >
            <src path="src"/>
            <classpath refid="test.classpath"/>
        </javac>
        <jar basedir="classes" destfile="BDMV/JAR/00000.jar" includes="**/*.*"/>

  
  修改完毕后,点击菜单栏“文件 > 保存”,或着按键盘快捷组合键 Ctrl + S 完成保存!

4). 执行构建
  对刚刚保存的 bulid.xml 右键,选择“运行方式 > 1 Ant 构建”。
  
  在“控制台”可以看到构建过程信息。“BUILD SUCCESSFUL”构建成功!
  
  构建完毕后,在 Scenarist BD-J 中,对 test 项目右键,选择“刷新”,就可以在 BDMV/JAR 中看到刚刚构建好的 jar 文件。
  
  在工作目录下,查看到刚刚打包好的 jar 文件。
  


七、获取 Organization ID
  Organization ID 在新建密钥的时候,需要输入!
  Organization ID 的获取有三种方式!
  1). 使用 Scenarist BD 打开 BD Reauthor Pro 分解的原盘项目,可以在如图的属性位置,查看到 Organization ID。
  
  2). 在 Scenarist BD-J 中,右键项目,选择“导出”。展开“BD-J > BDJO File”并选中,然后点击“下一步”。“Choose mode”选择“Modify existing BDJO file”,然后点击“Browse”,在浏览窗口中,选择到调用这个 jar 文件的 BDJO 文件,然后点击“下一步”。直到能看到 Oranization ID 的页面。
  
  
  
  3). 使用 UltraEdit 、WinHex 、HxD 等可以进行十六进制编辑的软件,查看位于原盘 CERTIFICATE 文件夹下的 id.bdmv 文件。
  如图所示,00000020h 行的 8、9、a、b 位置的四个十六进制数,就是 Organization ID。
  


八、给 jar 文件签名
【本节内容,更详细的信息资料可参见 [蓝光技术] Scenarist BD-J User Guide 汉化版
  因为我们对 jar 文件进行了改动,因此必须对 jar 文件重新签名。
  由于我们不是生产光盘的碟商,所以我们并不拥有原厂碟商的密钥库,因此我们必须自建密钥库来签名文件!
  在wj102901大大的技术强帖[蓝光技术] 手动给BD-J原盘jar文件签名中,大大已经给出了一种修复签名的方法。
  而在本文这里,只是另提供一种对所有 jar 文件的重新签名的方法而已。
  【注意:这里并不是修复原版签名,而是对所有 jar 文件进行新密钥的重新签名!】

  Note:为了保证 Scenarist Safeguard 的功能正常使用,强烈建议安装 jdk-1_5_0_07-windows-i586-p.exe,然后从 C:\Program Files (x86)\Java\jdk1.5.0_07 中,复制 jre 文件夹到 Scenarist BD-J 以及 Scenarist Saftguard 的安装目录下!

1). 启动 Scenarist Safeguard
  点击 Scenarist BD-J 菜单栏“Security > Scenarist Safeguard”,或者点击 Scenarist BD-J 菜单栏上的锁头图标。
  或者直接到 Scenarist Safeguard 安装目录中双击 ScenaristSafeguardWin.exe 启动。
  

2). 新建 KeyStore 文件
  切换选项至“Create New File”,选择密钥库的保存位置,设置密钥库密码,本文设置密码为“12345”。设置完毕,点击“下一步”。
  
  在 “Choose Security Operation” 页面,选择 “Manage Keys and Certificates”(管理密钥和证书),然后点击“下一步”。
  在 “Manage Keys and Certificates” 页面,选择 “Create a Key Pair”,然后点击“下一步”。
  在 “Key Creation” (密钥创作)页面,输入以下属性:
  
  Key Name 密钥对的描述性名称。
  Key Password 访问密钥对时将使用的密码。当处理证书文件,签名请求,以及签名 BD-J 内容时,需要多次输入该密码。
  Key Password Confirmation 在 Key Password 字段中输入相同的密钥,输入此处以进行确认。
  Common Name 当使用通用名称来指代一组相关联的密钥对时,密钥对的通用名称(common name)可能与 Key Name 不同。
  Email Address 负责 BD-J 内容的个人、部门、或着组织的电子邮件地址。
  Organizational Unit 公司内部负责 BD-J 内容的部门。
  Organization 负责 BD-J 内容的公司。
  City or Locality 公司所在城市或地区。
  State or Province 公司所在州或省。
  Country Code 公司所在国家。
  需要特别注意的是,请选择 “Specify the Organization ID”,在所提供的字段内输入之前获取的原盘 Organization ID。
  这里设置密钥密码为“12345”,点击 Finish 按钮完成密钥对的创建。
  
  

3). 签名 jar 文件
  在 “Choose Security Operation” 页面,选择 “Perform Signing Activities”(执行签名活动)并选取 “Sign Jar files” 选项,然后点击 “下一步”。
  
  在 Sign JAR Files 页面,执行以下操作:
  
  在 Key Name 字段处,从下拉列表中选择要用来签名 JAR 文件的密钥。
  在 Key Password 字段处,输入密钥密码。
  点击 Add JAR 按钮,从浏览窗口选择要添加到“JAR Files”列表中进行签名的 JAR 文件,然后点击“打开”按钮。
  【除了添加修改好的 jar 文件外,还要添加原盘中其他的 jar 文件,因为是使用全新密钥进行签名,所以需要对所有的 jar 文件统一更新签名信息!】
  点击“Finish”按钮,完成 jar 文件的签名。
  

4). 创建 app.discroot.crt 证书文件
  在 “Choose Security Operation” 页面,选择 “Manage Keys and Certificates”,然后点击“下一步”。
  在 “Manage Keys and Certificates” 页面,选择 “Create a Certificate File”,然后点击 Next 按钮。
  
  在 “Certificate File Creation” 页面,执行以下操作:
  
  在 Key Name 字段中,使用下拉列表选择要创建证书文件的密钥。
  点击 Certificate File Name 字段旁的 Browse 按钮,为证书文件选择保存位置,然后点击“打开”按钮。
  如有必须,输入 app.discroot.crt 作为证书的文件名。
  点击 Finish 按钮完成证书文件的创建。
  
  

5). 至此,则完成了 jar 内 class 文件的重编译,所有 jar 文件的重签名,以及新建证书文件的工作。

评分

参与人数 1大洋 +100 收起 理由
wj102901 + 100 还有这种操作!

查看全部评分

回复 支持 反对

使用道具 举报

48

主题

1487

帖子

3105

积分

版主

大洋
21754
阅读权限
140
 楼主| 发表于 17-7-2 03:09 | 显示全部楼层
本帖最后由 nnezyj 于 17-7-3 23:20 编辑

九、替换原盘 jar 文件及证书文件
  将 test 项目工作目录下的 BDMV\JAR 路径内的修改并签名过的 jar 文件,以及重新签名后的原盘其他 jar 文件,复制替换原盘的 BDMV/JAR 文件夹内的 jar 文件。
  将 test 项目工作目录下的 app.discroot.crt 证书文件,复制替换原盘的 CERTIFICATE 文件夹内的同名证书文件。


十、进行测试
  实际上,第九步,就完成了所有工作。增加第十步,是为了提醒大家,进行测试,判断是否出错!


-----------------------------------------------帖子结束,谢谢大家的阅读!-----------------------------------------------


提供“BD-J 的 Scenarist 工具重编译及重签名.chm”文件,供离线查看!
度盘链接: http://pan.baidu.com/s/1c24DSyO 密码:
游客,如果您要查看本帖隐藏内容请回复


评分

参与人数 1大洋 +200 收起 理由
执行官 + 200 这种操作厉害了

查看全部评分

回复 支持 反对

使用道具 举报

13

主题

924

帖子

1316

积分

论坛大神

大洋
20779
阅读权限
130
发表于 17-7-2 04:25 | 显示全部楼层
一口气看完了.原来可以这样导入修改java...深夜发帖辛苦了
回复 支持 反对

使用道具 举报

4

主题

1455

帖子

362

积分

排长

大洋
16146
阅读权限
30
发表于 17-7-2 06:10 | 显示全部楼层
非常感谢整理!
回复 支持 反对

使用道具 举报

8

主题

2万

帖子

8820

积分

旅长

大洋
153594
阅读权限
70

灌水之王热心会员论坛元老

发表于 17-7-2 06:15 | 显示全部楼层
这贴子太厉害了,辛苦
回复 支持 反对

使用道具 举报

2278

主题

5813

帖子

4887

积分

禁止访问

大洋
159135
阅读权限
0

灌水之王热心会员

发表于 17-7-2 13:29 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
经营自己的长处,能使你的人生增值。
回复 支持 反对

使用道具 举报

28

主题

3027

帖子

7105

积分

旅长

大洋
11457
阅读权限
70
发表于 17-7-2 15:43 | 显示全部楼层
很好的帖子!收藏起来认真学习。谢谢!辛苦了!!
回复 支持 反对

使用道具 举报

35

主题

1476

帖子

4448

积分

禁止访问

大洋
52
阅读权限
0
发表于 17-7-2 17:06 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

5

主题

7779

帖子

8894

积分

旅长

大洋
25532
阅读权限
70
QQ
发表于 17-7-2 18:32 | 显示全部楼层
谢谢楼主发布技术交流贴,学习一下!
回复 支持 反对

使用道具 举报

24

主题

1253

帖子

1124

积分

论坛贵宾

大洋
89515
阅读权限
130
发表于 17-7-3 09:47 | 显示全部楼层
厉害了word哥,不过有点儿略复杂啊...
回复 支持 反对

使用道具 举报

1

主题

68

帖子

29

积分

列兵

大洋
149
阅读权限
10
发表于 17-7-9 22:52 | 显示全部楼层
对我来说是非常不错的.
回复 支持 反对

使用道具 举报

2

主题

96

帖子

25

积分

列兵

大洋
404
阅读权限
10
发表于 17-7-28 06:37 | 显示全部楼层
多么美妙的教程。非常感谢老师。
回复 支持 反对

使用道具 举报

1

主题

1790

帖子

5835

积分

团长

大洋
20126
阅读权限
60
发表于 17-8-9 09:37 | 显示全部楼层
技术性太强了,收藏起来慢慢消化
回复 支持 反对

使用道具 举报

3

主题

39

帖子

10

积分

列兵

大洋
132
阅读权限
10
发表于 17-9-6 10:03 | 显示全部楼层
收藏起来认真学习。谢谢!辛苦了!
回复 支持 反对

使用道具 举报

0

主题

2695

帖子

3450

积分

团长

大洋
118633
阅读权限
60
发表于 17-9-16 08:56 | 显示全部楼层
谢谢楼主发布技术交流贴,学习一下!
回复 支持 反对

使用道具 举报

46

主题

271

帖子

82

积分

列兵

大洋
12
阅读权限
10
发表于 17-9-21 17:38 | 显示全部楼层
非常感谢,需要继续学习!
回复 支持 反对

使用道具 举报

2

主题

757

帖子

3645

积分

团长

大洋
7740
阅读权限
60
发表于 17-11-20 17:19 | 显示全部楼层
感谢辛勤劳动
回复 支持 反对

使用道具 举报

883

主题

4024

帖子

1337

积分

营长

大洋
21900
阅读权限
50

灌水之王热心会员

发表于 17-11-30 09:56 | 显示全部楼层
收下了,多谢版主
回复 支持 反对

使用道具 举报

1

主题

59

帖子

17

积分

列兵

大洋
64
阅读权限
10
发表于 18-1-1 17:09 | 显示全部楼层
谢谢分享
回复

使用道具 举报

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

本版积分规则

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