127w ago - Today Spanish PlayStation 3 developer JaicraB has explained the Cobra USB JIG protection RTOC trick implemented for the PS3 against cloning the device.
To quote, roughly translated: Flynn sent me this text explaining this protective carrying the Cobra, I hope it will open the eyes of those interested in reversing the dumps.
EXPLAIN RTOC COBRA TRICK
The JIG Cobra has several protective measures to ensure that your code could not be used correctly even if your code could be dumped.
This trick RTOC in the registry is the first used for this purpose in addition to hinder analysis.
Registration is initially RTOC stored in the battery to keep the RTOC of lv2 and power it back later:
# =============== S U B R U T I O N E
cobra_syscall_sm_shutdown_hook: # CODE XREF: j syscall_379
. Arg_20 September, 0x20
. Arg_28 September, 0x28
. Arg_30 September, 0x30
. Arg_38 September, 0x38
. Arg_40 September, 0x40
std% r0, arg_20 (% sp)
std% RTOC, arg_28 (% sp)
At this point we have to explain that the OFFSET DELTA. DELTA OFFSET is a method used in the x86 in its original moments in the creation of computer viruses, to calculate the memory address in which we are in the sea of bytes in RAM.
In the original time a computer virus when I did not know where he was pulled into an executable,
depending on the executable it could be an initial site or another, for it was invented DELTA OFFSET.
DELTA OFFSET can be used in any system, the procedure is:
Using the record that indicates the current execution address (or the next depending on the system)
Reducing the size of the previous code we use the value obtained from the registry.
Knowing this, and taking for example the x86 processor where the EIP register can not be read directly invented the trick make a call to a "subfunction" which is simply the following line to the call:
X86 call instruction saves the top of the stack the address of the next instruction to itself. Thus using pop draw from the top of the stack this value, and stored in eax for example, and having the memory address where we only subtract the above would be missing and we have the exact calculation.
The PowerPC can use this trick using the BL instruction is equivalent (LINK BRANCH), which jumps to a "subfunction" but before you save LR in the record the following address to BL.
At this point we see the trick used for the creation of the RTOC of charges at this time. If you look both r0 and RTOC are passed to 0:
li% r0, 0
RTOC li%, 0
Subsequently, given the value 0x11DE0 to RTOC:
RTOC oris%,% RTOC, 1
RTOC ori%,% RTOC, 0x1DE0
A r0 is given the value 0x920:
oris% r0,% r0, 0
ori% r0,% r0, 0x920
R0 is subtracted from the value of RTOC:
SUBF% r0,% r0,% RTOC
Unlike the PowerPC x86 LR register can be read directly with mflr instruction, we put in RTOC the value obtained by the delta offset:
To calculate the delta offset subtract final instructions executed before the delta offset, which were 4, or 16 bytes:
RTOC addi%,% RTOC,-0x10
Finally we add the value of r0 at the end of the delta offset RTOC, storing the result in the RTOC and this already takes RTOC suitable for this hook:
add% RTOC,% RTOC,% r0
It takes having the RTOC stored in the stack 3 arguments that the hook received:
You call the function of the charges where the first argument will check for command 0x8202 (a special command to the usual):
After making the necessary steps as charged, the battery recovers the original RTOC, like the arguments the hook received, it executes the original instruction that was overwritten in the syscall entry 379 (in this case) to have our hook, and call the original syscall lv2:
Upon returning to retrieve the original LR from the stack and returns to the prompt
ld% r0, arg_20 (% sp)
# End of function cobra_syscall_sm_shutdown_hook
Stay tuned for more PS3 Hacks and PS3 CFW news, follow us on Twitter and be sure to drop by the PS3 Hacks and PS3 Custom Firmware Forums for the latest PlayStation 3 scene updates and homebrew releases!
Added support for lastGAME 8.0 [SingStar]
mM will display the IDPS from NOR/NAND (EID0) and from LV2 memory (spoofed/real) in "System Information"
Fixed lastGAME support for external/usb games with bd-mirror setting
If you use lastGAME 8.0 [SingStar] version (available also in the WEB column of multiMAN) you can take advantage of REMOVING the Singstar app from your ps3 and also have quick access to the last game you loaded with multiMAN.
lastGAME 8.0 support bd-mirror settings, so it is 100% compatible with all games that multiMAN supports. multiMAN (standard/stealth) is required to be installed to use bd-mirror with lastGAME 8.0.
Trying to play Beyond two souls now and get the error of This game requires 4.46 firmware version. Do you want to change it to your current 4.40 version.
Note: the operation will fix 80010009 errors for 4.20-4.31 FW games/updates if files are encrypted with 4.20/0x1c or lower key revision.
So is it safe to say yes when this message comes up and i should be able to play the game on rogero 4.41?
Also I need exact instructions on how to update to Rogero cfw to 4.46 if i must and how to install multiman and react psn. Does rogero 4.46 firmware work with multiman 4.40 or do i need to update multiman as well? Also is react psn to install any games that come as package files and dlc content?
Someone else did this all for me and i am very nervous of bricking my system not knowing the exact steps to install the new rogero, multiman and react psn. Also would I need to install rogero cfw 4.46 first and than the new multiman?
Today Gary Wayne Bowser (aka GaryOPA) and Max Louarn's new Cobra pitchman magneto released the official Cobra USB source code and updated Cobra.db database with the same old song and dance below, as follows:
A few days ago, STLcardsWS sent us a request, asking if we could release the source code of the Cobra USB dongle.
Today, we are fulfilling this request with a release of the full source code. We are releasing the entire source code under the GPL license.
You will find an overview.txt file which explains the content of each directory, and a readme.txt file in the cobralib subdirectory which explains its API and how to use it.
The source code is massive, and represents countless hours of work, containing 33,346 lines of C code, 5,981 lines of C++ code, 2,728 lines of assembly code and 35,530 lines in header files. We are sure that you can make good use of it, in part or in whole, within the community.
We hope that this release will be useful to the PS3 scene as a whole and that some of our exclusive features can be ported to the new and free custom firmwares.
As for all those haters out there who found the announcement of this effort as a new pretext to show your hate towards us, let it be known that this is not a PR stunt as you seem to think, this idea came from STLcardsWS, writer for psx-scene and dashhacks, who sent his request to us, and we accepted it.
We have no obligation to release the source, and if you don't want or like it, then simply don't download it. We are saddened to see people still finding ways to complain no matter what we decide to do. Even if it is for the scene that we do it. It is truly sad to see some people unable to show any other emotions than hate and ungratefulness.
Here is an update to the cobra.db database. It (cobra.db and supported games in CSV format) will be made available on the Web site shortly.
I cannot seem to be able to install 4.50 Base... I mean it installed but when I run it, it says the installation was incomplete... install the BASE or FULL, what did i miss? I thought I installed the Base from the link above. Please help!
multiMAN ver 04.50.00 BASE CEX (20131003).pkg
multiMAN ver 04.50.00 BASE DEX (20131003).pkg
multiMAN ver 04.50.00 STEALTH (20131003).zip
Showtime 04.03.536 [CEX].pkg
Showtime 04.03.536 [DEX].pkg
Added support for 4.50CFW
PS1/PS2/PS3 games, BD-MIRROR INT/EXT, BD-MOVIE REGION CHANGE/DYNAREC SUPPORT
Disc-less mode: Icon changed from BD disc to "folder icon"
Update is available online within multiMAN and in web column. Tested on FAT 80GB PAL PS3... all good.
Here are all mmTOOLS updated to support 4.46DEX and 4.50CFW (CEX):
All tools are also compatible with (Cex/Dex) CFWs 3.55C/D, 4.21C/D, 4.30C/D, 4.31C, 4.40C, 4.41C, 4.46C/D and 4.50C.
Available also in mM's WEB column.
lastGAME now support BD-MIRROR option (internal/external).
lastGAME 8.0 [SINGSTAR replacement] requires updated multiMAN. mM will look for lastGAME-SS and if found it will use it. I find it very convenient, because the "Load Last Title" icon is always on top, next to the BD disc icon.
And the updated multiMAN (you need it only if you plan to use lastGAME [SingStar replacement]):