Software Dumping

From PS3 Developer wiki
Revision as of 05:19, 17 April 2023 by Derf (talk | contribs) (Text replacement - "→‎/TEMPORARY" to "/: http://ps3devwiki.com/files")
Jump to navigation Jump to search

Software dumping

Masking by hypervisor on NAND consoles

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

Memdump

Memdump - lv1 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
FW lv1 lv2 Flash eEID 0.01 FINAL
Logs Notes
<=2.60 CEX/Retail N / A N / A N / A N / A Not available as target version atm
<=2.60 DEX/Debug N / A N / A N / A N / A
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 N / A N / A N / A N / A Not available as target version atm
=>3.60 DEX/Debug N / A N / A N / A N / A
Legenda
  • 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
  • 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
  • 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
  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

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

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

NAND

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

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