Talk:ReDRM / Piracy dongles: Difference between revisions

From PS3 Developer wiki
Jump to navigation Jump to search
No edit summary
mNo edit summary
Line 1: Line 1:
I kinda figured how it works already</br>
they patched lv1 and lv2</br>
and they have lv2 to check if the self keyset is 0x10 or higher</br>
if so it's sent to lv1 through a separate hypercall than hvsc99</br>
which sends the self or part of it to the usb hw</br>
which performs some crypto </br>
and returns a decrypted result to lv1</br>
at least that's what I got out of a few minutes of debugging</br>
I am pretty sure the keys are on the dongle</br>
3.60+ app keys</br>
the ones you play games with</br>


<>  // do crypt</br>
----
<>  unsigned char sector_key[16];</br>
<>  memset(sector_key, 0, 16);</br>
<>  sector_key[12] = (sector_num & 0xFF000000)>>24;</br>
<>  sector_key[13] = (sector_num & 0x00FF0000)>>16;</br>
<>  sector_key[14] = (sector_num & 0x0000FF00)>> 8;</br>
<>  sector_key[15] = (sector_num & 0x000000FF)>> 0;</br>
<> 
<>  // encrypt sector</br>
<>  aes_context aes_ctx;</br>
<>  aes_setkey_enc(&aes_ctx, G_DEBUG_KEY, 128);</br>
<>  aes_crypt_cbc(&aes_ctx, AES_ENCRYPT, aligned_size, sector_key, buff, buff);</br>
<> 
<>  // decrypt</br>
<>  aes_context aes_ctx;</br>
<>  aes_setkey_dec(&aes_ctx, G_DEBUG_KEY, 128);</br>
<>  aes_crypt_cbc(&aes_ctx, AES_DECRYPT, aligned_size, sector_key, buff, buff);</br>


that's the algo for masterdiscs</br>
I kinda figured how it works already<br />
ps3gen dll has the static keys for masterdiscs</br>
they patched lv1 and lv2<br />
you can also get it from sv_iso</br>
and they have lv2 to check if the self keyset is 0x10 or higher<br />
the crappy sdk tool that generates masterdisc images for dex</br>
if so it's sent to lv1 through a separate hypercall than hvsc99<br />
which sends the self or part of it to the usb hw<br />
which performs some crypto<br />
and returns a decrypted result to lv1<br />
at least that's what I got out of a few minutes of debugging<br />
I am pretty sure the keys are on the dongle<br />
the ones you play games with<br />
<pre>
  // do crypt
  unsigned char sector_key[16];
  memset(sector_key, 0, 16);
  sector_key[12] = (sector_num & 0xFF000000)>>24;
  sector_key[13] = (sector_num & 0x00FF0000)>>16;
  sector_key[14] = (sector_num & 0x0000FF00)>> 8;
  sector_key[15] = (sector_num & 0x000000FF)>> 0;
 
  // encrypt sector
  aes_context aes_ctx;
  aes_setkey_enc(&aes_ctx, G_DEBUG_KEY, 128);
  aes_crypt_cbc(&aes_ctx, AES_ENCRYPT, aligned_size, sector_key, buff, buff);
 
  // decrypt
  aes_context aes_ctx;
  aes_setkey_dec(&aes_ctx, G_DEBUG_KEY, 128);
  aes_crypt_cbc(&aes_ctx, AES_DECRYPT, aligned_size, sector_key, buff, buff);</pre>
 
that's the algo for masterdiscs<br />
ps3gen dll has the static keys for masterdiscs<br />
you can also get it from sv_iso<br />
the crappy sdk tool that generates masterdisc images for dex<br />

Revision as of 03:44, 24 October 2011


I kinda figured how it works already
they patched lv1 and lv2
and they have lv2 to check if the self keyset is 0x10 or higher
if so it's sent to lv1 through a separate hypercall than hvsc99
which sends the self or part of it to the usb hw
which performs some crypto
and returns a decrypted result to lv1
at least that's what I got out of a few minutes of debugging
I am pretty sure the keys are on the dongle
the ones you play games with

   // do crypt
   unsigned char sector_key[16];
   memset(sector_key, 0, 16);
   sector_key[12] = (sector_num & 0xFF000000)>>24;
   sector_key[13] = (sector_num & 0x00FF0000)>>16;
   sector_key[14] = (sector_num & 0x0000FF00)>> 8;
   sector_key[15] = (sector_num & 0x000000FF)>> 0;
   
   // encrypt sector
   aes_context aes_ctx;
   aes_setkey_enc(&aes_ctx, G_DEBUG_KEY, 128);
   aes_crypt_cbc(&aes_ctx, AES_ENCRYPT, aligned_size, sector_key, buff, buff);
   
   // decrypt
   aes_context aes_ctx;
   aes_setkey_dec(&aes_ctx, G_DEBUG_KEY, 128);
   aes_crypt_cbc(&aes_ctx, AES_DECRYPT, aligned_size, sector_key, buff, buff);

that's the algo for masterdiscs
ps3gen dll has the static keys for masterdiscs
you can also get it from sv_iso
the crappy sdk tool that generates masterdisc images for dex