43w ago - This weekend
Oct0xor (aka
Mr. DongleBreaker) has followed up his
previous release with PS3UserCheat PS3 Cheat Dongle v2.3 update which features Cheatlist.dat v6.1 as outlined below.
Download:
PS3UserCheat PS3 Cheat Dongle v2.3 Update /
PS3UserCheat PS3 Cheat Dongle v2.3 Update (Mirror) /
PS3UserCheat PS3 Cheat Dongle v2.3 Update (Mirror #2) /
PS3 Cheats Editor Installer (by
aldostools) /
PS3 DEX 3.55 Cheat Pack by
technodon
From his Tweet: Release: Custom ps3usercheat v2.3 + cheatlist.dat v6.1
Finally releasing what I have many times asked for
Now everyone can make their own AR cheats for PS3.
I hope that in one day PS3 will have so much cheats like Nintendo DS
Thanks to
HeroQ8 for support.
!!! Never use this for cheating in online games !!!
This would help you making your own cheats: pastebin.com/tsD7wKv7
In related news
Tetzrep has made available (via psx-scene.com/forums/content/even-2606/) a
PSUserCheatfile MK9 Multiplayer NPC (Password: tetzrep)
This time allowing for mulitplayer and tag team use of the NPC's that were unlocked last month. A few other nice touches in this update include:
- The ability to morph Shang Tsung into other characters, as he does in the arcade ladder. This is nice considering all you can do with the move is take a bit of their life bar away. Now with certain button combos, you can pretty much morph into any character on the roster, and the NPC's to boot. All of this selectable through ps3usercheat, and the same directions from last months post applies also.
- The ability in the challenge tower on challenge 227 (Cyborg-Absorb) to not just play as Cyber-Reptile in this challenge, but to give the cyborg character in that challenge the fighting styles and any character, including the bosses.
- Other cheats added allow you to speed up and slow down gameplay.
There is a very nice jpg packaged in with the .dat file which gives specific instructions on how to get this to work, and the button combos needed.
Also from
Hero Q8 (aka
ueess via codemasters-project.net/vb/showthread.php?13123-Cheat&p=132900#post132900) comes some PS3 CFW 4.21+ Only Cheat Packages below, as follows:
Installation Instructions
1. Unrar The Rar File
2. Copy the pkg file to your USB
3. Install Package from "Install Package Files".
4. Choose The Game from Multiman or any other Manager (Must Have Any Disc In The Drive)
5. Boot the game from installed pkg not the disc icon it will start the game with the codes
NOTE 1: Some Games Needs Files from USRDIR to be moved to PKG dir (Minus Eboot) after install i will add Note 1 for these Games
NOTE 2: Some PKG are Just Update Install It and Boot The Game Normal i will add Note 2 for these Games
All Cheats For 4.21+ Only - For People who are on 3.55 CFW use PS3UserCheats (free) Which Has all codes converted to be used on that divice (Same ones you find in All Old and Current Eboot PKGs)
2nd Super Robot Taisen OG BLJS10133
1. Infinite Money
2. Infinite PP
3. Infinite SP
BLJS10133
http://www.putlocker.com/file/31B61E77E1AD8976
NOTE 2: This Is Update PKG Just Boot The Game Normal After Install
Borderlands 2 BLUS30982
1. Max Money on Buy
2. Max Badass Token & Skills
3. Max Level [NO EXP REQUIRED]
4. Infinite Ammo
BLUS30982
http://www.putlocker.com/file/EB1CB757807F469B
NOTE 2: This Is Update PKG Just Boot The Game Normal After Install
Darksiders 2 BLUS30829 and BLES01597
1. Infinite Skill Points Have at least 1
2. Infinite Wrath
3. Infinite Reaper Gauge
4. Max Yellow Coins after Save
5. Max Blue Coins after Save
BLUS30829
http://www.putlocker.com/file/16A1AAF26AC0AB47
BLES01597
http://www.putlocker.com/file/7BCE345B19B1F135
NOTE: For Yellow and Blue Coins Load Game with code save game, quit game & reload
NOTE 2: This Is Update PKG Just Boot The Game Normal After Install
Devil May Cry 4 BLUS300920
1. Infinite Health
2. Infinite Devil Trigger
3. Infinite Exceed
4. Always SSS Style
BLUS300920
http://www.putlocker.com/file/B28AB14D1635C8CB
NOTE 2: This Is Update PKG Just Boot The Game Normal After Install
Far Cry 3 BLUS30687
1. Max Money on Buy/Sell
2. Max Skill Points on Use
3. Max Exp on Gain
4. Infinite Ammo
BLUS30687
http://www.putlocker.com/file/2E1D1E00B3E0465C
NOTE 2: This Is Update PKG Just Boot The Game Normal After Install
Medal of Honor Warfighter BLUS30990
1. Infinite Ammo
BLUS30990
http://www.putlocker.com/file/FE8FCF2C2CA5499F
NOTE 2: This Is Update PKG Just Boot The Game Normal After Install
Need for Speed Most Wanted BLUS31010
1. Infinite Nitros
2. Infinite SP
BLUS31010
http://www.putlocker.com/file/F2D114D7ABA60F82
NOTE 2: This Is Update PKG Just Boot The Game Normal After Install
Never Dead BLES01303
1. Infinite Ammo
BLES01303
http://www.putlocker.com/file/4E52BC166CC88799
NOTE 2: This Is Update PKG Just Boot The Game Normal After Install
Ni no Kuni Wrath of the White Witch BLES01555
1. Max Money On Gain
BLES01555
http://www.putlocker.com/file/F359211A87282361
NOTE 2: This Is Update PKG Just Boot The Game Normal After Install
Sleeping Dogs BLES01661
1. Infinite Money
BLES01661
http://www.putlocker.com/file/E186D51F97DDAC28
NOTE 2: This Is Update PKG Just Boot The Game Normal After Install
Soul Calibur V BLUS30736
1. Infinite Health
2. 1 Hit Ko
BLUS30736
http://www.putlocker.com/file/822992CFA5A437BB
NOTE 2: This Is Update PKG Just Boot The Game Normal After Install
Spec Ops The Line BLUS30531
1. Infinite Ammo
BLUS30531
http://www.putlocker.com/file/C3322E0AF43DCA0D
NOTE 2: This Is Update PKG Just Boot The Game Normal After Install
Tekken Tag Tournament 2 BLES01702
1. Max Money on Buy
BLES01702
http://www.putlocker.com/file/E71CC5B09949270F
NOTE 2: This Is Update PKG Just Boot The Game Normal After Install
The Darkness II BLUS30743
1. Max Essences on Gain
BLUS30743
http://www.putlocker.com/file/9E0BCFF14D17E781
NOTE 2: This Is Update PKG Just Boot The Game Normal After Install
Twisted Metal BCUS98106
1. Infinite Health
2. Infinite Ammo
BCUS98106
http://www.putlocker.com/file/76E57141489BBBAA
NOTE 2: This Is Update PKG Just Boot The Game Normal After Install
Below is a Tool To Apply PS3UserCheat Hacks on Eboots from
KDSBest (via twitlonger.com/show/kigtsr):
Download:
Patch-ELF-PS3UserCheat.rar
// Patch PS3UserCheat Cheat to an ELF File
// 1. Decrypt EBOOT.BIN to EBOOT.ELF
// 2. Provide PATCH.TXT with the following Format (From PS3 Cheats Editor)
// Example PATCH.TXT
//00002000 0002A878 33FE034C
// Another Example of PATCH.TXT
//00002000 010AF534 00000000
//00002000 010AF538 00000000
//00002000 010AF53C 00000000
//00002000 010AF540 00000000
// 3. Run this Code
// 4. Rencrypt EBOOT.KDSBest.ELF to EBOOT.BIN
// 5. Replace EBOOT.BIN of your game with the new one
// Sorry I couldn't provide a One Click Tool I lack in time
// the 0000c001 patches are button mapping for cheat pkgs, since we fixed patch it this isn't supported.
// Example Tales of Grace F Move Fast Speed (Press []) is the following PATCH.TXT
//00002000 007DF6FC 3F800000
//0000C001 00000000 00000080
//00002000 007DF6FC 3FE00000
// If you don't want to patch the speed the PATCH.TXT you provide
//00002000 007DF6FC 3F800000
// If you want constant faster speed you provide
//00002000 007DF6FC 3FE00000
// It reads the following way
// 00002000 = Patch Memory (Eboot)
// 0000C001 = Button Event
// Look how easy
// If nothing is pressed
// {
//00002000 007DF6FC 3F800000 => Patch Memory At 007DF6FC to 3F800000
// }
//0000C001 00000000 00000080 => else If(Button Event(00000080)) => 00000080 = []
// {
//00002000 007DF6FC 3FE00000 => Patch Memory At 007DF6FC to 3FE00000
// }
// Why I write this tool
// I provided the patches by hand
// 1. Load ELF in IDA
// 2. Check bytes at Address
// 3. Search Bytes from IDA (Which can parse the elf header and knows the exact locations) in Hex Editor
// 4. Patch Bytes by hand
// 5. ....
// Why is this tool written like bullshit
// I don't have the mood to write it clean
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace Patch_ELF_PS3UserCheat
{
class Program
{
public struct ELFLocation
{
public uint Offset;
public uint OffsetFile;
public uint Size;
}
public struct Patch
{
public uint Offset;
public uint PatchValue;
}
public static uint byteToUInt(byte[] b)
{
return byteToUInt(b, 0);
}
public static uint byteToUInt(byte[] b, int offset)
{
uint a = (uint)b[offset] << 24;
a |= (uint)b[offset + 1] << 16;
a |= (uint)b[offset + 2] << 8;
a |= (uint)b[offset + 3] << 0;
return a;
}
public static byte[] uintToByte(uint i)
{
byte[] b = new byte[4];
b[0] = (byte)((i >> 24) & 0xFF);
b[1] = (byte)((i >> 16) & 0xFF);
b[2] = (byte)((i >> 8) & 0xFF);
b[3] = (byte)((i) & 0xFF);
return b;
}
public static int LoadElfPHDR(BinaryReader br, List Elf, uint phdr_offset, uint phdr_size, uint i)
{
byte[] phdr = new byte[phdr_size];
br.BaseStream.Seek(phdr_offset + phdr_size * i, SeekOrigin.Begin);
br.Read(phdr, 0, phdr.Length);
ELFLocation elfLocation = new ELFLocation();
elfLocation.OffsetFile = byteToUInt(phdr, 0x0C);
elfLocation.Offset = byteToUInt(phdr, 0x14);
elfLocation.Size = byteToUInt(phdr, 0x24);
Elf.Add(elfLocation);
return 0;
}
public static ushort byteToUShort(byte[] b, int offset)
{
ushort a = (ushort)(b[offset] << 8);
a |= (ushort)b[offset + 1];
return a;
}
public static List LoadElf(string FileName)
{
List Elf = new List();
BinaryReader br = new BinaryReader(File.OpenRead(FileName));
byte[] elfMagic = new byte[4];
br.Read(elfMagic, 0, 4);
if (elfMagic[0] != 0x7F ||
elfMagic[1] != 0x45 ||
elfMagic[2] != 0x4C ||
elfMagic[3] != 0x46)
{
Console.WriteLine("Elf Magic Wrong (" + FileName + ")");
br.Close();
return Elf;
}
br.BaseStream.Seek(0, SeekOrigin.Begin);
byte[] eHDR = new byte[0x40];
br.Read(eHDR, 0, eHDR.Length);
uint phdr_offset = byteToUInt(eHDR, 0x24);
ushort n_phdrs = byteToUShort(eHDR, 0x38);
ushort phdr_size = byteToUShort(eHDR, 0x36);
for (ushort i = 0; i < n_phdrs; i++)
{
int error = LoadElfPHDR(br, Elf, phdr_offset, phdr_size, i);
if (error == 1)
Console.WriteLine("Didn't Load phdr " + i + " of File " + FileName);
}
br.Close();
return Elf;
}
public static List LoadPatchFile(string FileName)
{
List patches = new List();
StreamReader sr = new StreamReader(File.OpenRead(FileName));
string input;
while(!string.IsNullOrEmpty(input = sr.ReadLine()))
{
string[] vals = input.Split(new char[] { ' ' });
if (vals.Length != 3 || vals[0] != "00002000")
{
Console.WriteLine("This is not an ELF Patch!");
patches.Clear();
return patches;
}
Patch p = new Patch();
try
{
p.Offset = uint.Parse(vals[1], System.Globalization.NumberStyles.AllowHexSpecifier);
p.PatchValue = uint.Parse(vals[2], System.Globalization.NumberStyles.AllowHexSpecifier);
patches.Add(p);
}
catch (Exception)
{
Console.WriteLine("Patch file wrong!");
patches.Clear();
return patches;
}
}
return patches;
}
static void Main(string[] args)
{
if (!File.Exists("EBOOT.ELF"))
{
Console.WriteLine("Couldn't find EBOOT.ELF");
Console.ReadLine();
return;
}
if (!File.Exists("PATCH.TXT"))
{
Console.WriteLine("Couldn't find PATCH.TXT");
Console.ReadLine();
return;
}
if (File.Exists("EBOOT.KDSBest.ELF"))
File.Delete("EBOOT.KDSBest.ELF");
List locations = LoadElf("EBOOT.ELF");
List patches = LoadPatchFile("PATCH.TXT");
for(int i = 0; i < patches.Count; i++)
{
ELFLocation? locationForPatch = null;
Patch p = patches[i];
for (int ii = 0; ii < locations.Count; ii++)
{
if (p.Offset >= locations[ii].Offset && p.Offset < locations[ii].Offset + locations[ii].Size)
{
locationForPatch = locations[ii];
break;
}
}
if (locationForPatch == null)
{
Console.WriteLine("Patch is not for this ELF!");
Console.ReadLine();
return;
}
else
{
p.Offset = p.Offset - locationForPatch.Value.Offset + locationForPatch.Value.OffsetFile;
patches[i] = p;
}
}
Console.WriteLine("Patching ELF...");
File.Copy("EBOOT.ELF", "EBOOT.KDSBest.ELF");
BinaryWriter bw = new BinaryWriter(File.OpenWrite("EBOOT.KDSBest.ELF"));
foreach (Patch p in patches)
{
bw.Seek((int) p.Offset, SeekOrigin.Begin);
bw.Write(uintToByte(p.PatchValue));
}
bw.Close();
Console.WriteLine("DONE!");
Console.ReadLine();
}
}
}
Also (via twitlonger.com/show/kjc7cn) We all love assembler or? And working with magic numbers. Try to hook GamePad System Wide. I do, but it is harder than thought. It's not working pretty well. We will see. Code is for REX (4.21) as CEX. If you change something in the setup it won't work LV2 Addresses are different. And my payloads like to jump around in LV2 in the right addresses.
To make things clear again. This is not fully working. Read below.

Looking forward to deliver the community a project CWcheat for PSP. I am up 20 hrs now. Go to bed.

Getting where I am now with a ps3 dev wiki which is not reachable and totally poor documentation of the ps3 scene was a lot screams and red bull.
Stay tuned, KDSBest
// The full Code for the hack
// It doesn't work yet, because of the 2. stage
// shellcode crash on read sometimes.
// Have to check things out
// Next I start to bring up a working version.
// Maybe someone finds a trick or has a tip in the // mean time
#define uint64_t unsigned long long
register uint64_t r3 __asm("r3");
register uint64_t r4 __asm ("r4");
register uint64_t r11 __asm ("r11");
uint64_t firstStageSC[] = {
// blr PREVENT SYSCALL 900 FROM DESTROY INFORMATION
// blr PREVENT SYSCALL 900 FROM DESTROY INFORMATION
0x4E8000204E800020ULL,
//li %r3, 0x80
//rldicr %r3, %r3, 48,15
0x38600080786383C6ULL,
//addi %r3, %r3, 0x7FFF
//rldicr %r3, %r3, 8,55
0x38637FFF786345E4ULL,
//addi %r3, %r3, 0xC0
//std %r5, 0(%r3)
0x386300C0F8A30000ULL,
//li %r3, 0
//b
0x38600000480345D0ULL
};
int firstStageSCLen = 5;
/*uint64_t secondStageSC[] = {
0xF821FFA1F8610058ULL,
0xFB21005038600080ULL,
0x786383C638637FFFULL,
0x786345E4386300C0ULL,
0xEB2300002FB90000ULL,
0x419E003CE8790000ULL,
0x786300222FA30000ULL,
0x419E002CA0790008ULL,
0x5463073E2FA300FFULL,
0x409E001C38600100ULL,
0x3880000038A00000ULL,
0x38C000003960017BULL,
0x44000002E8610058ULL,
0xEB210050E8210000ULL,
0x4E8000204E800020ULL
};*/
uint64_t secondStageSC[] = {
0xF821FFA1F8610058ULL,
0xFB210050F8810048ULL,
0x38600080786383C6ULL,
0x38637FFF786345E4ULL,
0x386300C0EB230000ULL,
0x388000017884C1E4ULL,
0x7FB92040409D0038ULL,
0x7C641B78A0790008ULL,
0xF8640010F8840020ULL,
0x5463073E2FA3000FULL,
0x409E001C38600100ULL,
0x3880000038A00000ULL,
0x38C000003960017BULL,
0x44000002E8610058ULL,
0xEB210050E8810048ULL,
0xE82100004E800020ULL
};
int secondStageSCLen = 16;
#define SCStartFirstStage 0x800000000008FC2CULL
#define SCStartSecondStage 0x800000000008FC8CULL
int __volatile__ main(int argc, const char* argv[])
{
for(int i = 0; i < firstStageSCLen; i++)
{
r4 = firstStageSC[i];
r3 = SCStartFirstStage + (8*i);
r11 = 0x07;
__asm("sc");
}
for(int i = 0; i < secondStageSCLen; i++)
{
r4 = secondStageSC[i];
r3 = SCStartSecondStage + (8*i);
r11 = 0x07;
__asm("sc");
}
// Patch li r3, 0 to first Stage Payload
r4 = 0x4BFCBA18FB410080ULL;
r3 = 0x80000000000C421CULL;
r11 = 0x07;
__asm("sc");
// Patch blr to second Stage Payload
r4 = 0x4BFCB9C07C7F07B4ULL;
r3 = 0x80000000000C42CCULL;
r11 = 0x07;
__asm("sc");
return 0;
}
// Shellcode development
// First Stage does it's job just well
// Saves the parameter to a memory adress lv2 will find
// but we need to save more parameters to precisly pick
// the package we want
// Second Stage crashes often on the read of userland
// data. And the check isn't right yet. I lack of time
// like always
// PS: Ignore the main Function it is just for
// compiler to have sth todo
// I copy the instructions with a IDA out of the ELF
#define uint64_t unsigned long long
register uint64_t sp __asm("r1");
register uint64_t r3 __asm("r3");
register uint64_t r4 __asm ("r4");
register uint64_t r5 __asm ("r5");
register uint64_t r6 __asm ("r6");
register uint64_t r7 __asm ("r7");
register uint64_t r8 __asm ("r8");
register uint64_t r9 __asm ("r9");
register uint64_t r11 __asm ("r11");
register uint64_t r25 __asm("r25");
void __volatile__ FirstStage()
{
__asm("li %r3, 0x80");
__asm("sldi %r3, %r3, 48");
__asm("addi %r3, %r3, 0x7FFF");
__asm("sldi %r3, %r3, 8");
__asm("addi %r3, %r3, 0xC0");
__asm("std %r5, 0x00(%r3)");
__asm("li %r3, 0");
}
void __volatile__ SecondStage()
{
__asm("stdu %r1, -0x60(%r1)");
__asm("std %r3, 0x58(%r1)");
__asm("std %r25, 0x50(%r1)");
__asm("std %r4, 0x48(%r1)");
__asm("li %r3, 0x80");
__asm("sldi %r3, %r3, 48");
__asm("addi %r3, %r3, 0x7FFF");
__asm("sldi %r3, %r3, 8");
__asm("addi %r3, %r3, 0xC0");
__asm("ld %r25, 0x0(%r3)");
__asm("li %r4, 0x01");
__asm("sldi %r4, %r4, 24");
__asm("cmpld cr7, %r25, %r4");
__asm("ble cr7, 0x38");
__asm("mr %r4, %r3");
__asm("lhz %r3, 0x8(%r25)");
__asm("std %r3, 0x10(%r4)");
__asm("std %r4, 0x20(%r4)");
__asm("clrlwi %r3, %r3, 28");
__asm("cmpdi cr7, %r3, 0xF");
__asm("bne cr7, 0x1C");
r3 = 0x100;
r4 = 0;
r5 = 0;
r6 = 0;
r11 = 0x017B;
__asm("sc");
__asm("ld %r3, 0x58(%r1)");
__asm("ld %r25, 0x50(%r1)");
__asm("ld %r4, 0x48(%r1)");
__asm("ld %r1, 0x00(%r1)");
__asm("blr");
}
int main(int argc, const char* argv[])
{
FirstStage();
SecondStage();
return 0;
}
My last code is a PoC for hooking a button combo while a game is running in any Game/Homebrew or XMB
// Shutdown on Gamepad L3+R3+Start+Select by KDSBest
// ONLY press those 4 buttons to Shutdown
// Works on REX 4.21 with CEX LV2 KERNEL
// DON'T compile with make or libs or so else
// the funny gcc will optimize the poke and uses other register
// ppu-lv2-gcc KDSBestGamepadHack.c -o KDSBestGamepadHack.elf
#define uint64_t unsigned long long
register uint64_t r3 __asm("r3");
register uint64_t r4 __asm ("r4");
register uint64_t r11 __asm ("r11");
uint64_t sc[] = {
/* SAVE ALL REGISTER */
//stdu %sp, var_60(%sp)
//std %r3, arg_58(%sp)
0xF821FFA1F8610058ULL,
//std %r4, arg_48(%sp)
//std %r5, arg_50(%sp)
0xF8810048F8A10050ULL,
//std %r6, arg_38(%sp)
/* READ SRC OF MEMCPY FROM SC 502 */
//ld %r6, 0(%r19)
0xF8C10038E8D30000ULL,
/* CUT OUT OTHER BUTTONS */
//rldicl %r6, %r6, 48,16
/* MAKE COMPARE REGISTER */
//li %r3, 0x7C
0x78C684023860007CULL,
//rldicr %r3, %r3, 16,47
//addi %r3, %r3, 0xF
0x786383E43863000FULL,
/* COMPARE AND DO NOT SHUTDOWN ON MISS */
//cmpw cr7, %r3, %r6
//bne cr7, loc_106D8
0x7F833000409E001CULL,
/* SHUTDOWN */
//li %r3, 0x100
//li %r4, 0
0x3860010038800000ULL,
//li %r5, 0
//li %r6, 0
0x38A0000038C00000ULL,
//li %r11, 0x17B
//sc
0x3960017B44000002ULL,
/* RESTORE REGISTER */
//noShutdown:
//ld %r3, arg_58(%sp)
//ld %r4, arg_48(%sp)
0xE8610058E8810048ULL,
//ld %r5, arg_50(%sp)
//ld %r6, arg_38(%sp)
0xE8A10050E8C10038ULL,
//ld %sp, arg_0(%sp)
//mr %r4, %r28
0xE82100007F84E378ULL,
//mr %r4, %r28 (DUMMY TO LAZY TO CALC NEW ADDR FOR BACK JUMP)
//mr %r4, %r28 (DUMMY TO LAZY TO CALC NEW ADDR FOR BACK JUMP)
0x7F84E3787F84E378ULL,
//b back
//dummy
0x4BFE2C884BFE2C88ULL
};
int scLen = 14;
#define SCStart 0x800000000008FC8CULL
uint64_t test123;
int __volatile__ main(int argc, const char* argv[])
{
// Copy Shellcode
for(int i = 0; i < scLen; i++)
{
r4 = sc[i];
r3 = SCStart + (8*i);
r11 = 0x07;
__asm("sc");
}
// Redirect to Shellcode
r4 = 0x4801D3147D635B78ULL;
r3 = 0x8000000000072978ULL;
r11 = 0x07;
__asm("sc");
return 0;
} POC - Hooking A Button Combo During A Game / App Or On The XMB (via twitlonger.com/show/kjuoro):
// Shutdown on Gamepad L3+R3+Start+Select by KDSBest
// ONLY press those 4 buttons to Shutdown
// Works on REX 4.21 with CEX LV2 KERNEL
// DON'T compile with make or libs or so else
// the funny gcc will optimize the poke and uses other register
// ppu-lv2-gcc KDSBestGamepadHack.c -o KDSBestGamepadHack.elf
#define uint64_t unsigned long long
register uint64_t r3 __asm("r3");
register uint64_t r4 __asm ("r4");
register uint64_t r11 __asm ("r11");
uint64_t sc[] = {
/* SAVE ALL REGISTER */
//stdu %sp, var_60(%sp)
//std %r3, arg_58(%sp)
0xF821FFA1F8610058ULL,
//std %r4, arg_48(%sp)
//std %r5, arg_50(%sp)
0xF8810048F8A10050ULL,
//std %r6, arg_38(%sp)
/* READ SRC OF MEMCPY FROM SC 502 */
//ld %r6, 0(%r19)
0xF8C10038E8D30000ULL,
/* CUT OUT OTHER BUTTONS */
//rldicl %r6, %r6, 48,16
/* MAKE COMPARE REGISTER */
//li %r3, 0x7C
0x78C684023860007CULL,
//rldicr %r3, %r3, 16,47
//addi %r3, %r3, 0xF
0x786383E43863000FULL,
/* COMPARE AND DO NOT SHUTDOWN ON MISS */
//cmpw cr7, %r3, %r6
//bne cr7, loc_106D8
0x7F833000409E001CULL,
/* SHUTDOWN */
//li %r3, 0x100
//li %r4, 0
0x3860010038800000ULL,
//li %r5, 0
//li %r6, 0
0x38A0000038C00000ULL,
//li %r11, 0x17B
//sc
0x3960017B44000002ULL,
/* RESTORE REGISTER */
//noShutdown:
//ld %r3, arg_58(%sp)
//ld %r4, arg_48(%sp)
0xE8610058E8810048ULL,
//ld %r5, arg_50(%sp)
//ld %r6, arg_38(%sp)
0xE8A10050E8C10038ULL,
//ld %sp, arg_0(%sp)
//mr %r4, %r28
0xE82100007F84E378ULL,
//mr %r4, %r28 (DUMMY TO LAZY TO CALC NEW ADDR FOR BACK JUMP)
//mr %r4, %r28 (DUMMY TO LAZY TO CALC NEW ADDR FOR BACK JUMP)
0x7F84E3787F84E378ULL,
//b back
//dummy
0x4BFE2C884BFE2C88ULL
};
int scLen = 14;
#define SCStart 0x800000000008FC8CULL
uint64_t test123;
int __volatile__ main(int argc, const char* argv[])
{
// Copy Shellcode
for(int i = 0; i < scLen; i++)
{
r4 = sc[i];
r3 = SCStart + (8*i);
r11 = 0x07;
__asm("sc");
}
// Redirect to Shellcode
r4 = 0x4801D3147D635B78ULL;
r3 = 0x8000000000072978ULL;
r11 = 0x07;
__asm("sc");
return 0;
} Ni No Kuni Max EXP Cheat by
KDSBest
Ni No Kuni Max EXP ps3usercheat hack (You can use my Tool to apply it!): 00002000 006F96BC 38007FFE
Shortly following,
AnoRelease (aka
KDSBest and
CFWProphet) made available a
Ni No Kuni EXP Hack.pdf stating:
Hi, it’s me AnoRelease, look what I got hear for ya.
Greetings
AnoRelease
Below is a FAQ Interview from him as well:
Q.1) So it appears you are known by another name, what is it, who are you ?
A) I’m a Chinese hacker and yeah I’m known as different persons. I guess you have to read between the line. I get hacks from a Team and I release them for them. They want to stay underground. This is how this works after all. Who am I? A leaker with the permission to leak the stuff. I’m the Chinese hacker that never existed after all.
Q.2) Rumour has it that you also released the Cex > Dex method, is that true ?
A) Yeah I wasn’t able to register on PS3HaX back then, now I could and so it was released on PS3News. A site which I don’t visit on my own, but I thought interesting news will spread anyway. I just tested the algorithm and got permission to release it. Basically the happy (fairy tail) guy was the brain behind it. Most people in the scene should know who he is. Even if he is mostly underrated.
Q.3) Why did you release it ?
A.) Why not make it public? I asked if I can release it and was told that the owner doesn’t care if it is out there, as long as his name isn’t exposed.
Q.4) Will you be releasing anything else ?
A.) This depends on the brilliant hackers behind all this. I just say AC1D

.
Q.5) What do you think of the lv0 keys release ?
A.) Oh I think I know who is behind it, but of course I have no proof. They somehow claim they were forced to release it, but how are they forced to? So they gave it to someone else in the first hand. In my opinion it is their problem after all and I don’t believe that they didn’t want to release it. They checked cex > dex and nothing special happened because of the Anon release maybe and saw how a release is done.
Q.6) What do you think of the PS3 scene ?
A.)I like it. A good amount of drama and epic stories. It is/was a quite impressive time so far. I can’t wait for the next gen consoles. Sometimes it is sad how no brainers talk about the devs and it’s sad how others put them on a throne.
Q.7) What do you think about graf_chokolo ?
A.) His story is sad at the end. He is very inspiring for many hackers in the scene I guess. No one reached his knowledge about the PS3 so far and he will always be the number one hacker in our hearts. Many kudos for him.
Q.8) I hear you are a big fan of GeoHot, what is it you like about him ?
A.) I like it when people act dumb and go to TV. It’s like a robber ringing the bell afterwards and tell the house owner I just stole your stuff. Like my hacker friend (happy [fairy tail] guy) always says “Hacking is an underground job after all”. I don’t know if he ever said that on a forum, but he told me often enough. I like his humour I guess, the rap video was funny as hell. I wish he did more of them, but going on TV is not a well idea. I heard rumours he lost his job at Facebook too. He is just too ego I guess and no team player after all.
Q.9) Will you be working on any Next Gen consoles ?
A.)If I get the chance I will of course. The PS4 Press release was awesome in my opinion. I’m a bit happy about the X86 architecture and a bit sad. X86 is full of garbage because it grew with the time and still is backward compatible. AMD and Intel both worked that whore and that is how she looks like in my opinion.
Q.10) Is there anything you would like to add ?
A.) I would like to thank some people: KDSBest, cfwprophet, Team AC1D, GregoryRasputin, Pockets69, graf, durandal, eussNL, naehrwert and everything else I forgot of course.
Finally,
HotNsexy has shared a
Dead Space 3 PS3 Cheat PKG for 1.0 stating the following:
Ok. I'm on rebug 4.21.2 and I succeed to make a pkg cheat for Dead Space 3 BLUS31053 Its full heath and stasis and infinite ammo, for version 1.0 if you have 1.01 installed delete it and then install this pkg:
If you get a black screen, just take out your BD from drive, restart console go to MM and start the game (no BD mirror or what so ever), just start the game and then start it from APP/HOME when prompt to update to 1.01 just skip it and enjoy... All greats to "medo" that released the codes.
He also made available an
Infinite Ammo & Bottomless Clip stating: Again its for version 1.00 if you update 1.01 installed delete it and then install this pkg. Try it as I didnt try but I think it will work, cause Im currently playing with the other one hehe... Tried with patch update but always give me a black screen.
Download: http://rghost.net/42090630 / http://rghost.net/42099639 / http://rghost.net/42111476 (Removed) / http://rghost.net/42114850 / http://rghost.ru/42114850 / http://www.dll-files.com/dllindex/dll-files.shtml?msvcr100 (Required)
From the included ReadMe file: Guys, here is an updated version of pfdtool.
Please test it carefully because I have no time at the moment to test it by myself.
Changelog:
Support of PARAM.PFD for trophies (without keys, of course)
Support of PARAM.PFD v4 which used in a newer SDK
Fixed a bug with verify operation on signature hashes
Now you can use a list of product codes delimeted by '/' (slash), for example: [BLUS31142/BLES01403], they should use the same disc hash key and secure file IDs
Show an information about .PFD type and version
The format for 'global.conf' is different. Please add these changes to your files:
1. Add a new parameter called 'user_id' which set the user identifier (the same number as used in your home folder: /dev_hdd0/home/[user_id]/)
2. Add a new parameter called 'keygen_key'. Open 'Talk:Keys' page on the PS3DevWiki and search for string 'KeygenV4'
3. Rename the parameter 'param_sfo_key' to 'savegame_param_sfo_key' (see below)
4. There a bunch of new keys for trophies: 'trophy_param_sfo_key', 'tropsys_dat_key', 'tropusr_dat_key', 'troptrns_dat_key', 'tropconf_sfm_key' and they are not public so left them as XX.
; Global settings
[global]
authentication_id=1010000001000003
console_id=
user_id=00000001
syscon_manager_key=
keygen_key=
savegame_param_sfo_key=
trophy_param_sfo_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
tropsys_dat_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
tropusr_dat_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
troptrns_dat_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
tropconf_sfm_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
fallback_disc_hash_key=
Disc hash keys are sent to the PS3 by the Blu Ray Drive itself (well, not the actual disc hash key but some data from the disc which will be encrypted after that and used as a disc hash key).
PFDTool 0.2.1 Changelog:
Fixed issues with the file size.
PFDTool 0.2.2 Changelog:
Now encrypt and decrypt operations update hashes automatically (be sure to use all keys!).
Fixed another issue with the file size of modified files.
Removed a verbose flag because it is not used at the moment.
More PlayStation 3 News...
Also, Demario, no, can't be used on a non-modded ps3, I'm pretty sure. As the instructions say to replace files in dev_flash... on the console.
Anyway, If I were you, dev, I wouldn't worry about people hacking their trophies. Because anyone on 4.21REX can do that and sync with servers as normal. since there are already tools out that can allow you to do it, I wouldn't worry about releasing a more complex process that'd allow one to do the same thing. That's just me though.
Welcome to legend of zelda savegame PS3 LOL
Download: http://www.mirrorcreator.com/files/DH9NXOUX/ / https://rapidshare.com/#!download|78p8|2747838316|strawberry.7z|510|0|0 (Mirror) / https://rapidshare.com/#!download|33p5|897689842|pfdtool_update.7z|25|0|0 / http://aldostools.org/temp/BruteforceSaveData.rar by aldostools
From Twitter: A save game tool in a testing phase before tomorrow's release
Trophies will work in the next release but I'm afraid to add support for them because you can easily hack your trophies with it and synchronize them with the server. I'll release a port of my dumpers to 4.21 soon. I'm working on a new payload which I think allow me to not to replace sprx. And newer version will write keys directly to the file.
You don't need to replace modules and launch a dumper if you only want to resign files. A dumper required only for extracting a save game key directly from the memory of the game. And trophy keys are the same for every console because they are constant. In addition, you don't need to extract/read/write keys every time.
A .PFD file for save games is a bit complex than trophy's .PFD. And games uses different keys for their save files. Trophy keys are constants as I mentioned above. I don't like a name PSID because there are two different PSIDs on the PS3: PSID and OpenPSID. So I call the first one as Console ID (it should contains the Target ID of your console). The second one seems to be random bytes (or encrypted bytes) which widely used on PSN stuff.
There are different ways to get your console ID. If you have a flasher then you can make a dump of your flash, then locate your EID0 there and the first 16 bytes will be your Console ID. The second way is using a proxy server as you mentioned. A PS3 will send your console ID in different queries (for example, when you try to login to PSN, when it fetches your act.dat, etc).
It used as a HMAC key to hash a file content along with another keys. I suppose that current firmwares don't check these hashes. That's why Xploder don't need your Console ID. You can check it by yourself making a different console ID and resign your save game and then try to load it. But I want to generate all hashes correctly. That's why I used all real parameters. But you can omit some of them.
You don't need to specify a full file path, only a file name inside a folder (actually it is an entry name inside .PFD). By the way, specifying a zero offset causes a very slow processing. Because .ELF files have a 70-80% of code and not data. And I recommend to use a dumper instead of bruteforcing.
It is better than Xploder because it is not server based, so you can do what you want with your save game and I think Xploder doesn't allow you to decrypt/encrypt data (I can be wrong because I don't use the Xploder's software). Trophies are also supported but not in current version because I didn't include keys for them in the release.
From the included ReadMe Files: Data Dumper (data_dumper.pkg)
Requirements:
3.55 CFW (e.g. Kmeaw)
MultiMAN or original dev_blind application and FTP client
1. Install Data Dumper (data_dumper.pkg) if you didn't installed it before. It is a homebrew application to dump a data from some LV2 memory to a file: /dev_hdd0/tmp/dumps.bin
2. Every time you're want to dump a data from my applications (e.g. Klicensee Dumper) you're need to reboot a console to clear a data storage in LV2 memory.
3. Run a dumper loader, then start your game.
4. After exiting from the game you need to run Data Dumper, you will hear some beeps.
5. Then run any FTP client (e.g. builtin in MultiMAN) and download a dumped data from /dev_hdd0/tmp/dumps.bin.
Disc Hash Key Dumper (disc_hash_key_dumper_loader.pkg)
Requirements:
3.55 CFW (e.g. Kmeaw)
MultiMAN or another FTP client
1. Install Data Dumper (data_dumper.pkg) if you didn't installed it before. It is a homebrew application to dump a data from some LV2 memory to a file: /dev_hdd0/tmp/dumps.bin A data which stored there is written by dumper loaders, e.g. by Disc Hash Key Dumper.
2. Install Disc Hash Key Dumper Loader (disc_hash_key_dumper_loader.pkg). It stores a disc hash key if your game is not a PSN/SEN game.
3. Reboot a console to clear a data storage in LV2 memory.
4. Now you need to start Disc Hash Key Dumper Loader, then start your game.
5. After exiting from the game you need to run Data Dumper, you will hear some beeps.
6. Then run any FTP client (e.g. builtin in MultiMAN) and download a dumped disc hash key from /dev_hdd0/tmp/dumps.bin.
PFDTool & SFOPatcher Beta version (pfd_sfo_tools: pfdtool.exe and sfopatcher.exe)
Some notes about keys:
1. 'Syscon Manager Key' (syscon_manager_key): a constant key from a Syscon Manager.
2. 'PARAM.SFO Key' (param_sfo_key): a constant key used for PARAM.SFO entry.
3. 'Fallback Disc Hash Key' (fallback_disc_hash_key): a constant key used for discless PSN/SEN games.
4. 'Authentication ID' (authentication_id): an additional constant key.
5. 'Console ID' (console_id): your unique console identifier.
6. 'Secure File ID' (secure_file_id): per a game file, almost the same for all files of the game, specified by a game developer (used to encrypt save game files and to hash their content).
7. 'Disc Hash Key' (disc_hash_key): per a game disc or a constant key for PSN/SEN games (used to hash a file entry). You need to use an original game disc and extract it from the disc. For PSN/SEN games they used a fallback disc hash key. 'Disc Hash Key' hash is not verified by PS3 so you can omit this key.
Attention! Some game developers (for example, creators of Metal Gear Solid 4) uses a custom additional encryption layer for their save files. In these cases you need to reverse-engineer the game itself.
1. Paste your console specific data inside 'global.conf'. You need to paste your console ID (IDPS) and needed keys. Open 'Keys' page on the PS3 Dev Wiki and look into the 'Key lists - sc_iso module 1.00-4.00'. There is a 'Syscon Manager Key' at the #2.
Open 'Talk:Keys' page on the PS3 Dev Wiki and search for strings 'Params' and 'Fallback key'. They are 'PARAM.SFO Key' and 'Fallback Disc Hash Key'.
2. Prepare required keys for the game and place them inside 'games.conf'. You need these keys only to verify your .PFD file (it is an optional feature) or to play with save game data encryption. So if you want only to resign a foreign save game then you need only your console ID and skip some hash updates by specifying some flags at 'pfdtool'.
For secure file IDs you can specify an exact file name or use wildcards to match a file name (for example, you don't need to specify the same key for all game files if the game uses the same key for all of them). A disc hash key can be extracted only from an original game disc. For PSN/SEN games a fallback disc hash key is used. This type of hash is not verified by PS3 so you can omit its key but they can add a check in the future firmware versions.
So if you want to use 'Disc Hash Key'=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX and 'Secure File ID'=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY for a save file named 'SAVE.DAT' and your game have a product code='BLZZZZZZZ' place them inside a config file:
[BLZZZZZZZ]
disc_hash_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
secure_file_id:SAVE.DAT=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
1) You may also need to patch a copy protection flag inside your PARAM.SFO because some games uses it:
a) 'Rebuild Database' in the system recovery menu. Be careful with it because it can corrupt your file system in rarely cases.
b) Manually copy your save game to the corresponding folder by using a FTP client (for example, embedded in MultiMAN).
2) You need to patch a foreign PARAM.SFO with data from your PARAM.SFO (the tool uses your account ID, save parameters, optional title and description values):
Make sure that you specify a game setting set (from 'games.conf') otherwise you will get some fails.
a) You will always get a 'Disc Hash Key FAIL' if you don't use a valid disc hash key. It is not important because it is not checked.
b) If you will get a 'Console ID Hash FAIL' then you use a wrong console ID.
c) If you will get a 'Secure File ID Hash FAIL' then you use a wrong secure file ID for a corresponding file.
You don't need to get a valid console ID for foreign save, just use your console ID and update a save game.
1) To list all entries from PARAM.PFD use a 'list' command:
pfdtool -g -d
Once again, if you want to easily resign a save game (as publicly known commercial tools does) you just need to place your console ID and use the command:
I will be glad to see if someone will write a batch script for automate the process or a GUI application because I have no time to do it personally. Also will be nice if someone will create a centralized storage of game setting' sets to find keys there. In the future the tool needs to be improved for error handling because it is poor at the moment. I will plan to improve it in further versions.
Secure File ID Dumper (secure_file_id_dumper: ps3_savedata_plugin.sprx, ps3_savedata_plugin_game.sprx, ps3_savedata_plugin_game_mini.sprx and secure_file_id_dumper_loader.pkg)
A secure file ID is specified by developer of the game. There are can be more than one secure file IDs, one ID per file. There are cases when these bytes stored at EBOOT.ELF as is, so you can use my PFD tool to bruteforce them by specifying a PARAM.PFD and file name.
In other cases you need skills of reverse-engineering and a disassembler to find a secure file ID. That's why I had created this dumper. It dumps a secure file ID from memory itself.
Requirements:
3.55 CFW (e.g. Kmeaw)
MultiMAN or original dev_blind application and FTP client
1. Install Data Dumper (data_dumper.pkg) if you didn't installed it before. It is a homebrew application to dump a data from some LV2 memory to a file: /dev_hdd0/tmp/dumps.bin. A data which stored there is written by dumper loaders, e.g. by Klicensee Dumper.
2. Install Secure File ID Dumper Loader (secure_file_id_dumper_loader.pkg). It stores a file path to the file which used in your save data and a secure file ID of this file.
3. Now you need to replace original libraries located at dev_flash/vsh/module by modified versions. There are ps3_savedata_plugin.sprx, ps3_savedata_plugin_game.sprx, ps3_savedata_plugin_game_mini.sprx. I use a dev_blind feature from MultiMAN, you can use any other way. Don't forget to backup original files.
4. Reboot a console to clear a data storage in LV2 memory.
5. Now you need to start Secure File ID Dumper, then start your game.
6. Then you need to make a game save.
7. After exiting from the game you need to run Data Dumper, you will hear some beeps.
8. Then run any FTP client (e.g. builtin in MultiMAN) and download dumped secure file IDs from /dev_hdd0/tmp/dumps.bin.
9. Restore original libraries ps3_savedata_plugin.sprx, ps3_savedata_plugin_game.sprx, ps3_savedata_plugin_game_mini.sprx using the same method as at step 3.
Notes: Not all of these libraries used with all games, there is one library per game type.
From gingerbread: Save Data Information
; Game settings
; "Alice: Madness Returns�"
[BLUS30607]
;disc_hash_key=
secure_file_id:*=0A0B01070D06010C09050206090C0A01
; "Assassin's Creed Brotherhood"
[BLES00909]
;disc_hash_key=
secure_file_id:*=0D0E0A0D0B0E0E0F0A0A0A0A0A0A0A0A
; "Assassin's Creed Revelations"
[BLES01384]
;disc_hash_key=
secure_file_id:*=0D0E0A0D0B0E0E0F0A0A0A0A0A0A0A0A
; "Assassin's Creed 3"
[BLES01667]
;disc_hash_key=
secure_file_id:*=0D0E0A0D0B0E0E0F0A0A0A0A0A0A0A0A
; "Batman Arkham Asylum"
[BLES00503]
;disc_hash_key=
secure_file_id:*=0A0B01070D06010C09050206090C0A01
; "Batman Arkham City"
[BLES00926]
;disc_hash_key=
secure_file_id:*=0A0B01070D06010C09050206090C0A01
; "Battlefield 3" (FAIRLIGHTWASHERE)
[BLES01275]
;disc_hash_key=
secure_file_id:*=464149524C4947485457415348455245
; "Borderlands"
[BLUS30386]
;disc_hash_key=
secure_file_id:*=0A0B01070D06010C09050206090C0A01
; "Burnout Paradise The Ultimate Box"
[BLES00455]
;disc_hash_key=
secure_file_id:*=4DE9DD39677742058E1F4FBD1F18A15C
; "Cars 2"
[BLUS30725]
;disc_hash_key=
secure_file_id:*=8B0F7E73B74A96C2477A7895DEF9C883
; "Cartoon Network Punch Time Explosion XL"
[BLUS30834]
;disc_hash_key=
secure_file_id:*=0D0E0F0E0C0A080D0B0A05050F0A0C0E
; "Castlevania: Lord of Shadow"
[BLES01047]
;disc_hash_key=
secure_file_id:*=0F010F020F030F040F050F060F070F08
; "Disney Universe"
[BLUS30773]
;disc_hash_key=
secure_file_id:*=3536336A775E3825246E773837683437
; "Grand Turismo 5"
[BCES00569]
disc_hash_key=13D222C834F7F2BD2E4CB8CED51B1D94
secure_file_id:*=BDBD2EB72D82473DBE09F1B552A93FE6
; "God of War III"
[BCES00510]
;disc_hash_key=
secure_file_id:*=D6485E21CFB9078544FB0183E823923E
; "God of War Collection HD"
[BCUS98229]
;disc_hash_key=
secure_file_id:*=822142D227749706622546E6E7200627
; "Hitman Absolution"
[BLES01403]
;disc_hash_key=
secure_file_id:*=20534C6CBB7F435388C3E9659B6F6989
; "inFAMOUS 2"
[BCUS98125]
;disc_hash_key=
secure_file_id:*=E64A76385EF04A71B080A056F5D3FDF7
; "inFAMOUS: Festival of Blood"
[NPUA80657]
;disc_hash_key=
secure_file_id:*=E64A76385EF04A71B080A056F5D3FDF7
; "KILLZONE 2" (123456781234567.)
[BCES00081]
;disc_hash_key=
secure_file_id:*=31323334353637383132333435363700
; "KILLZONE 3" (123456781234567.)
[BCES01007]
;disc_hash_key=
secure_file_id:*=31323334353637383132333435363700
; "L.A. Noire" (LANoireSaveData.)
[BLUS30554]
;disc_hash_key=
secure_file_id:*=4C414E6F697265536176654461746100
; "LEGO Batman"
[BLUS30175]
;disc_hash_key=
secure_file_id:*=12010B10080605120E0519080F150708
; "LEGO Batman 2"
[BLES01613]
;disc_hash_key=
secure_file_id:*=12010B10080605120E0519080F150708
; "LEGO Harry Potter Years 1-4"
[BLUS30437]
;disc_hash_key=
secure_file_id:*=12010B10080605120E0519080F150708
; "LEGO Harry Potter Years 5-7"
[BLES01348]
;disc_hash_key=
secure_file_id:*=12010B10080605120E0519080F150708
; "LEGO Pirates of the Caribbean"
[NPEB00654]
;disc_hash_key=
secure_file_id:*=12010B10080605120E0519080F150708
; "LEGO® Star Wars® III: The Clone Wars�"
[BLUS3054]
;disc_hash_key=
secure_file_id:*=12010B10080605120E0519080F150708
; "LEGO Star Wars The Complete Saga"
[BLES00121]
;disc_hash_key=
secure_file_id:*=12010B10080605120E0519080F150708
; "Medal of Honor"
[BLES00860]
;disc_hash_key=
secure_file_id:*=0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F
; "Metal Gear Solid" (SOLIDMETAL4GEAR.)
[BLUS30109]
disc_hash_key=DD297C809BCAC34E23D3C1E6ACA22317
secure_file_id:*=534F4C49444D4554414C344745415200
; "Mirror's Edge"
[BLES00322]
disc_hash_key=845D434A390342117E5DB9066BDEFF0F
secure_file_id:*=0A0B01070D06010C09050206090C0A01
; "ModNation� Racers"
[BCUS98167]
;disc_hash_key=
secure_file_id:*=11223344556677889910A1B1C1D1E1F1
; "Mortal Kombat 9"
[BLUS30522]
;disc_hash_key=
secure_file_id:*=01020103010401050106010701080109
; "MotorStorm Apocalypse"
[BCES00484]
;disc_hash_key=
secure_file_id:*=17FD23A15B0946C1DB35BBE5AC928F77
; "Need For Speed: Shift" (01234567HGFEDCBA)
[BLES01066]
;disc_hash_key=
secure_file_id:*=30313233343536374847464544434241
; "Need For Speed: Hot Pursuit" (CgAlaskaSaveGame)
[BLES00949]
;disc_hash_key=
secure_file_id:*=4367416C61736B615361766547616D65
; "Need For Speed: Most Wanted" (CgHawaiiSaveGame)
[BLES01659]
;disc_hash_key=
secure_file_id:*=43674861776169695361766547616D65
; "Phineas & Ferb Across the 2nd Dimension"
[BLUS30726]
;disc_hash_key=
secure_file_id:*=8714994222255479301AF1C22DDA4154
; "Ratchet & Clank Tools of Destruction"
[BCES00052]
;disc_hash_key=
secure_file_id:*=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
; "Ratchet & Clank Future: A Crack in Time"
[BCUS98124]
;disc_hash_key=
secure_file_id:*=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
; "Ratchet & Clank® Future: Quest for Booty�"
[NPUA80145]
;disc_hash_key=
secure_file_id:*=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
; "Ratchet & Clank All 4 One"
[BCES00226]
;disc_hash_key=
secure_file_id:*=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
; "Resistance 2"
[BCES00226]
;disc_hash_key=
secure_file_id:*=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
; "Resistance 3"
[BCES00226]
;disc_hash_key=
secure_file_id:*=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
; "Resident Evil 5"
[BLUS30491]
disc_hash_key=F4E44339C6AEBCF1ED408E033158F85A
secure_file_id:*=0D0D0D0D0F020D0D0C0D080D0D0D070D
; "Skyrim"
[BLUS30778]
;disc_hash_key=
secure_file_id:*=01AD4F9DFED22E37998BDDC57E135935
; "Uncharted 3"
[BCES01175]
;disc_hash_key=
secure_file_id:*=23548914547891467574812548227533
; "TimeShift"
[BLES00159]
;disc_hash_key=
secure_file_id:*=0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F
; "Toy Story 3"
[BLES00876]
;disc_hash_key=
secure_file_id:*=8B0F7E73B74A96C2477A7895DEF9C883
; "X-Men: Destiny"
[BLES01351]
;disc_hash_key=
secure_file_id:*=7D555F62B68E70199A9446F5A4EF9214
So for game saves they are a static key embedded in the prx module, your unique console ID, disc hash key and authentication ID (it is static too). So if you take a foreign save game you probably don't have its console ID and the disc hash key (you can only take a disc hash key if you have an original game disc for it).
Also if you don't have a secure file ID and you are lazy to get it (by bruteforcing it/reversing the game executable/dumping from the memory) then you can't calculate hashes for game files too. That's why I created two different modes of signing/checking - one for these people who want only to resign a foreign save game and nothing more and the second one is for people who have all data to update all hashes for their save game.
The first mode called partial update/check (see the corresponding option at pfdtool), and for full update you don't need to specify this option. The partial update only updates hashes which are easy to calculate (based on static data such as authentication ID and console ID).
So if you have a filled global.conf (all keys and your console ID) and run a partial update on the foreign save game to resign it for your console then you got a fully working resigned save game.
But if you want to modify save game files which are encrypted then you need to get all data and specify them in configuration files and then use a full update to resign it. By the way the PS3 itself doesn't check some hashes such as a hash which was calculated using a disc hash key.
So you can omit some of them (I only omitted the hash which I said and it works fine). But I don't know what situation will be in the future, maybe S0ny will add a check for them.
Finally, from aldostools: I have updated the BruteforceSaveData tool with the suggested changes.
TIP: Hold Ctrl key and press Enter or double-click on a game to skip the bruteforce using the keys in the database. This feature can be use useful for savegames with large data (eg. >4MB and that you already know that the key is unknown)
More PlayStation 3 News...