找回密码
 立即注册

QQ登录

只需一步,快速开始

教程经验总索引TVMW5/小日本5 索引【视频转换】小日本4/TE4XP 索引【视频转换】TAW4 / TDA3 索引【DVD打包软件】
Nero 索引DVD-Lab 索引【DVD打包软件】编解码器 索引 【必读】固顶帖011号
查看: 10768|回复: 29

[经验] BD-J的Scenarist工具重编译及重签名

[复制链接]

27

威望

8118

金钱

47

贡献

高级会员

积分
8603
主题
29
回帖
97
注册时间
2015-1-21
最后登录
2024-3-24
发表于 2017-7-2 03:14:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 nnezyj 于 2017-7-3 23:23 编辑

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

-----------------------------------------------正文开始!-----------------------------------------------


引言:国语视界论坛内的大神们,发布了有关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 文件。
  

                               
登录/注册后可看大图

评分

参与人数 1威望 +6 贡献 +3 收起 理由
IsaacZ + 6 + 3 谢谢分享经验!

查看全部评分

27

威望

8118

金钱

47

贡献

高级会员

积分
8603
主题
29
回帖
97
注册时间
2015-1-21
最后登录
2024-3-24
 楼主| 发表于 2017-7-2 03:14:20 | 显示全部楼层
本帖最后由 nnezyj 于 2017-7-3 23:25 编辑

六、重新打包 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 文件的重签名,以及新建证书文件的工作。
回复

使用道具 举报

27

威望

8118

金钱

47

贡献

高级会员

积分
8603
主题
29
回帖
97
注册时间
2015-1-21
最后登录
2024-3-24
 楼主| 发表于 2017-7-2 03:14:46 | 显示全部楼层
九、替换原盘 jar 文件及证书文件
  将 test 项目工作目录下的 BDMV\JAR 路径内的修改并签名过的 jar 文件,以及重新签名后的原盘其他 jar 文件,复制替换原盘的 BDMV/JAR 文件夹内的 jar 文件。
  将 test 项目工作目录下的 app.discroot.crt 证书文件,复制替换原盘的 CERTIFICATE 文件夹内的同名证书文件。


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


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

使用道具 举报

36

威望

1万

金钱

125

贡献

高级会员

积分
12275
主题
68
回帖
1367
注册时间
2009-12-11
最后登录
2024-4-11
发表于 2017-7-2 16:55:36 | 显示全部楼层
老师真厉害!
在老师的指导下,IG菜单的制作基本上学会了,现在在学习IG菜单的2种修改方法,还没有学会。等IG菜单的修改学会了,再好好学学老师的教程,修改BD-J菜单。老师辛苦了!!
回复

使用道具 举报

0

威望

67

金钱

0

贡献

新手上路

积分
69
主题
0
回帖
14
注册时间
2017-8-29
最后登录
2020-6-27
发表于 2017-8-29 09:10:47 | 显示全部楼层
thank you
回复

使用道具 举报

0

威望

96

金钱

0

贡献

新手上路

积分
98
主题
0
回帖
17
注册时间
2010-4-25
最后登录
2017-10-12
发表于 2017-10-12 13:36:31 | 显示全部楼层
不错,支持一下!
回复

使用道具 举报

0

威望

1740

金钱

0

贡献

中级会员

积分
1800
主题
0
回帖
27
注册时间
2017-9-13
最后登录
2024-4-16
发表于 2017-11-24 15:39:10 | 显示全部楼层
不错,支持一下!
回复

使用道具 举报

5

威望

4483

金钱

2

贡献

中级会员

积分
4581
主题
0
回帖
234
注册时间
2018-10-26
最后登录
2023-5-31
发表于 2018-12-31 12:51:54 | 显示全部楼层
感谢分享经验
回复

使用道具 举报

0

威望

4686

金钱

6

贡献

中级会员

积分
4814
主题
1
回帖
79
注册时间
2015-7-25
最后登录
2024-4-16
发表于 2018-12-31 20:24:23 | 显示全部楼层
多谢楼主分享精品资源!!!
回复

使用道具 举报

0

威望

99

金钱

0

贡献

新手上路

积分
102
主题
2
回帖
22
注册时间
2019-3-26
最后登录
2020-8-23
发表于 2019-5-2 15:00:48 | 显示全部楼层
谢谢分享!!!找了好久。。。
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|点拨论坛

GMT+8, 2024-4-16 16:52 , Processed in 0.259318 second(s), 8 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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