PS Jailbreak 原理分析

  • H
    HyperIris
    本帖最后由 HyperIris 于 2010-9-15 16:26 编辑

    本文我删掉了,没必要再发这种帖子了,S1不需要。

    想看的去我space看。
  • y
    ylsquall
    技术贴
  • M
    Macs
    牛逼大猫
  • 耗子高达
    金山民科机器猫
  • ふん雑魚め
    学习
  • l
    leafboat
    每个字我都看的懂,但是放在一起就搞不清楚了系列。
    -------献给楼主技术帝
  • M
    Miwiki
    技术贴
    不懂纯顶
  • n
    nimabi
    PS Jailbreak通过精心构造的特殊USB描述符,使PS3处理这些描述符的时候Heap overflow,导致代码注入进而获取了GameOS的访问权限。


    前面一堆简介不需要,这一句就够了......
  • s
    secondii
    前排

    老师 我有问题:
    1、
    sony能通过固件升级对开机后的这个动作做出限制么?

    2、sony能通过固件升级对usb设备的描述符长度做出限制么?
  • H
    HyperIris
    这个我不是很确定我写得是不是正确
  • e
    eternia
    牛B,看起来很兴奋
  • f
    fcmorrowind
    我对ps3不熟悉,ps3的OS是用c系语言写的么
  • H
    HyperIris
    从整个破解过程来看,有几个吐糟点:

    最关键的就是,PS3系统分配的内存数量小于实际收到的,这个很容易改掉,只要分配足够多或者复制的时候忽略超长的就可以了。如果这块是c写的,只需要改几行代码而已。

    其次就是USB Hub,完全可以在引导的时候屏蔽掉对Hub设备类(Hub在USB里面是单独一类)的支持,这样破解就失效了。
  • J
    JR史密斯
    原来是溢出- -
  • c
    chenke
    我关心的是SONY今后封堵的原理是啥,JB可以持续更新来对抗吗?
  • f
    fcmorrowind
    分配内存时检测长度是C系码农的基本素养,估计不是c系写的
  • H
    HyperIris
    nintendo 还用 strcmp 来 compare signature
  • 0
    02dPublicAcc
    看了原文,这是弄反向工程弄出来的,还没搞清楚到底是怎么干掉内存边界tag的。为了堵口子,索尼彻底屏蔽hub功能也是有可能的。
  • s
    summerist.l
    也就是说JB的攻击核心就是两个:一个是PS3启动时的HUB USB设备侦测,另一个是内存的HEAP OVERFLOW?

    那么JB这玩意确实太脆弱了
  • s
    shinobu
    就调用LV1_Panic宕机
    这是何其SB!何其SB啊!
  • s
    shinobu
    就调用LV1_Panic宕机
    这是何其SB!何其SB啊!
  • s
    shinobu
    就调用LV1_Panic宕机
    这是何其SB!何其SB啊!
  • s
    shinobu
    本帖最后由 shinobu 于 2010-9-9 15:27 编辑

    艹,人家才不是在反复抽插服务器呢
  • 绝霜
    MARK,空了看
  • 眼魔
    问两个个问题
    1.PID/VID其实是包含在descriptor里边的吧?

    2.descriptor的传输都是走端点0的吧?
  • H
    HyperIris
  • f
    fcmorrowind
    怎么说呢,我没破解过游戏,不知道这是任地狱啥时候写的的代码,软件工程发展到现在边界条件不检测的码农基本上都找不到工作了……
  • H
    HyperIris
    wii
  • l
    lostchild
    本来想说技术贴mark 后来发现这个我基本这辈子不打算弄懂了 算了
  • d
    dennisyy
    基本看懂了,不过不是做操作系统的,上层这些东西不精通
    我们设计的CPU支持misalign访问的,效率低就是了,要load两次
  • f
    fcmorrowind
    那就只能说任地狱这种大企业也有劣质码农了,或者就是以前那一批确实很牛逼但是工程素养不够的老码农
  • r
    refo2613
    醒醒,老任一直就只是一个玩具生产商

    硬件:一直是拼凑的,挑那些有意思的供应商拼凑成满足其想法、设计理念的硬件

    软件:孩子怎么喜欢怎么整,现在多了家庭主妇怎么喜欢怎么整

    核心向游戏:外包
  • p
    pear_83
    顶大猫,如此说来ps3的加密其实很容易破解,就是发现方法的道路比较曲折
  • H
    HyperIris
    画一条线和知道应该在什么地方画线是两码事
  • H
    HyperIris
    薛圆圆《USB应用开发技术大全》P29-P30:USB设备的连接,

    先GetDescriptor(获取缺省控制通道最大数据包长度),再SetAddress,然后又一次GetDescriptor(获取完整描述符),所以咱俩都没说全。
  • a
    asdfg
    卧槽,我突然发现底层码农是一种如此强大的职业……

    然后作为C#和SQL多年的开发者,我对自己依然能看懂这些代码表示一定的自豪…………
  • o
    oz01
    opengl码农路过
  • 蕾丝蕾丝
    这个没有关系,太晚set_address仅仅是导致总线不能在同一时刻处理两个新插入设备的配置

    get_desc(dev)肯定要两次的
  • H
    HyperIris
    根据我手边的资料,Hub设备确实是用端点1来通知port变化的,然后Host收到这个通知后才查询具体是什么变化