Editing CCAPI
Jump to navigation
Jump to search
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: | ||
ControlConsoleAPI is an API for PS3 and PC similar to TMAPI on DEX console, But this one "CCAPI" works for CEX and DEX. | ControlConsoleAPI is an API for PS3 and PC similar to TMAPI on DEX console, But this one "CCAPI" works for CEX and DEX. | ||
Line 51: | Line 50: | ||
Important:<br /> | Important:<br /> | ||
If some games refuse to work, just don't use plugins, delete plugins folder from /dev_usb000<br /> | If some games refuse to work, just don't use plugins, delete plugins folder from /dev_usb000<br /> | ||
**2.50 | **2.50 | ||
Line 99: | Line 56: | ||
*http://www.mediafire.com/download/fz4leo4iov9ut4z/CcApi_package_2.60_Rev2.rar | *http://www.mediafire.com/download/fz4leo4iov9ut4z/CcApi_package_2.60_Rev2.rar | ||
= CCAPI 2.60 = | = CCAPI 2.60 = | ||
Line 243: | Line 191: | ||
| 16 || {{cellcolors|#88ff88}} Notify || int32_t Notify(int32_t texture, const wchar_t *text) | | 16 || {{cellcolors|#88ff88}} Notify || int32_t Notify(int32_t texture, const wchar_t *text) | ||
|} | |} | ||
{{Reverse engineering}}<noinclude>[[Category:Main]]</noinclude> | |||
= CCAPI 2.70 - 2.80 rev5 = | = CCAPI 2.70 - 2.80 rev5 = | ||
''' Location of ccapi.sprx ''' | |||
ccapi.sprx is renamed to sys_audio.sprx and is located to | ccapi.sprx is renamed to sys_audio.sprx and is located to /dev_flash/sys/internal/sys_audio.sprx | ||
'''Ports used by CCAPI''' | |||
Source | |||
https//pastebin.com/RqnvPZ0j | https//pastebin.com/RqnvPZ0j | ||
Port:80 | |||
Communication: HTTP | |||
Port:1979 PS3 | |||
Communication: TCP/UDP | |||
CCAPI uses a unique PPC instruction that it implemented it. I named it "ccsc" as it works similarly to "sc" the syscall instruction in PPC. Here is the HEX value that represents "ccsc". | CCAPI uses a unique PPC instruction that it implemented it. I named it "ccsc" as it works similarly to "sc" the syscall instruction in PPC. Here is the HEX value that represents "ccsc". | ||
<code>"ccsc" = 0xEF455314</code> | <code>"ccsc" = 0xEF455314</code> | ||
<code>#define CcxCall uint64_t __attribute__((naked))</code> | <code>#define CcxCall uint64_t __attribute__((naked))</code> | ||
<code>static CcxCall CCAPIWriteProcessMemory(int command_id,sys_pid_t pid, void* destination, const void* source, size_t size) | <code>static CcxCall CCAPIWriteProcessMemory(int command_id,sys_pid_t pid, void* destination, const void* source, size_t size) { __asm__(/*"li %r3, 0x123;" R3 is your command_id write */"sc;" /*You must replace this 4 byte instruction by 0xEF455314*/"blr;"); } </code> | ||
{ | |||
__asm__( | |||
/*"li %r3, 0x123;" R3 is your command_id write */ | |||
"sc;" /*You must replace this 4 byte instruction by 0xEF455314*/ | |||
"blr;" | |||
); | |||
} </code> | |||
R3 or the first argument will be the value of the Command ID that will be processed by a kernel in a function implemented by CCAPI. | |||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
|- | |- | ||
! | ! Command ID !! Description !! Arguments | ||
|- | |- | ||
| | | 0x241 || {{cellcolors|#88ff88}} Enable CCAPI Syscalls || int32_t unk() | ||
|- | |- | ||
| | | 0x785 || {{cellcolors|#88ff88}} CCAPIReadProcessMemory || int32_t CCAPIReadProcessMemory(int command_id, sys_pid_t pid, void* destination, void* source, size_t size) | ||
|- | |- | ||
| 0x123 || {{cellcolors|#88ff88}} | | 0x123 || {{cellcolors|#88ff88}} CCAPIWriteProcessMemory || int32_t CCAPIWriteProcessMemory(int command_id,sys_pid_t pid, void* destination, const void* source, size_t size) | ||
|- | |- | ||
| | | 0x357 || {{cellcolors|#88ff88}} CCAPICreateProcessThread || int32_t CCAPICreateProcessThread(int command_id,sys_pid_t pid, thread_t* thread, void* entry, uint64_t arg, int prio, size_t stacksize, const char* threadname) | ||
|- | |- | ||
| 0x977 || {{cellcolors|#88ff88}} CCAPIAllocatePage || int32_t CCAPIAllocatePage(int command_id,sys_pid_t pid, uint64_t size, uint64_t page_size, uint64_t flags, uint64_t is_executable, uint64_t* kernel_page_adr, uint64_t* game_page_adr) | |||
|} | |} | ||
Reference for this info : offset 0x448 ccapi.prx in ccapi 2.80 rev5 this is the function called to use ccsc(command id, ... ); | Reference for this info : offset 0x448 ccapi.prx in ccapi 2.80 rev5 this is the function called to use ccsc(command id, ... ); | ||
= CCAPI 2.00-2.50 = | |||
You may find information in PrimeTime00 alt source about older encryption used on the tcp packets sent to ccapi v2.00-2.50 | |||
CCAPI PrimeTime00 alt source | |||
https//pastebin.com/x12kqNaQ | |||
https//pastebin.com/G9hx9pch | |||