Talk:Ernie: Difference between revisions

From Vita Developer wiki
Jump to navigation Jump to search
 
(3 intermediate revisions by one other user not shown)
Line 3: Line 3:
* https://www.sendspace.com/file/29rxmb (Pages 43,44)
* https://www.sendspace.com/file/29rxmb (Pages 43,44)
* https://www.sendspace.com/file/6ms5li (KH3 Variant)
* https://www.sendspace.com/file/6ms5li (KH3 Variant)
* https://www.sendspace.com/file/yntoc1 (KX3-L Variants)
* https://www.sendspace.com/file/pu5es2 (KX3-L Flash Programming)


= Attack Manuals =
= Attack Manuals =
Line 13: Line 15:
! Production Start Date (<=) || PS2 Mechacon !! PSP Syscon !! PS3 Syscon !! PSVita Syscon !! PS4 Syscon !! Used IC/CPU Core
! Production Start Date (<=) || PS2 Mechacon !! PSP Syscon !! PS3 Syscon !! PSVita Syscon !! PS4 Syscon !! Used IC/CPU Core
|-
|-
| <abbr title="IRT-001, IRT-002, IRS-002, IRS-1001, DOL-1001, DOL-1002">07/2010</abbr> || - || - || - || <abbr title="No official name">"SC"</abbr> || - || NEC D79F0109 / D78F???? (78K0R/KH3, 121 pin)
| <abbr title="IRT-001, IRT-002, IRS-002, IRS-1001, DOL-1001, DOL-1002">07/2010</abbr> || - || - || - || <abbr title="No official name">"SC"</abbr> || - || NEC D79F0109 / -------- (78K0R/KH3, 121 pin)
|-
|-
| <abbr title="USS-1001, USS-1002">08/2013</abbr> || - || - ||- || A0''xxx'' || - || Renesas R5F1ZCRK (RL78/G13, 121 pin)
| <abbr title="USS-1001, USS-1002">08/2013</abbr> || - || - ||- || A0''xxx'' || - || Renesas R5F1ZCRK (RL78/G13, 121 pin)
|-
|-
|}
|}
= "Stripping" Ernie updates =
<pre>
import struct
from binascii import unhexlify as uhx
from binascii import hexlify as hx
from Crypto.Cipher import AES
import os
import sys
def aes_decrypt_cbc(key, iv, input):
    return AES.new(key, AES.MODE_CBC, iv).decrypt(input)
def main(argc, argv):   
    with open(sys.argv[1], 'rb') as g:
        data3 = g.read(0x30)
        magic = b'\x20\x18\x00\x00'
        while(magic not in data3):
            data3 = g.read(0x400)
            with open(sys.argv[2], 'ab') as h:
                h.write(data3)
            data3 = g.read(0x10)
    with open(sys.argv[2], 'rb') as i:
        middledata = i.read()
        dec = aes_decrypt_cbc('523BEB53FCB95DC772AA1BFB0A96CD10'.decode('hex'),'385D67E50CE7669ECD171FE576814343'.decode('hex'),middledata)
        with open(sys.argv[3], 'wb') as j:
            j.write(dec)
   
if __name__ == '__main__':
    main(len(sys.argv), sys.argv)
</pre>

Latest revision as of 01:20, 2 June 2020

Manuals[edit source]

Attack Manuals[edit source]

Table[edit source]

Production Start Date (<=) PS2 Mechacon PSP Syscon PS3 Syscon PSVita Syscon PS4 Syscon Used IC/CPU Core
07/2010 - - - "SC" - NEC D79F0109 / -------- (78K0R/KH3, 121 pin)
08/2013 - - - A0xxx - Renesas R5F1ZCRK (RL78/G13, 121 pin)

"Stripping" Ernie updates[edit source]

import struct
from binascii import unhexlify as uhx
from binascii import hexlify as hx
from Crypto.Cipher import AES

import os
import sys

def aes_decrypt_cbc(key, iv, input):
    return AES.new(key, AES.MODE_CBC, iv).decrypt(input)

def main(argc, argv):    
    with open(sys.argv[1], 'rb') as g:
        data3 = g.read(0x30)
        magic = b'\x20\x18\x00\x00'
        while(magic not in data3):
            data3 = g.read(0x400)
            with open(sys.argv[2], 'ab') as h:
                h.write(data3)
            data3 = g.read(0x10) 
    with open(sys.argv[2], 'rb') as i:
        middledata = i.read()
        dec = aes_decrypt_cbc('523BEB53FCB95DC772AA1BFB0A96CD10'.decode('hex'),'385D67E50CE7669ECD171FE576814343'.decode('hex'),middledata)
        with open(sys.argv[3], 'wb') as j:
            j.write(dec)
    


if __name__ == '__main__':
    main(len(sys.argv), sys.argv)