you might already know ps3mca-tool.
This is a continuation of the project, based on the work from almighty Leo Oliveira (ps3mca 1.4)
Before you panic, don't worry! the program no longer has the Magicgate Keys inside. so it should no longer be a potential target of the (currently unlikely) wrath from sony
The following changes were made so far (maybe expect more stuff on the future?)
Config file
Now ps3mca-tool needs a config file to work, the file (named ps3mca.ini) must be placed on the same folder than the program or inside %USERPROFILE%
here is an example of how it should look
The keys you need
[TABLE="class: brtb_item_table"][TBODY][TR][TD]Key Name[/TD][TD]Alternative key name (kelftool)[/TD][TD]size in bytes [/TD][/TR]
[TR][TD]MC_CARDKEY_MATERIAL_1[/TD][TD]MG_CARDIV_0[/TD][TD]8[/TD][/TR]
[TR][TD]MC_CARDKEY_HASHKEY_1[/TD][TD]MG_CARDKEY_0[/TD][TD]16[/TD][/TR]
[TR][TD]MC_CARDKEY_MATERIAL_2[/TD][TD]MG_CARDIV2_0[/TD][TD]8[/TD][/TR]
[TR][TD]MC_CARDKEY_HASHKEY_2[/TD][TD]MG_CARDKEY2_0[/TD][TD]16[/TD][/TR]
[TR][TD]MC_CHALLENGE_MATERIAL[/TD][TD]MG_CHALLENGE_IV[/TD][TD]8[/TD][/TR]
[TR][TD]MG_KBIT_MATERIAL[/TD][TD]MG_KBIT_IV[/TD][TD]8[/TD][/TR]
[TR][TD]MG_KC_MATERIAL[/TD][TD]MG_KC_IV[/TD][TD]8[/TD][/TR]
[TR][TD]MG_KBIT_MASTER_KEY[/TD][TD][/TD]
[TD]16[/TD][/TR]
[TR][TD]MG_KC_MASTER_KEY[/TD][TD][/TD]
[TD]16[/TD][/TR][/TBODY][/TABLE]
Verbose levels
The following values will change the logging (one value also carries the effects of the smaller ones)
Starting with ps3mca-tool 1.5.1.0 a new config value can be passed to individual keystores. this value specifies the magicgate key to be requested into the card, and goes by this name on the ini: `keychange_param`. a number from 0 to 3 must be assigned to it depending on the keyset
I will not explain in depth the meaning of this. but it should look like this
```ini
[retail]
keychange_param=1
;YOUR KEYS HERE
[developer]
keychange_param=0
;YOUR KEYS HERE
[arcade]
;YOUR KEYS HERE
[prototype]
;YOUR KEYS HERE
[arcade2]
keychange_param=3
;YOUR KEYS HERE
```
To make it simpler, these are the values and their meaning:
[TABLE="class: brtb_item_table"][TBODY][TR][TD]key[/TD][TD]description[/TD][/TR]
[TR][TD]0[/TD][TD]developer key[/TD][/TR]
[TR][TD]1[/TD][TD]retail key[/TD][/TR]
[TR][TD]2[/TD][TD]unknown key[/TD][/TR]
[TR][TD]3[/TD][TD]arcade2 key (arcade PS2 second memory card port)[/TD][/TR][/TBODY][/TABLE]
LibUSB
the libusb driver has been a problematic point while dealing with compiling ps3mca-tool.
the DLL is already bundled. if the program does not work anyways, you might need to install this:
https://sourceforge.net/projects/libusbk/
Original author
As per instructions from the original author of this program. he does not want to be mentioned or linked to this software anymore. so, there is no disrespect or hiding identities of the original author with some malicious intent. just keeping in line with the will of the author
This is a continuation of the project, based on the work from almighty Leo Oliveira (ps3mca 1.4)
Before you panic, don't worry! the program no longer has the Magicgate Keys inside. so it should no longer be a potential target of the (currently unlikely) wrath from sony
The following changes were made so far (maybe expect more stuff on the future?)
- Implement external MG keys (no more need of several builds of ps3mca for card variants)
- Compatitibility with KELFTool key naming (no more need to rename keys)
- Detection of SoulCalibur II Conquest cards (and lock harmful features for it)
- higher verbosity levels allow for obtaining memory card sensitive data (liike CardIV or CardNonce) (for normal users, we recommend verbose level 1)
- card dump commands now have a visual progress gauge so you don't think ps3mca stopped responding
- disabled non-ecc card dump for simplicity and to avoid user's confusion
- Use libusb as DLL
Config file
Now ps3mca-tool needs a config file to work, the file (named ps3mca.ini) must be placed on the same folder than the program or inside %USERPROFILE%
here is an example of how it should look
Code:
[ps3mca]
mgkey=retail
verbose=4
[retail]
keychange_param=1
MC_CARDKEY_MATERIAL_1=...
MC_CARDKEY_HASHKEY_1=...
MC_CARDKEY_MATERIAL_2=...
MC_CARDKEY_HASHKEY_2=...
MC_CHALLENGE_MATERIAL=...
MG_KBIT_MATERIAL=...
MG_KC_MATERIAL=...
MG_KBIT_MASTER_KEY=...
MG_KC_MASTER_KEY=...
[arcade]
MC_CARDKEY_MATERIAL_1=...
MC_CARDKEY_HASHKEY_1=...
MC_CARDKEY_MATERIAL_2=...
MC_CARDKEY_HASHKEY_2=...
MC_CHALLENGE_MATERIAL=...
MG_KBIT_MATERIAL=...
MG_KC_MATERIAL=...
MG_KBIT_MASTER_KEY=...
MG_KC_MASTER_KEY=...
[arcade2]
keychange_param=3
MC_CARDKEY_MATERIAL_1=...
MC_CARDKEY_HASHKEY_1=...
MC_CARDKEY_MATERIAL_2=...
MC_CARDKEY_HASHKEY_2=...
MC_CHALLENGE_MATERIAL=...
MG_KBIT_MATERIAL=...
MG_KC_MATERIAL=...
MG_KBIT_MASTER_KEY=...
MG_KC_MASTER_KEY=...
[developer]
keychange_param=0
MC_CARDKEY_MATERIAL_1=...
MC_CARDKEY_HASHKEY_1=...
MC_CARDKEY_MATERIAL_2=...
MC_CARDKEY_HASHKEY_2=...
MC_CHALLENGE_MATERIAL=...
MG_KBIT_MATERIAL=...
MG_KC_MATERIAL=...
MG_KBIT_MASTER_KEY=...
MG_KC_MASTER_KEY=...
[prototype]
MC_CARDKEY_MATERIAL_1=...
MC_CARDKEY_HASHKEY_1=...
MC_CARDKEY_MATERIAL_2=...
MC_CARDKEY_HASHKEY_2=...
MC_CHALLENGE_MATERIAL=...
MG_KBIT_MATERIAL=...
MG_KC_MATERIAL=...
MG_KBIT_MASTER_KEY=...
MG_KC_MASTER_KEY=...
The keys you need
[TABLE="class: brtb_item_table"][TBODY][TR][TD]Key Name[/TD][TD]Alternative key name (kelftool)[/TD][TD]size in bytes [/TD][/TR]
[TR][TD]MC_CARDKEY_MATERIAL_1[/TD][TD]MG_CARDIV_0[/TD][TD]8[/TD][/TR]
[TR][TD]MC_CARDKEY_HASHKEY_1[/TD][TD]MG_CARDKEY_0[/TD][TD]16[/TD][/TR]
[TR][TD]MC_CARDKEY_MATERIAL_2[/TD][TD]MG_CARDIV2_0[/TD][TD]8[/TD][/TR]
[TR][TD]MC_CARDKEY_HASHKEY_2[/TD][TD]MG_CARDKEY2_0[/TD][TD]16[/TD][/TR]
[TR][TD]MC_CHALLENGE_MATERIAL[/TD][TD]MG_CHALLENGE_IV[/TD][TD]8[/TD][/TR]
[TR][TD]MG_KBIT_MATERIAL[/TD][TD]MG_KBIT_IV[/TD][TD]8[/TD][/TR]
[TR][TD]MG_KC_MATERIAL[/TD][TD]MG_KC_IV[/TD][TD]8[/TD][/TR]
[TR][TD]MG_KBIT_MASTER_KEY[/TD][TD][/TD]
[TD]16[/TD][/TR]
[TR][TD]MG_KC_MASTER_KEY[/TD][TD][/TD]
[TD]16[/TD][/TR][/TBODY][/TABLE]
Verbose levels
The following values will change the logging (one value also carries the effects of the smaller ones)
- 1: minimal logging
- 2: during card auth, log the values of the Memory card CardIV, CardMaterial and CardNonce. also logs kbit and kc encryption values during KELF Binding and un-binding
- 3: during card auth, log the values of mechacon challenges, card challenge responses and session key
- 11: print the keys chosen on the INI
Starting with ps3mca-tool 1.5.1.0 a new config value can be passed to individual keystores. this value specifies the magicgate key to be requested into the card, and goes by this name on the ini: `keychange_param`. a number from 0 to 3 must be assigned to it depending on the keyset
I will not explain in depth the meaning of this. but it should look like this
```ini
[retail]
keychange_param=1
;YOUR KEYS HERE
[developer]
keychange_param=0
;YOUR KEYS HERE
[arcade]
;YOUR KEYS HERE
[prototype]
;YOUR KEYS HERE
[arcade2]
keychange_param=3
;YOUR KEYS HERE
```
To make it simpler, these are the values and their meaning:
[TABLE="class: brtb_item_table"][TBODY][TR][TD]key[/TD][TD]description[/TD][/TR]
[TR][TD]0[/TD][TD]developer key[/TD][/TR]
[TR][TD]1[/TD][TD]retail key[/TD][/TR]
[TR][TD]2[/TD][TD]unknown key[/TD][/TR]
[TR][TD]3[/TD][TD]arcade2 key (arcade PS2 second memory card port)[/TD][/TR][/TBODY][/TABLE]
LibUSB
the libusb driver has been a problematic point while dealing with compiling ps3mca-tool.
the DLL is already bundled. if the program does not work anyways, you might need to install this:
https://sourceforge.net/projects/libusbk/
Original author
As per instructions from the original author of this program. he does not want to be mentioned or linked to this software anymore. so, there is no disrespect or hiding identities of the original author with some malicious intent. just keeping in line with the will of the author