

NOTE: THIS TOOL DOES NOT DECRYPT OR ENCRYPT RETAIL SELF/SPRX FILES.
IT ALSO DOES NOT ENABLE PLAYING OF COPIED GAMES IN ANY WAY.




SelfTool v1.00  -  xorloser 2008-2009




:: Overview

SelfTool is a command line based tool that manipulates SELF/SPRX files.
SELF/SPRX files are Secure or Signed ELF and PRX files for Playstation 3.

A SELF file is like an exe file, a SPRX file is like a dll file.

EBOOT.BIN files from Playstation 3 discs are SELF files, however there
is a layer of disc encryption that needs to be removed from the file
before it is readable. Doing so is outside the scope of this tool.




:: Usage

Usage:    SelfTool <options> <self filename>
Options:
          -b <base filename> = extract base file from self file
          -s <elf filename>  = create self/sprx file from elf file
          -o <out filename>  = output altered self file to a new file
          -p = print info (a/s/e/i/x/y)
               a = all info
               s = self info
               e = elf info
               i = imports
               x = exports
               y = symbols
               o = offsets for elf info
          -c = compress self file (0/1)
               0 = uncompressed
               1 = compressed
          -e = encrypt self file (0/1)
               0 = unencrypted
               1 = encrypted
          -m = machine type (0/1)
               0 = debug
               1 = retail
          -t = set type (0/1/2/a/l/n/p/s)
               0 = lv0
               1 = lv1
               2 = lv2
               a = application
               l = loader
               n = npdrm application
               p = ps2 emulator
               s = isolated spu
          -a <authority id> = set program authority id
          -f = force retail crypting to appear successful




:: Usage Examples

* Print basic info about a self file to console:
selftool file.self

* Print all info about a self file to console:
selftool -pa file.self

* Print extended info about a self file to a file:
selftool -pa file.self > info.txt

* Extract the basefile from file.self into file.elf:
xextool -b file.elf file.self

* Convert an uncompressed self into a new compressed self:
xextool -c1 -o compressed.self uncompressed.self




:: Misc Notes

The "authority id" is a 64bit value whose values I don't understand.

Forcing retail crypting to appear successful will result in problems in 99%
of the cases, however in the other 1% it can provide nice info such as
unencrypted symbols.




:: History

v1.0
	+ this is the first version of the tool.
	
	+ encryption/decryption of retail files is not supported.
	
	+ there are may be bugs that will be ironed out in future versions.

+ = added feature
- = removed feature
* = fixed or changed feature




:: Bugs / To Do

No bugs that I know of at this stage.
Support for encryption/decryption of retail files needs to be added if
it is ever worked out :)




:: Homepage

http://www.xorloser.com


