Editing Talk:Dumping Bootldr

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 45: Line 45:
===The bootldr exploit===
===The bootldr exploit===


If you see the log ([[#Logs]]) you'll see a lot of data exchanging between the spu and the syscon. graf had described it on his bible so it was known... but the log also said that the data was read twice once to read the header and once to read header + data.
If you see the log you'll see a lot of data exchanging between the spu and the syscon. graf had described it on his bible so it was known... but the log also said that the data was read twice once to read the header and once to read header + data.


On the header was a variable length. So I decided to change the len between both reads.... didn't work until i corrected also the chksum... and then BINGO! unexpected behavior... a possible exploit was found.
On the header was a variable length. So I decided to change the len between both reads.... didn't work until i corrected also the chksum... and then BINGO! unexpected behavior... a possible exploit was found.
Line 108: Line 108:
== Provided dumps of the bootldr for further analysis ==
== Provided dumps of the bootldr for further analysis ==
* BV 2.7.0, BID 3517,38879, BDate 2009-03-24_23:51:55 : https://dl.dropbox.com/u/35197530/dump.bin
* BV 2.7.0, BID 3517,38879, BDate 2009-03-24_23:51:55 : https://dl.dropbox.com/u/35197530/dump.bin
SHA-1: 865729E2E2917134128B397D1237568572F6D2FB
http://mir.cr/M21DPLBK
* https://mega.co.nz/#!Ygt0kSiA!0LoR9-_6BJMT_6rHDW5EPrVpUhEgv6dezfXSnNd9CKo
* https://mega.co.nz/#!05d0CAZR!jU-XmR2CDr-3bg9XDDcKJWB2_CC8xc71nKufnoWiylA
* https://mega.co.nz/#!48MixZJZ!rv2bfHd1CxNi5JcvgdmQGAjm0g1maBDeK7RIqsjyHfs


== Porting to NAND ==
== Porting to NAND ==
Problems / needed changes:
Problems / needed changes:
* NAND offsets differ from NOR : http://www.ps3devwiki.com/wiki/Flash
* NAND offsets differ from NOR : http://www.ps3devwiki.com/wiki/Flash
* NAND / FLASH controller doesn't have MMIO regions : www.psdevwiki.com/ps3/Talk:Hypervisor_Reverse_Engineering#MMIO_.2F_Memorymap
* NAND / FLASH controller doesn't have MMIO regions : http://www.ps3devwiki.com/wiki/Talk:Hypervisor_Reverse_Engineering#MMIO_.2F_Memorymap
 
=== Solution 1 ===
 
1. comment this:<br>
prepareSPEPage();<br>
 
2. create an empty 16 MB file for your flash dump, then get your bootldr dump and place it to this empty file at offset 0xFC0000<br>


== Other References ==
== Other References ==
* http://nwert.wordpress.com/2012/11/20/the-exploit/
* http://nwert.wordpress.com/2012/11/20/the-exploit/
== Logs ==
[[http://pastebin.com/LLWSbAQT 0x2F130 bootldr log]]<br>
[[User_talk:JuanNadie|another log]]
== Analysing bootloader Dumps in Ida Pro ==
1. Load Dump into ida pro
2. load this script via file >>> load script https://github.com/techbliss/Bootloader-PS3, to get the functions visible.
Note: you need to change the function analyze_area to AnalyzeArea if you're using the recent released IDA 6.5. in case you're still using 6.1, keep the script as it is. presumably this script also works on metldr dumps as well, since it's also an spu binary dump.
It is faster to press "C" button at 0x400 offset because the offset is fixed.
--[[User:Flatz|Flatz]] ([[User talk:Flatz|talk]]) 03:06, 16 August 2014 (EDT)
Please note that all contributions to PS3 Developer wiki are considered to be released under the GNU Free Documentation License 1.2 (see PS3 Developer wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following hCaptcha:

Cancel Editing help (opens in new window)