作者cassine (Savannah)
看板Modchip
标题[PS3 ] PSJB的program code dump(中文不知道怎麽翻)
时间Sun Aug 29 10:20:05 2010
http://www.ps3hax.net/2010/08/ps-jailbreak-code/
底下二进位码贴了也没用,我也不是compiler,有兴趣的人可以自己去买IC烧烧
看。
So what does this mean? Disane has summed it up below:
This is the disassembled PPC code more like the shell code that is
being injected.
The best way would be to use the lv2 dump and this to
figure out how the stack overflow exploit works in the USB buffer of
the PS3 after that it can be reproduced on any FW. On both slim and
fat PS3s.
The JIG ID is probably passed to trigger some code pathern which
the Configuration Descriptor overflows and injects the shell code
after that the code gets executed. The shell code patches lv2 to run
fselfs and all kinds of interesting flags which I haven't noticed yet
******
跟我之前猜得差不多,就是利用和缓冲区溢位非常类似的堆叠溢位攻击方式将攻
击程式码注入目标位置然後盖掉program pointer 的值,让他指到自己要执行程
式的开头,就成功了。
只能说这是 C++语言的原罪,然後$ONY被婊了,因为这套程式语言对於记忆体的
管理太糟糕,缓冲区溢位、堆叠溢位这种鸟事已经是见怪不怪了。任天堂是自己
笨写那种两光的数位签名验证被抓到漏洞,这是$ONY可以说是相当无辜的说。
按照上面的说法, USB buffer 这个东西到底是在硬体层还是软体层将成为关键
,如果是在硬体层的话$ONY只能在新机种上修改硬体设计才能反制了,不然单靠
更新韧体可能力有未逮。
--
○ ____ _ _ _ _ ____ _ _ ____ _____ ____
。 ★(_ _)( \( )( \/ )( ___)( \( )(_ _)( _ )( _ \
o _)(_ ) ( \ / )__) ) ( )( )(_)( ) / ● ‧
(____)(_)\_) \/ (____)(_)\_) (__) (_____)(_)\_) ★
o
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.126.61.141
1F:→ Splash5:..... 这跟与语言有关系吗 -.-||... 08/29 11:13
2F:→ Splash5:单纯就是程式设计师没有注意到这个部份吧 -.-|| 08/29 11:16
3F:→ Splash5:那个code只是挂一个usb监听器 把运作过程记录下来 08/29 11:24
4F:→ Splash5:并不是pic的program code.. 08/29 11:24
5F:推 tsairay:我只想说,driver是知道接上去的device是不是个usb hub的 08/29 11:40
6F:→ tsairay:driver也会知道送过来的packet是不是JIG送的 08/29 11:41
7F:→ cassine:楼上,你不知道在Windows里面驱动程式就是认VID的吗? 08/29 11:43
8F:→ cassine:所以只要骗过去就会被当成合法的了 08/29 11:43
9F:→ cassine:还有一楼,C++语言有记忆体管理缺陷是天生的,所以程式设 08/29 11:44
10F:→ cassine:计师才需要更加留意,但这个问题实在抓不胜抓 08/29 11:45
11F:推 tsairay:你的文章就写packet的PID必须是JIG才能执行特殊的pattern 08/29 11:47
12F:→ tsairay:如果PID是JIG的packet通通drop掉,那这pattern还能植入? 08/29 11:49
13F:→ KevinR:记忆体管理跟程式语言啥关系, 本来就是 programmer 份内该 08/29 12:09
14F:→ KevinR:做的事. JAVA C# 之流是因为 VM 做了记忆体管理. 08/29 12:17
15F:→ danny8376:JVM也是c++写的 本身还是有漏洞 c++源自於asm 08/29 13:00
16F:→ danny8376:这样来说 不是硬体本身就该做好记忆体管理了= = 08/29 13:01
17F:推 mc29014226:轻松 温馨 改机板 08/29 19:01
18F:→ visor:.....跟语言有什麽关系...不懂别装懂... 08/29 19:11
19F:推 k24612:上一篇不能推..来这推 08/30 07:17
20F:→ k24612:正义魔人 在这不要装清高 自以为圣人 ... 08/30 07:18
21F:推 tsairay:这篇在讲技术,不要到处推害这篇也被锁好吗 08/30 09:35
22F:推 p587868:推 k24612:正义魔人 在这不要装清高 自以为圣人 ... XDDDD 08/30 11:19
23F:→ tinganhsu:不过说实话虽然C的记忆体配置很有问题 他还是最主流的 08/30 21:35
24F:→ tinganhsu:code阿 我们写写程式programmer自己知道哪里有溢位可能 08/30 21:36
25F:→ tinganhsu:就补 不过说实话主机这种除了是一群人的project外 08/30 21:37
26F:→ tinganhsu:最主要还是为了效能其实也写了不少组合 08/30 21:38
27F:→ tinganhsu:大家的子函数递来递去 其实难保不会遗忘一些溢位的地方 08/30 21:39
28F:→ tinganhsu:记忆体管理或许是设计者的事 不过限界警告C真的做的很糟 08/30 21:40
29F:→ KevinR:...楼上, 你确定你知道你自己在说啥?? 08/30 23:10
30F:推 tsairay:离题离很大... 08/30 23:33