- 积分
- 566
- 阅读权限
- 40
- 主题
- 9
- 帖子
- 510
- 注册时间
- 17-11-8
- 在线时间
- 475 小时
- UID
- 6179
- 精华
- 4
连长
- 大洋
- 1395
- 阅读权限
- 40
|
本帖最后由 jack_son 于 19-7-6 23:29 编辑
引言:
引言:感谢世界哪有真情lu、nnezyj大佬提供技术支持!!
有关蓝光区码破解,坛中WJ和nn大神已经发布过相关帖子,请参考
nnezyj版主:[蓝光技术] HDMV【NO BD-J】原盘区码修改
wj102901管理员:[蓝光技术] BD-J原盘区码修改教程
本次发布一例BDJ区码锁死A区,涉及的基础知识:
nnezyj版主:[蓝光技术] BD-J的Scenarist工具重编译及重签名
wj102901管理员:[蓝光技术] 玩转BD-J原盘之java字节码修改
本次修改原盘:阿波罗11号 Apollo 11 2019 BluRay 1080p AVC DTS-HD MA5.1-MTeam
在某站发现一DIY制作者发布了阿波罗11号DIY中字版,不过该作者在发布信息中注明了:
原盘来源:MTEAM
字幕来源:CHD字幕组
以上感谢
字幕说明
① 对白有4种样式以适配多种规格黑边
② 原盘锁A区.暂无法破解.非A区播放机请谨慎下载
一、查看锁区情况
使用BDEdit打开原盘
发现这部片无任何HDMV指令代码,为纯JAVA。
打开BDMV目录下的JAR文件夹,05000.jar、05001.jar和05000子文件夹,而05000文件夹下面则只有三个文件,一个xml和两个png文件
而xml中内容为菜单相关部分,无区码锁区内容。这就印证了原DIY者无法破解区码的事实。
二、查找区码锁区
使用jd-gui打开05000.jar,查找“RegisterAccess”的文本,逐个打开,在l.class中发现了端倪。
如图红色方框内,上面有“getInstance().getPSR(20) & 0xFF;”,PSR(20)用于存放区码,使用黄鸭子破解过区码的应该知道。点开红框内的BASELINE.f,发现"static final int[] f = { 1 };",这正是我们要找的结果,定义了 一个常量数组,里面只有一个元素“1”,锁A区就是这个常量引起的,难怪无法破解。
补充说明
PSR(20)为区码存放位置:
通过蓝光专门的API : org.bluray.system.RegisterAccess 类用于 PSR\GPR 寄存器的读取和设置
三、JAVA字节码修改
解压05000.jar,使用字节码修改工具打开BASELINE.class,
更改BASELINE中有关f的常量定义。
更改完后,将BASELINE.class重新打包进05000.jar,使用jd-gui打开

发现static final int[] f = { 1 , 2 , 4,};
已经更改完成。
四、重签名,测试
将05000.jar、05001.jra参照wj的帖子重新签名,然后测试,发现此盘有A区变成了全区。
至于jar文件重签名,本帖不再赘述。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
评分
-
查看全部评分
|