Software Dumping

From PS3 Developer wiki
Jump to: navigation, search

Software dumping[edit]

Masking by hypervisor on NAND consoles[edit]

software dumps: dump size = 239 MB (251,396,096 bytes)
bootldr not at 0x000000 on NAND :

00000000   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
00000010   00 00 00 00 0F AC E0 FF  00 00 00 00 DE AD BE EF   .....¬à ÿ....Þ­¾ï

reason:

addi    %r12, %r4, 0x200 # r4 = start sector

256MB NAND consoles have a hidden section of size 0x40000 (0x200 * 512 byte sector = 0x40000) hidden by the hv. The hv hides it at address 0x2786A0 (3.41) / 0x2786E8 (3.55) / 0x27B1B4 (4.21-4.46)

To be able to dump that section, it needs to be unmasked, using poke

Original code : 0x39840200f8010090
Change to : 0x39840000f8010090

Note: Memdump 0.1 does unmasking onthefly when needed.

Dump flash from GameOS[edit]

Memdump[edit]

Memdump - main screen

Memdump - about screen

Memdump - help screen

Memdump - lv1 screen

Memdump - lv2 screen

PS3 memory dumping tool that can dump lv1, lv2, NAND/NOR Flash, and eEID from GameOS (e.g. stored named with the detected firmware version as : lv1_dump_35500.bin [16 MB], lv2_dump_35500.bin [8MB], flash_stor_35500.bin [16MB if NOR] and flash_eEID_35500.bin [64 KB] respectively, plus a memdump_35500.log file, if tried it on a 3.55 compatible version).

Download:

Applicable firmwares[edit]
FW lv1 lv2 Flash eEID 0.01 FINAL
Logs Notes
<=2.60 CEX/Retail NA NA NA NA Not available as target version atm
<=2.60 DEX/Debug NA NA NA NA
2.70 CEX/Retail Yes Yes Yes Yes
2.70 DEX/Debug Yes Yes Yes Yes
2.76 CEX/Retail Yes Yes Yes Yes
2.76 DEX/Debug Yes Yes Yes Yes
2.80 CEX/Retail Yes Yes Yes Yes
2.80 DEX/Debug Yes Yes Yes Yes
3.00 CEX/Retail Yes Yes Yes Yes
3.00 DEX/Debug Yes Yes Yes Yes
3.01 CEX/Retail Yes Yes Yes Yes
3.01 DEX/Debug Yes Yes Yes Yes
3.10 CEX/Retail Yes Yes Yes Yes
3.10 DEX/Debug Yes Yes Yes Yes
3.15 CEX/Retail Yes Yes Yes Yes
3.15 DEX/Debug Yes Yes Yes Yes
3.20 DEX/Debug Yes Yes Yes Yes
3.21 CEX/Retail Yes Yes Yes Yes
3.21 DEX/Debug Yes Yes Yes Yes
3.30 CEX/Retail Yes Yes Yes Yes
3.30 DEX/Debug Yes Yes Yes Yes
3.40 CEX/Retail Yes Yes Yes Yes
3.41 CEX/Retail Yes Yes Yes Yes
3.41 DEX/Debug Yes Yes Yes Yes
3.42 CEX/Retail Yes Yes Yes Yes
3.50 CEX/Retail Yes Yes Yes Yes
3.50 DEX/Debug Yes Yes Yes Yes
3.55 CEX/Retail Yes Yes Yes Yes
3.55 DEX/Debug Yes Yes Yes Yes
3.56 CEX/Retail Pending Pending Pending Pending
3.56 DEX/Debug Pending Pending Pending Pending
=>3.60 CEX/Retail NA NA NA NA Not available as target version atm
=>3.60 DEX/Debug NA NA NA NA
Legenda[edit]
  • NA : Not Available as target version (mostly because of missing lv1:mmap114 or lv2:peek/poke patches)
  • Yes: Fully supported
  • No: Not supported
  • Partial: Some functions work, others might not be complete
  • Pending: No reports yet (help out by sending in your logs and dumps in a ZIP/RAR/7z!)
Known bugs[edit]
  • buttons do not come back up after pressing -> to be fixed in v0.02 (button handler thread)
  • exit app gives rightscreen black triangle -> to be fixed in v0.02 (cleanup RSX buffer)
  • when free space is 0 bytes when dumping, application will halt -> to be fixed in v0.02 (check freespace first)
Current limitations[edit]
  • Needs mmap114+peek/poke as minimal patches
  • Can be buggy with strange spoofs
  • No reports yet on Kiosk/SEX & Tool/DECR models
  • NAND only : second bootldr at 0xF000000 - 0xF03FFFF (The last 256KB of flash) will be missing. Just copypaste the first bootldr 0x0000000 - 0x003FFFF (The first 256KB of flash), they are the same. Also, a console boots fine with only the first one.
NAND patch method[edit]
  1. Extract the dump ("EXTRACT a NOR dump or an interleaved and unscrambled NAND dump." with FlowRebuilder v.4.2.3.0 or higher - it will warn for missing bootldr)
  2. Open dump with HxD
  3. Select Block (CTRL-E), start offset 0, end offset 3FFFF, Copy (CTRL-C) that block
  4. New File (CTRL-N), and paste insert (CTRL-V)
  5. Save (CTRL-S) as "bootldr"
  6. Go back to your incomplete dump to the last offset (use scrollbar all the way down and left click on the last "FF" byte below the 0F header)
  7. Insert bytes (under "Edit" menu option) bytecount: 1040000, hex value 00 (full dump ends at 0xFFFFFFF , incomplete dump ends at 0xEFBFFFF, we thus need to add 0x1040000)
  8. Goto offset (CTRL-G) F000000
  9. Open previously saved "bootldr", select all (CTRL-A), Copy (CTRL-C)
  10. Back to the incomplete dump on offset 0xF000000 paste write (CTRL-B) the bootldr in it
  11. Check filesize is still ending at 0xFFFFFFF (use scrollbar all the way down - on the left it will note 0FFFFFF0 below "Offset (h).)"
  12. Save file (CTRL-S) as "fixed.bin" (or whatever you find easy to notice as a fixed/cleaned-up dump)
  13. That file "fixed.bin" will be 262144 KBytes (256 MBytes or 268.435.456 bytes) large (0FFFFFFF in hex). It will not give warnings with FlowRebuilder v.4.2.3.0 or higher like nonfixed one you started out with at step 1.

If thus complete and valid, it can be used with hardware flasher or software methods. If you need to debrick, downgrade etc. you will need to prepatch it or convert TargetID as needed.

MultiMAN[edit]

mmOS->Select any file->Open in HEX viewer->[SELECT]->[START]->DUMP LV2(NO)->DUMP LV1(NO)->DUMP FLASH(YES)  :

  • navigate to mmOS (start + select)
  • open the file browser, and click O on any file, then select open with hex editor
  • Press select to open LV2 view, then press start to dump. You will be asked 3 questions
  1. Dump LV1? select no (or yes, if you want it)
  2. Dump LV2? select no (or yes, if you want it)
  3. Dump flash? select YES.
    If you do it 4 times, you'll be left with 4 .norbin files on your usb drive

Note: MultiMAN NAND dumps are 239MB, see above section about fixing.

Glevand' dump_flash.pkg[edit]

dump_flash.pkg / USB Flash Dump

  • NAND: Make sure USB stick is FAT32 with enough free space (256MB per dump) - bootldr missing because of masking
  • NOR: Make sure USB stick is FAT32 with enough free space (16MB per dump)

Dumping flash from Linux[edit]

NAND[edit]

dd if=/dev/ps3flash of=NAND.BIN bs=1024

or

dd if=/dev/ps3vflasha of=NAND.BIN bs=1024

(needs unmasking, otherwise bootldr missing)

NOR[edit]

dd if=/dev/ps3nflasha of=NOR.BIN bs=1024