126w 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!
I would wait for further comment or release tends before really speculating on Dean's stance in the scene. I'm not mad at him either way, but I just hope he doesn't set himself up for associative attention.
Its dean's work, he can sell HIS work and get remuneration for it. ITS HIS TIME, the question here is who is paying, because WE DIDN'T pay for his time.
I really think he is the one that enjoys the least his work, because the hundreds of hours he invests in coding don't give him time to get some gaming, sad but true. Thanks dean for what you could give us as long as you could, you deserve at least a couple bucks to get your testing equipment for free and THATS nothing compared with what you worked for. Imagine all those hours at a modest ($50USD) pero hour and you tell me if free equipment is worth it.
Yes, guys... Agree with everything that was said. If we could have one of this freakin dongles with stable CFW (like kmeaw), support for PSX, PS2, PSP isos, homebrew compatible, multiman mounted and TB payload for newer games... well... THEN I WOULD REALLY GET IT. LLOOOLL!!!
Oh, I forgot... And the dongle MUST talk with sexy lady voice. Damn!
I would like to hear directly from dean as well not just speculation... I have followed his MM program for a long time and loved the updates, then the updates just stopped coming, does that mean without the dongle their will be no more updates?
Sad, but understandable in the POV of Dean, I don't know his job, place of residence, if he has a family to provide for, or his living standards so yeah if you understand that he is a human being there is no reason to be angry with him, unless he publicly says screw everyone that supported him or others accrediting to his program.
In short I really don't want to buy a freakin dongle I spend enough money, MILKING COWS DOESN'T PAY FOR EVERYTHING.
There is no PSP support on the new update (4.2) It basically took away support from what I tested. I used the new Multiman (Cobra Edition) and I plugged in my PSP like it said I could... but nothing happens. Leading me to believe it has no support anymore.
It lied about allowing you to boot games from the PSP. Unless someone can confirm and tell me how the hell you do it. Because I just spent like 12 minutes trying to get it to work. And when I tested a PSP game off a usb.. it errored telling me to "install" the PSP launcher... again? I already have it installed but I get that error every time.