- 积分
 - 566
 
- 阅读权限
 - 40
 
- 主题
 - 9
 
- 帖子
 - 511
 
- 注册时间
 - 17-11-8
 
- 在线时间
 - 476 小时
 
- UID
 - 6179
 
- 精华
 - 4
 
 
 
 
 
连长 
   - 大洋
 - 1401 
 
    - 阅读权限
 - 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
 
 
评分
- 
查看全部评分
 
 
 
 
 
 |