Editing Hypervisor Reverse Engineering

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 1: Line 1:
<span style="background:red; color:#ffffff;">Warning, this page is way too long and is voted to be split into seperate sections</span>
<span style="background:red; color:#ffffff;">Warning, this page way too long and voted to be split into seperate sections</span>


----
----
Line 217: Line 217:
0xE - int kill(int pid, int signal_type)  
0xE - int kill(int pid, int signal_type)  


0xF - int brk(void *addr)  
0xF - int brk(void *)  


0x10 - int socket(int af, int type, int protocol) (supports only address family 0x1F, type 0x0 and protocol 0x0)  
0x10 - int socket(int af, int type, int protocol) (supports only address family 0x1F, type 0x0 and protocol 0x0)  
Line 247: Line 247:
0x1D - unmap_pages(...) (used for free)  
0x1D - unmap_pages(...) (used for free)  


0x1E - int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout)
0x1E - select(...)


0x1F - getcwd(...)
0x1F - getcwd(...)
Line 253: Line 253:
0x20 - Not used
0x20 - Not used


0x21 - unsigned int alarm(unsigned int seconds)
0x21 - alarm(...)


0x22 - int ioctl(int fd, unsigned __int64 request, ...)
0x22 - ioctl(...)


0x23 - pme_memalign(...)
0x23 - pme_memalign(...)
Line 269: Line 269:
=== System call numbers  ===
=== System call numbers  ===


0x10000 - allocate_memory(LPAR id, size, log2 of page size,&nbsp;?,&nbsp;?) / construct_memory_segment
0x10000 - allocate_memory(LPAR id, size, log2 of page size,&nbsp;?,&nbsp;?)  


0x10001 - query_logical_partition_address_region_info  
0x10001 - query_logical_partition_address_region_info  
Line 363: Line 363:
0x10044 - disable_spe_execution  
0x10044 - disable_spe_execution  


0x10045 - read_spu_puint_mb(unsigned long spu_id, unsigned long msg)
0x10045 - set_spe_interrupt_mask


0x10046 - read_spe_problem_state_register(spe id, register offset, value) / read_spu_problem_state_area_register
0x10046 - read_spe_problem_state_register(spe id, register offset, value)  


0x10047 - write_spe_problem_state_register(spe id, register offset, value) / write_spu_problem_state_area_register
0x10047 - write_spe_problem_state_register(spe id, register offset, value)  
 
0x1004A - install_revoke_list


0x1004B - disable_spe_loading  
0x1004B - disable_spe_loading  
Line 840: Line 838:
=== vtable  ===
=== vtable  ===


0x003569F8 (3.15)
0x003569F8 (3.15)  


== IOIF device file objects  ==
== IOIF device file objects  ==
Line 3,602: Line 3,600:
==== Loading appldr  ====
==== Loading appldr  ====


*64 bit memory address of '''appldr''' is written into 32 bit SPU register '''SPU_In_Mbox'''  
*64 bit memory address of '''isoldr''' is written into 32 bit SPU register '''SPU_In_Mbox'''  
*'''metldr''' is loaded
*'''metldr''' is loaded


Line 3,989: Line 3,987:
offset 0x90 - LPAR image path  
offset 0x90 - LPAR image path  


offset 0x1C0 - LPAR ability (8 bytes)
offset 0x1C0 - LPAR ability (8 bytes)  


=== Types of System Manager  ===
=== Types of System Manager  ===
Line 9,493: Line 9,491:
| 0x35|| 0x22 || Calculate AES_H 1 || ||  
| 0x35|| 0x22 || Calculate AES_H 1 || ||  
* Calculates AES_H hash of the data stored in XDR buffer.
* Calculates AES_H hash of the data stored in XDR buffer.
|-
| || 0x21 ||  || 2x 4 Bytes ||
Signed CSS CheckCRL
|-
| || 0x56||  || ||
Get Random Seed
|-
| || 0x32||  || ||
Unknown
|-
|-
| 0x36|| 0x24 || Calculate AES_H 2 || ||  
| 0x36|| 0x24 || Calculate AES_H 2 || ||  
Line 10,550: Line 10,539:
Decrypted P-Block (and EID4) contains region settings (see below)
Decrypted P-Block (and EID4) contains region settings (see below)


In decrypted P-Block(bytes 0x30 and 0x32) and in EID4(first byte) these bytes match [[Product Code]]:
In decrypted P-Block(bytes 0x30 and 0x32) and in EID4(first byte) these bytes match [[Target ID]]:
{| class="wikitable sortable" style="font-size:small; border:2px ridge #999999;"
{| class="wikitable sortable" style="font-size:small; border:2px ridge #999999;"
|-
|-
! Hex !! bitflag !! [[Product Code]] !! Console Type !! Remarks
! Hex !! bitflag !! [[Target ID]] !! Console Type !! Remarks
|-
|-
| 0xFF || '''11111111''' || {{TID80}} || No BD playback on that [[Product Code]]
| || || {{TID80}} ||  
|-
|-
| 0xFF || '''11111111''' || {{TID81}} || No BD playback on that [[Product Code]]
| 0xFF || '''11111111''' || {{TID81}} || No BD playback on that [[Target ID]]
|-
|-
| 0xFF || '''11111111''' || {{TID82}} || No BD playback on that [[Product Code]]
| 0xFF || '''11111111''' || {{TID82}} || No BD playback on that [[Target ID]]
|-
|-
| 0x01 || 0000000'''1''' || {{TID83}} || bit 0 (Region 0: Japan?)
| 0x01 || 0000000'''1''' || {{TID83}} || bit 0 (Region 0: Japan?)
Line 10,575: Line 10,564:
| 0x08 || 0000'''1'''000 || {{TID89}} || bit 3 (Region 4: Latin America and Australia)
| 0x08 || 0000'''1'''000 || {{TID89}} || bit 3 (Region 4: Latin America and Australia)
|-
|-
| 0x20 || 00'''1'''00000 || {{TID8A}} || bit 5 (Region 5: Russia, Asia (non-southeast), and Africa)
| || || {{TID8A}} ||  
|-
|-
| 0x10 || 000'''1'''0000 || {{TID8B}} || bit 4 (Region 3: Southeastern Asia)
| || || {{TID8B}} ||  
|-
|-
| 0x20 || 00'''1'''00000 || {{TID8C}} || bit 5 (Region 5: Russia, Asia (non-southeast), and Africa)
| 0x20 || 00'''1'''00000 || {{TID8C}} || bit 5 (Region 5: Russia, Asia (non-southeast), and Africa)
|-
|-
| 0x40 || 0'''1'''000000 || {{TID8D}} || bit 6? (Region 6: China)
| 0x40 || 0'''1'''000000 || {{TID8D}} || bit 6? (Region 6: China)
|-
|-
| 0x10 || 000'''1'''0000 || {{TID8E}} || bit 4  (Region 3: Southeastern Asia)  
| 0x10 || 000'''1'''0000 || {{TID8E}} || bit 4  (Region 3: Southeastern Asia)  
Line 10,587: Line 10,576:
| 0x08 || 0000'''1'''000 || {{TID8F}} || bit 3 (Region 4: Latin America and Australia)  
| 0x08 || 0000'''1'''000 || {{TID8F}} || bit 3 (Region 4: Latin America and Australia)  
|-
|-
| 0xFF || '''11111111''' || {{TIDA0}} || No BD playback on that [[Product Code]]
| 0xFF || '''11111111''' || {{TIDA0}} || No BD playback on that [[Target ID]]
|-
|-
|}
|}
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)