76w ago - This weekend PlayStation 3 developer
PsDev has released a homebrew application called PS3 CFW Folder Checker along with the source code as well.
Download:
PS3 CFW Folder Checker Homebrew App and Source Code
From the included ReadMe file: Just place the .exe file in your flash drive where you have your folders and cfw setup run it and it will tell you if there is a typo, the foldername correct, the pup name correct and then if so it tell you your ready to go.
Took me 5 min.
Follow me on twitter at
RealPsDev
Source Code:
#include <Windows.h>
#include <direct.h>
#include <iostream>
#include <fstream>
#include <string>
#pragma comment(lib, "shlwapi.lib")
#include <shlwapi.h>
using namespace std;
typedef unsigned int u32;
/*******************************************************************************
* Check if a file or a folder exists
******************************************************************************/
bool Exists(string Path)
{
return GetFileAttributes(Path.c_str()) != INVALID_FILE_ATTRIBUTES;
}
/*******************************************************************************
* Quit the application with a message
******************************************************************************/
void Quit(string Message)
{
cout << Message.c_str() << "\r\nPress any key to continue...";
cin.get();
exit(0);
}
/*******************************************************************************
* Entry Point
******************************************************************************/
int main(int argc, char* argv[])
{
// - Show banner
cout << "*****************************************************\r\n";
cout << "**\r\n";
cout << "** \tCFW Checker\r\n";
cout << "**\tFollow me on twitter @ RealPsDev\r\n";
cout << "**\tI was bored made in 5min\r\n";
cout << "**\r\n";
cout << "*****************************************************\r\n\r\n";
// - Get CFW Path
char ExePath[MAX_PATH];
GetModuleFileName(NULL, ExePath, MAX_PATH);
string SourcePath = string(ExePath);
SourcePath.erase(SourcePath.rfind("\\"));
// - Verify 'Cfw' folder
SourcePath += "\\PS3\\UPDATE\\PS3UPDAT.PUP";
cout << "- Checking see if Folders For CFW are correct" << endl;
if (!Exists(SourcePath))
Quit("Error: Folders are not correct(" + SourcePath + ")\r\n");
Quit("\r\nYou are now ready to the USB into the ps3!\r\n");
return 0;
}
Finally, from
PsDev on PS3 lv0: http://pastie.org/2967339
From PsDev. Nothing Important Just some lv0 stuff / whistle
SELF header
elf #1 offset: 00000000_00000090
header len: 00000000_00000500
meta offset: 00000000_000001e0
phdr offset: 00000000_00000040
shdr offset: 00000000_000e7830
file size: 00000000_000e7640
auth id: 1ff00000_01000001 (Unknown)
vendor id: ff000000
info offset: 00000000_00000070
sinfo offset: 00000000_00000140
version offset: 00000000_00000180
control info: 00000000_00000190 (00000000_00000070 bytes)
app version: 4.0.0
SDK type: Retail (Type 0)
app type: level 0
Control info
control flags:
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
file digest:
6e bc 16 e2 38 12 18 df d0 02 18 e1 66 2b fe 5b 65 50 f7 5a
Section header
offset size compressed unk1 unk2 encrypted
00000000_00010500 00000000_00000c70 [NO ] 00000000 00000000 [YES]
00000000_00020500 00000000_000c7380 [NO ] 00000000 00000000 [YES]
Encrypted Metadata
unable to decrypt metadata
ELF header
type: Executable file
machine: PowerPC64
version: 1
phdr offset: 00000000_00000040
shdr offset: 00000000_000e73c0
entry: 00000000_00000c60
flags: 00000000
header size: 00000040
program header size: 00000038
program headers: 2
section header size: 00000040
section headers: 10
section header string table index: 9
Program headers
type offset vaddr paddr
memsize filesize PPU SPE RSX align
LOAD 00000000_00010000 00000000_00000000 00000000_00000000
00000000_00000c70 00000000_00000c70 rwx --- --- 00000000_00010000
LOAD 00000000_00020000 00000000_08000000 00000000_08000000
00000000_000cc250 00000000_000c7380 rwx --- --- 00000000_00010000
Section headers
[Nr] Name Type Addr ES Flg Lk Inf Al
Off Size
[00] <no-name> NULL 00000000_00000000 00 00 000 00
00000000_00000000 00000000_00000000
[01] <no-name> PROGBITS 00000000_00000000 00 wae 00 000 08
00000000_00010000 00000000_00000c70
[02] <no-name> PROGBITS 00000000_08000000 00 wa 00 000 04
00000000_00020000 00000000_00017358
[03] <no-name> PROGBITS 00000000_08017360 00 a 00 000 16
00000000_00037360 00000000_0002c748
[04] <no-name> PROGBITS 00000000_08043ab0 00 ae 00 000 16
00000000_00063ab0 00000000_0007e5f8
[05] <no-name> PROGBITS 00000000_080c20b0 00 ae 00 000 08
00000000_000e20b0 00000000_00004200
[06] <no-name> PROGBITS 00000000_080c62b0 00 ae 00 000 08
00000000_000e62b0 00000000_00000080
[07] <no-name> PROGBITS 00000000_080c6330 00 ae 00 000 08
00000000_000e6330 00000000_00001050
[08] <no-name> NOBITS 00000000_080c7380 00 ae 00 000 128
00000000_000e7380 00000000_00004ed0
[09] <no-name> STRTAB 00000000_00000000 00 00 000 01
00000000_000e7380 00000000_0000003d
If someone really needs this, anyone can write such app for path checks and identifying CFW version, even me (just say so, it's half an hour job in any programming language, except assembler