Sponsored Links

Sponsored Links

MultiMAN v04.09.00 Arrives with More PS3 v4.30 CFW Support

Sponsored Links
108w ago - Following up on the previous update, today PlayStation 3 homebrew developer deank has updated multiMAN PS3 game backup manager to version 04.09.00 Base and Full (20121030) with the changes outlined below.

Download: [Register or Login to view links] (30.40 MB) / [Register or Login to view links] (273.03 MB)


More Mirrors:


  • Updated online covers database (also fixed Fifa13/Maiden/Dishonored covers)
  • Updated gameDATA3, lastGAME3 and bdRESET3 to support 4.30CFW
  • Updated showTIME to 04.01.208 (standalone PKG and showTIME for mM)
  • Added hidden option in options.bin "kid_protection" (to control access to settings/mmos)

For 3.41-4.30 CFW (CEX)

  • multiMAN ver 04.09.00 BASE
  • Showtime 4.1.208
  • bdRESET
  • gameDATA
  • lastGAME
  • stDISC

For 3.41-4.30 CFW

  • multiMAN ver 04.09.00 FULL (CEX) (8700 PSX/PS2/PS3 game covers, 2 motion backgrounds)
  • multiMAN ver 04.09.00 BASE (DEX)
  • Showtime 4.1.208 (CEX/DEX)
  • bdRESET
  • gameDATA
  • lastGAME
  • stDISC
  • RetroArch (CEX)
  • PC Applications

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!

Comments 1015 Comments - Go to Forum Thread »

• Please Register at PS3News.com or Login to make comments on Site News articles. Thanks!

PS3 News's Avatar
#480 - PS3 News - 88w ago
Following up on his previous update and Flat_z's release earlier today, Spanish PlayStation 3 developer MiralaTijera has now made available the PS2 Classics keys and Cobra 6.0 4.30 PS3 CFW payload from the DRM-infected USB dongle by the notorious scene profiteers.

Download: [Register or Login to view links] / [Register or Login to view links] (via pastie.org/private/ugnucdtw6dcb0bjjhxbq) / [Register or Login to view links] (Mirror)

For those naive, it's no coincidence these PS2 keys and Cobra payload are just now mysteriously being released as the PS3 capitalistic pigs Max Louarn, Paul Owen and Gary Wayne Bowser (aka GaryOpa) ready their next ripoff product for market this month and (once again) their True Blue cycle repeats on even more unsuspecting victims unfortunately.

To quote, roughly translated: payload 4.30 cobra 6.0 xDDDDDDDD

base = 0x8000000000540000

MiraElCobra what next?

Of the keys to what Flatz

[Register or Login to view code]

Here the dongle detects the payload who send the instruction from the lv2 (0xAAAA 0xC0BA) and them one loop with a send cmd to the dongle...

[Register or Login to view code]

From haz367: Just for testing this payload..loaded the "payload.bin" using his 4.31CFW and Core 2.6.5 /update4 and it seems to inject payload into kernel, comparing lv1/lv2 dumps is a mess cuse it's always different.. log of payload loaded into kernel.. then what.. lol.. back to my psu.

[Register or Login to view code]

Finally, from ing_pereira (via elotrolado.net/hilo_informacion-sobre-ps2-classics-en-ps3_1862516_s40#p1731967660):

Here I leave the source published by Flatz (Proof of concept of ps2 classics decryption, the. ENC, the encrypted virtual memory cards. VME and CONFIG file tweaks) with notes in English and the script. Py python already prepared with keys of miralatijera again who does or leaves much of the work.

Download: [Register or Login to view links]

[Register or Login to view code]

The binary klicensee no texts as always, I remind you need python and well maybe the code has errors at some point but this desconosco it since I am still in the process of testing a classic ps2.

This advanced for devs and theme they want to take a look at the issue of ps2 classics and encryption and decryption. Flatz With its analysis and work on the subject, miralatijera by keys.

More PlayStation 3 News...

PS3 News's Avatar
#479 - PS3 News - 88w ago
Following up on the previous updates, today PlayStation 3 developer Flat_z has revealed the Sony PlayStation 2 (PS2) Classics algorithm with details below.

Download: [Register or Login to view links]

To quote: Ok, guys. Unfortunately I forced to admit that I have no more time to work on PS3 stuff because I'm very busy lately. So I decided to publish all information related to PS2 classics as JuanNadie did with the NPDRM algorithm one year ago.

Firstly I wanted to say that he was the first who started reverse-engineering on this subject and when he left the scene I decided to continue his work to keep it from going to waste. And so I would like to thank JuanNadie for his amazing contribution to the PS3 scene. Besides that, he gave me some piece of information on the subject.
[code]# -*- coding: utf-8 -*-

import sys, os, math, datetime
import struct, hashlib, hmac, ecdsa

from CryptoPlus.Cipher import AES


def aes_encrypt_ecb(key, data):
crypto = AES.new(key, AES.MODE_ECB)
return crypto.encrypt(data)

def aes_decrypt_ecb(key, data):
crypto = AES.new(key, AES.MODE_ECB)
return crypto.decrypt(data)

def aes_encrypt_cbc(key, iv, data):
crypto = AES.new(key, AES.MODE_CBC, iv)
return crypto.encrypt(data)

def aes_decrypt_cbc(key, iv, data):
crypto = AES.new(key, AES.MODE_CBC, iv)
return crypto.decrypt(data)

def aes_cmac(key, data):
crypto = AES.new(key, AES.MODE_CMAC)
return crypto.encrypt(data)

def calculate_sha1(data):
return hashlib.sha1(data).digest()

def sha1_hmac(key, data):
return hmac.new(key=key, msg=data, digestmod=hashlib.sha1).digest()

def load_file_contents(file_path):
with open(file_path, 'rb') as in_file:
data = in_file.read()
return data

def store_file_contents(file_path, data):
with open(file_path, 'wb') as out_file:

def xor_data(data1, data2, size):
return ''.join(chr(ord(data1[i]) ^ ord(data2[i])) for i in xrange(size))

def s2i(s):
result = 0L
for c in s:
result = 256 * result + ord(c)
return result

def round_up(x, n):
return (x + (n - 1)) & ~(n - 1);

def get_ecdsa_curve_parameters(type, index):
if type == 'vsh':
curves = []
curve_fmt = '>20s20s20s20s20s20s'
with open('vsh.curves', 'rb') as in_file:
file_data = in_file.read()
file_size = len(file_data)
num_curves = int(file_size / struct.calcsize(curve_fmt))
for i in xrange(num_curves):
data = file_data[i * struct.calcsize(curve_fmt)i + 1) * struct.calcsize(curve_fmt)]
inv_data = ''.join([chr((~ord(x)) & 0xff) for x in data])
p, a, b, n, gx, gy = struct.unpack(curve_fmt, inv_data)
curves.append({ 'p': s2i(p), 'a': s2i(a), 'b': s2i(b), 'n': s2i(n), 'gx': s2i(gx), 'gy': s2i(gy) })
params = curves[index]
return params['p'], params['a'], params['b'], params['n'], params['gx'], params['gy']
return None

def dump(data, data_size, block_size=16):
if data_size == 0:
data_size = len(data)
num_blocks = int(math.floor(data_size / block_size))
for i in num_blocks:
print '\t', data[i * block_sizei + 1) * block_size].encode('hex')

if len(sys.argv) < 3:
print 'usage: ps2.py '



NPDRM_OMAC_KEY1 = '????????????????????????????????'.decode('hex') # FIXME: SHA-1: 1DD100602ABC688AC7520EE8168B8B23B0563CF8
NPDRM_OMAC_KEY2 = '????????????????????????????????'.decode('hex') # FIXME: SHA-1: 07DAD1183CEC7ED834AFE8C7590E225484618D7F
NPDRM_OMAC_KEY3 = '????????????????????????????????'.decode('hex') # FIXME: SHA-1: 838633A7E03256F6CCE4E53D0842816013F8AECA

FALLBACK_HEADER_HASH = '00000000000000000000000000000001'.decode('hex')

ATA_KEY_SEED = '????????????????????????????????????????????????????????????????'.decode('hex') # FIXME: SHA-1: 362AA6F834600464B76ECC4E8CBFBEF99A76C1AF

PS2_KEYS = {
'cex': {
'meta': '????????????????????????????????'.decode('hex'), # FIXME: SHA-1: B9CACFF9E126F63634DC38AF61040BDF6F370A26
'data': '????????????????????????????????'.decode('hex'), # FIXME: SHA-1: CB0BAECAAADF9E5C629522B11757F78C7CD5B23C
'vmc': '????????????????????????????????'.decode('hex') # FIXME: SHA-1: EB03D83F96E3394A05BCE68F8645DA134CDA5545
'dex': {
'meta': '????????????????????????????????'.decode('hex'), # FIXME: SHA-1: 4FCFB6683AC46E73FFFCE49895E3F303A117BE8C
'data': '????????????????????????????????'.decode('hex'), # FIXME: SHA-1: AEC7A9C13A4023FE268A163FFDC8382F45496928
'vmc': '????????????????????????????????'.decode('hex') # FIXME: SHA-1: B41AEE9D3B6C54292469C9C754AE8FE75ACBE958
PS2_IV = '00000000000000000000000000000000'.decode('hex')

ECDSA_PUBLIC_KEY = '????????????????????????????????????????????????????????????????????????????????'.decode('hex') # FIXME: SHA-1: 7B365A6A821FC03B1A9A764E5E695DB3599FF7BC

BASE_TICKS = 62135596800000000 # 01/01/1970


input_file_path = sys.argv[1]

klicensee_file_path = sys.argv[2]
klicensee_key = load_file_contents(klicensee_file_path)
if len(klicensee_key) != KLICENSEE_KEY_SIZE:
print 'Incorrect klicensee key size'

console_type = 'cex'

ecdsa_signature_fmt = '>20s20s'
ecdsa_curve_p, ecdsa_curve_a, ecdsa_curve_b, ecdsa_curve_n, ecdsa_curve_gx, ecdsa_curve_gy = get_ecdsa_curve_parameters(ECDSA_CURVE_TYPE, ECDSA_CURVE_INDEX)
ecdsa_curve = ecdsa.ellipticcurve.CurveFp(ecdsa_curve_p, ecdsa_curve_a, ecdsa_curve_b)
ecdsa_generator = ecdsa.ellipticcurve.Point(ecdsa_curve, ecdsa_curve_gx, ecdsa_curve_gy, ecdsa_curve_n)
ecdsa_public_qx, ecdsa_public_qy = struct.unpack(ecdsa_signature_fmt, ECDSA_PUBLIC_KEY)
ecdsa_public_qx, ecdsa_public_qy = s2i(ecdsa_public_qx), s2i(ecdsa_public_qy)
ecdsa_public_point = ecdsa.ellipticcurve.Point(ecdsa_curve, ecdsa_public_qx, ecdsa_public_qy)
ecdsa_public_key = ecdsa.ecdsa.Public_key(ecdsa_generator, ecdsa_public_point)


PS2_MAGIC = 'PS2\x00'
PS2_VMC_MAGIC = 'Sony PS2 Memory Card Format'

FILE_FLAGS_DEBUG = 0x80000000

magic_fmt = '>4s'
header_fmt = '>4sHHII48s16s16s16sQQIIQ16s16s40s20s20s'
meta_data_section_fmt = '>16s'
meta_data_section_extended_fmt = '>16sQIII'

input_file_dir, input_file_name = os.path.split(input_file_path)
input_file_extension = os.path.splitext(input_file_path)[1]

if input_file_extension.upper() != '.VME':
with open(input_file_path, 'rb') as npd_file:
magic, = struct.unpack(magic_fmt, npd_file.read(struct.calcsize(magic_fmt)))
if magic != NPD_MAGIC and magic != PS2_MAGIC:
print 'Not a NPD/PS2 file'

header = npd_file.read(HEADER_SIZE)

extended_header = npd_file.read(EXTENDED_HEADER_SIZE)

signature_data = npd_file.read(SIGNATURE_DATA_SIZE)

magic, version_major, version_minor, license_type, type, content_id, qa_digest, cid_fn_hash, header_hash, time_period_start, time_period_end, file_flags, segment_size, data_size, meta_data_sections_hash, extended_header_hash, unknown_data, signature_r, signature_s = struct.unpack(header_fmt, npd_file.read(struct.calcsize(header_fmt)))
version = (version_major

jensen76's Avatar
#478 - jensen76 - 88w ago
there is now pkg for the stealth multiman... and how the heck woud you change a txt to a self... the txt is the stealth multiman. read the guide for multiman on how to use stealth..

joekrow's Avatar
#477 - joekrow - 88w ago
In the new multiman base 14.20 I don't seem to find the install pkg for mm stealth, anyone here with some help.. and also don't seem to know how to change the .txt to .self hoping someone may be of help thanks

williak6's Avatar
#476 - williak6 - 88w ago

Sponsored Links

Sponsored Links
Sponsored Links

Sponsored Links

Advertising - Affiliates - Contact Us - PS3 Downloads - Privacy Statement - Site Rules - Top - © 2014 PlayStation 3 News