Go Back  
Reply
 
Thread Tools
Old 07-24-2012   #21
stadicon
Member
 
Join Date: Oct 2009
Posts: 86
Likes: 15
Liked 20 Times in 16 Posts
Mentioned: 0 Post(s)
Tagged: 0 Thread(s)
Originally Posted by samson View Post
an eboot.bin is a .self just drag the eboot.bin over to "eboot decrypt" and you'll get an eboot.elf, then drag the pkg folder over to "pkg repack" and you should get a debug pkg.
The problem about showtime is that it only has a basic EBOOT.BIN while the actual application is an external .self (i guess the EBOOT.BIN just loads the self)! So, i managed to decrypt the EBOOT.BIN, already, and replace it through ftp (pkg repack won't work with this app and the command window won't stay open so i can see the error message) and the only think happened is that the error message changed (80010017 became something like 80029567, i think). So, i think i need to decrypt the self too (or maybe only that) but no self decrypting tool seems to be able to do that (i believe i read somewhere something about geohot's encryption making the decryption impossible or something).

That's why i am trying to build it from source.
stadicon is offline   Reply With Quote
Old 07-25-2012   #22
Squarepusher2
 
Join Date: Jun 2012
Posts: 104
Likes: 0
Liked 338 Times in 77 Posts
Mentioned: 56 Post(s)
Tagged: 0 Thread(s)
Originally Posted by stadicon View Post
The problem about showtime is that it only has a basic EBOOT.BIN while the actual application is an external .self (i guess the EBOOT.BIN just loads the self)! So, i managed to decrypt the EBOOT.BIN, already, and replace it through ftp (pkg repack won't work with this app and the command window won't stay open so i can see the error message) and the only think happened is that the error message changed (80010017 became something like 80029567, i think). So, i think i need to decrypt the self too (or maybe only that) but no self decrypting tool seems to be able to do that (i believe i read somewhere something about geohot's encryption making the decryption impossible or something).

That's why i am trying to build it from source.
You can't use the regular version of exitspawn on DEX to hop from SELF to SELF - you have to use Sony's NPDRM version of exitspawn for that, and the SELFs themselves will have to be NPDRM SELFs as well - so no FSELFs like on CFW CEX PS3.

And AFAIK, PSL1GHT doesn't have the NPDRM version of exitspawn - only the PS3 SDK does.

This is the reason why RetroArch PS3 on DEX can boot a SELF from another SELF (as in - load another core) - because it is one of the few pieces of homebrew (I think the only one right now) that uses NPDRM exitspawn.

Last edited by Squarepusher2; 07-25-2012 at 06:47 AM.
Squarepusher2 is offline   Reply With Quote
Old 07-25-2012   #23
carldenning
Senior Member
 
Join Date: Jun 2009
Posts: 5,128
Likes: 1,880
Liked 1,793 Times in 1,173 Posts
Mentioned: 220 Post(s)
Tagged: 0 Thread(s)
@Squarepusher2 would that be fself eg make_fself eboot.elf eboot.bin ? to make a debug eboot ?
__________________
carldenning is offline   Reply With Quote
Old 07-25-2012   #24
Squarepusher2
 
Join Date: Jun 2012
Posts: 104
Likes: 0
Liked 338 Times in 77 Posts
Mentioned: 56 Post(s)
Tagged: 0 Thread(s)
Originally Posted by carldenning View Post
@Squarepusher2 would that be fself eg make_fself eboot.elf eboot.bin ?
No, as I said, not only will you have to use the NPDRM version of exitspawn instead of regular exitspawn (and I don't think this is available on PSL1GHT yet), but also -

the SELFs will need to be NPDRM SELFs otherwise the NPDRM version of exitspawn won't be able to boot them.

I never got FSELF booting with exitspawn to work on DEX for RetroArch PS3 - so I just went with the NPDRM solution instead.

Really, it might be worthwhile to make Showtime compilable with both the PS3 and PSL1GHT SDKs. There's no technical reason why this can't be done - RetroArch PS3 can be compiled with either PSL1GHT or the PS3 SDK as well - the two SDKs are mostly exactly the same except for a few names that got changed - so a file like this should be able to get you a long way -

https://github.com/Themaister/RetroA.../sdk_defines.h

Last edited by Squarepusher2; 07-25-2012 at 06:51 AM.
Squarepusher2 is offline   Reply With Quote
Old 07-25-2012   #25
stadicon
Member
 
Join Date: Oct 2009
Posts: 86
Likes: 15
Liked 20 Times in 16 Posts
Mentioned: 0 Post(s)
Tagged: 0 Thread(s)
I am not quite sure that you are right! You see, if i compare the 2 multiman pkgs that are out (CEX and DEX) i see that the only difference is that the DEX EBOOT.BIN is much larger and, thus, decrypted (as a part of decryption is compression) than the CEX EBOOT.BIN. And looking with a HEX editor the 2 EBOOTs, in fact proves that the DEX working EBOOT is decrypted (you can see strings and stuff in it).

So, i am pretty sure that it's not NPDRM that causes the problem. I think that, in order to work on DEX, something needs to be either signed with the PS3SDK (as you said) or plain fself! Maybe the problem was geohot's npdrm tricks (or some other trick we used to do on CFWs)?

Last edited by stadicon; 07-25-2012 at 05:22 PM.
stadicon is offline   Reply With Quote
Old 07-25-2012   #26
Squarepusher2
 
Join Date: Jun 2012
Posts: 104
Likes: 0
Liked 338 Times in 77 Posts
Mentioned: 56 Post(s)
Tagged: 0 Thread(s)
Originally Posted by stadicon View Post
I am not quite sure that you are right! You see, if i compare the 2 multiman pkgs that are out (CEX and DEX) i see that the only difference is that the DEX EBOOT.BIN is much larger and, thus, decrypted (as a part of decryption is compression) than the CEX EBOOT.BIN. And looking with a HEX editor the 2 EBOOTs, in fact proves that the DEX working EBOOT is decrypted (you can see strings and stuff in it).

So, i am pretty sure that it's not NPDRM that causes the problem. I think that, in order to work on DEX, something needs to be either signed with the PS3SDK (as you said) or plain fself! Maybe the problem was geohot's npdrm tricks (or some other trick we used to do on CFWs)?
You're looking at this the entire wrong way.

You don't need to look at this with a hex editor, you need to look at the source with a text editor. Read code, not whether or not there are strings in your SELF. (there will be strings in your SELF when looked at with a hex editor if you don't strip debug symbols when making a build).

The principal problem here is -

FSELF tries to boot another FSELF with exitspawn (on DEX).

I've found that on DEX - this simply does not work no matter how many times you try.

The only way you will be able to make something like this work (where you spawn another process from an existing process) is by using NPDRM exitspawn (which is provided to you by the PS3 SDK - I don't think PSL1GHT provides it though) - AND by making the SELF executables NPDRM SELF.

Now you have two problems here -

1) Showtime was written for PSL1GHT - and since it doesn't support NPDRM exitspawn, I don't think switching to another process will work on DEX (for the record, Deank has started using this method for Multiman too on DEX ever since I told him about how I use it for RetroArch PS3 - Multiman is compiled with the PS3 SDK though).
2) Showtime uses the non-NPDRM version of exitspawn - and since it's PSL1GHT, we can't change it to NPDRM exitspawn either even with the source available.

Only solution I see is compiling the app with the PS3 SDK (which will require some changes - maybe a lot) and then replacing the sections where exitspawn is used to NPDRM exitspawn - then making NPDRM versions of the SELFs.

Now if there's a better, less time-intensive way to make Showtime run on DEX, then by all means, show me. I would like to see this run as well.

Last edited by Squarepusher2; 07-25-2012 at 05:38 PM.
Squarepusher2 is offline   Reply With Quote
Old 07-25-2012   #27
stadicon
Member
 
Join Date: Oct 2009
Posts: 86
Likes: 15
Liked 20 Times in 16 Posts
Mentioned: 0 Post(s)
Tagged: 0 Thread(s)
All right, first of all, thanks for letting me know about all those stuff.

Now, if the problem about shotime is how it calles other SELFs, then it's not such a big deal: it's just a self (showtime.self) called from an EBOOT, the same self that multiman calls. Now, if Multiman does load external selfs with the correct exitspawn (i am not 100% sure what i am talking about, i hope i don't sound very stupid), then by simply making this single showtime.self an NPDRM self, we could load it just fine from Multiman. Does that make sense?

Btw, that's what the XMB check function returns, when i check multiman:

Click here to see full text
Code:
------------------
System Information
------------------
Program : PlayStation®3 System Software Version 4.11
Checker Version : 3.21
Log Format : 10000000

------------------
Target Information
------------------
Input : (Dir) /dev_hdd0/game/BLES80608
Target Type : HDD Game
Title ID : BLES-80608
Version : 01.00
Title(default) : mmCM
Parental Level : 0
SDK Version : 03.4000
System Version : 03.4000

---
Log
---
[Info]	Checking HDD Game.(HG,"/dev_hdd0/game/BLES80608")
[Debug]	Checking System File /dev_hdd0/game/BLES80608/PARAM.SFO.
[Info]	TITLE_ID = BLES80608.
[Info]	PARENTAL_LEVEL = 0/--/--/--/--/--/--.
[Info]	ATTRIBUTE = 0x25.
[Info]	PS Vita/PSP™ remote play is supported. (PS Vita/PSP™: AVC (480x272))
[Info]	BGM with XMB™ (in game) is supported.
[Info]	RESOLUTION = 0x3F, 1080/720/576/576(16:9)/480/480(16:9).
[Info]	SOUND_FORMAT = 0x303, 2LPCM/5.1Dolby/5.1DTS.
[Info]	VERSION = 01.00.
[Info]	PS3_SYSTEM_VER = 03.4000.
[Info]	APP_VER = 04.04.
[Debug]	TITLE_ID = BLES80608.
[Warn]	PARAM.SFO: Param PARENTAL_LEVEL: Currently being rated.
[Debug]	PARENTAL_LEVEL = 0/--/--/--/--/--/--.
[Debug]	ATTRIBUTE = 0x25.
[Error]	PARAM.SFO: Param LICENSE: Unexpected value.
[Debug]	RESOLUTION = 0x3F, 1080/720/576/576(16:9)/480/480(16:9).
[Debug]	SOUND_FORMAT = 0x303, 2LPCM/5.1Dolby/5.1DTS.
[Debug]	VERSION = 01.00.
[Debug]	PS3_SYSTEM_VER = 03.4000.
[Debug]	APP_VER = 04.04.
[Debug]	NP_COMMUNICATION_ID = NPXS80608_00.
[Debug]	PS3LOGO.DAT: Logo.
[Error]	PARAM.HIS: Invalid History file.
[Debug]	ICON0.PNG: 320x176/32bit.
[Debug]	PIC1.PNG: 1920x1080/32bit.
[Error]	PIC1.PNG: Invalid Depth(32bit).
[Info]	EBOOT.BIN: PPU SELF file, SDK version = 03.4000.
[Debug]	EBOOT.BIN: 400.001 (PPU) : crt0
[Error]	EBOOT.BIN: Version conflict error (crt0, 400.001).
[Debug]	EBOOT.BIN: 400.001 (PPU) : crt1
[Error]	EBOOT.BIN: Version conflict error (crt1, 400.001).
[Debug]	EBOOT.BIN: 400.001 (PPU) : libvpost_stub
[Error]	EBOOT.BIN: Version conflict error (libvpost_stub, 400.001).
[Debug]	EBOOT.BIN: 400.001 (PPU) : libvdec_stub
[Error]	EBOOT.BIN: Version conflict error (libvdec_stub, 400.001).
[Debug]	EBOOT.BIN: 400.001 (PPU) : libfont_stub
[Error]	EBOOT.BIN: Version conflict error (libfont_stub, 400.001).
[Debug]	EBOOT.BIN: 400.001 (PPU) : libfontFT_stub
[Error]	EBOOT.BIN: Version conflict error (libfontFT_stub, 400.001).
[Debug]	EBOOT.BIN: 400.001 (PPU) : libmixer
[Error]	EBOOT.BIN: Version conflict error (libmixer, 400.001).
[Debug]	EBOOT.BIN: 400.001 (PPU) : libmstreamSPURSMP3
[Error]	EBOOT.BIN: Version conflict error (libmstreamSPURSMP3, 400.001).
[Debug]	EBOOT.BIN: 400.001 (PPU) : libadec_stub
[Error]	EBOOT.BIN: Version conflict error (libadec_stub, 400.001).
[Debug]	EBOOT.BIN: 400.001 (PPU) : libaudio_stub
[Error]	EBOOT.BIN: Version conflict error (libaudio_stub, 400.001).
[Debug]	EBOOT.BIN: 400.001 (PPU) : libnet_stub
[Error]	EBOOT.BIN: Version conflict error (libnet_stub, 400.001).
[Debug]	EBOOT.BIN: 400.001 (PPU) : libnetctl_stub
[Error]	EBOOT.BIN: Version conflict error (libnetctl_stub, 400.001).
[Debug]	EBOOT.BIN: 400.001 (PPU) : libpngdec_stub
[Error]	EBOOT.BIN: Version conflict error (libpngdec_stub, 400.001).
[Debug]	EBOOT.BIN: 400.001 (PPU) : libdbgfont_gcm
[Error]	EBOOT.BIN: Debug library linked (libdbgfont_gcm).
[Error]	EBOOT.BIN: Version conflict error (libdbgfont_gcm, 400.001).
[Debug]	EBOOT.BIN: 400.001 (PPU) : libgcm_cmd
[Error]	EBOOT.BIN: Version conflict error (libgcm_cmd, 400.001).
[Debug]	EBOOT.BIN: 400.001 (PPU) : libgcm_sys_stub
[Error]	EBOOT.BIN: Version conflict error (libgcm_sys_stub, 400.001).
[Debug]	EBOOT.BIN: 400.001 (PPU) : libio_stub
[Error]	EBOOT.BIN: Version conflict error (libio_stub, 400.001).
[Debug]	EBOOT.BIN: 400.001 (PPU) : libsysutil_stub
[Error]	EBOOT.BIN: Version conflict error (libsysutil_stub, 400.001).
[Debug]	EBOOT.BIN: 400.001 (PPU) : libsysmodule_stub
[Error]	EBOOT.BIN: Version conflict error (libsysmodule_stub, 400.001).
[Debug]	EBOOT.BIN: 400.001 (PPU) : libfs_stub
[Error]	EBOOT.BIN: Version conflict error (libfs_stub, 400.001).
[Debug]	EBOOT.BIN: 400.001 (PPU) : libhttp_util_stub
[Error]	EBOOT.BIN: Version conflict error (libhttp_util_stub, 400.001).
[Debug]	EBOOT.BIN: 400.001 (PPU) : libspurs_stub
[Error]	EBOOT.BIN: Version conflict error (libspurs_stub, 400.001).
[Debug]	EBOOT.BIN: 400.001 (PPU) : libjpgdec_stub
[Error]	EBOOT.BIN: Version conflict error (libjpgdec_stub, 400.001).
[Debug]	EBOOT.BIN: 400.001 (PPU) : libhttp_stub
[Error]	EBOOT.BIN: Version conflict error (libhttp_stub, 400.001).
[Debug]	EBOOT.BIN: 400.001 (PPU) : libsysutil_music_export_stub
[Error]	EBOOT.BIN: Version conflict error (libsysutil_music_export_stub, 400.001).
[Debug]	EBOOT.BIN: 400.001 (PPU) : libsysutil_photo_export_stub
[Error]	EBOOT.BIN: Version conflict error (libsysutil_photo_export_stub, 400.001).
[Debug]	EBOOT.BIN: 400.001 (PPU) : libsysutil_video_export_stub
[Error]	EBOOT.BIN: Version conflict error (libsysutil_video_export_stub, 400.001).
[Debug]	EBOOT.BIN: 400.001 (PPU) : libsysutil_screenshot_stub
[Error]	EBOOT.BIN: Version conflict error (libsysutil_screenshot_stub, 400.001).
[Debug]	EBOOT.BIN: 400.001 (PPU) : libsysutil_np_stub
[Error]	EBOOT.BIN: Version conflict error (libsysutil_np_stub, 400.001).
[Debug]	EBOOT.BIN: 340.001 (PPU) : libcontrol_console_ppu
[Debug]	EBOOT.BIN: 400.001 (PPU) : libstdc++
[Error]	EBOOT.BIN: Version conflict error (libstdc++, 400.001).
[Debug]	EBOOT.BIN: 400.001 (PPU) : libm
[Error]	EBOOT.BIN: Version conflict error (libm, 400.001).
[Debug]	EBOOT.BIN: 400.001 (PPU) : libc
[Error]	EBOOT.BIN: Version conflict error (libc, 400.001).
[Debug]	EBOOT.BIN: 400.001 (PPU) : liblv2_stub
[Error]	EBOOT.BIN: Version conflict error (liblv2_stub, 400.001).
[Debug]	EBOOT.BIN: 400.001 (PPU) : libusbd_stub
[Error]	EBOOT.BIN: Version conflict error (libusbd_stub, 400.001).
[Error]	EBOOT.BIN: Embedded SELF found (ofs=12C598).
[Debug]	EBOOT.BIN: Orphan Embedded SPU found (seems stripped).
[Info]	EBOOT.BIN(embedded#00): SPU ELF file, SDK version = unknown.
[Debug]	EBOOT.BIN(embedded#00): SPU name = spu/msngSPURS_MP3.
[Debug]	EBOOT.BIN(embedded#00): SPU GUID = 27 6b c8 19 23 e7 57 b3.
[Debug]	EBOOT.BIN(embedded#00): No section headers.
[Info]	BROWSER.SELF: Compressed Segment found, being decompressed.
[Info]	BROWSER.SELF: Signed PPU SELF file, SDK version = unknown.
[Info]	CU.BIN: Compressed Segment found, being decompressed.
[Info]	CU.BIN: Signed PPU SELF file, SDK version = unknown.
[Info]	DATA0: Compressed Segment found, being decompressed.
[Info]	DATA0: Signed PPU SELF file, SDK version = unknown.
[Error]	DATA1: Invalid ELF format.
[Info]	SHOWTIME.SELF: Compressed Segment found, being decompressed.
[Error]	SHOWTIME.SELF: Invalid ELF format.
[Info]	SP.BIN: Compressed Segment found, being decompressed.
[Info]	SP.BIN: Signed PPU SELF file, SDK version = unknown.
[Info]	RELOAD.SELF: Compressed Segment found, being decompressed.
[Info]	RELOAD.SELF: Signed PPU SELF file, SDK version = unknown.

STATUS: ERROR
stadicon is offline   Reply With Quote
Old 07-26-2012   #28
stadicon
Member
 
Join Date: Oct 2009
Posts: 86
Likes: 15
Liked 20 Times in 16 Posts
Mentioned: 0 Post(s)
Tagged: 0 Thread(s)
Update: I just managed to compile showtime from source (i've setted up a new VM for this purpose, if anyone is interested) so i have the elf. Any ideas about what to do with it?
stadicon is offline   Reply With Quote
Old 07-26-2012   #29
carldenning
Senior Member
 
Join Date: Jun 2009
Posts: 5,128
Likes: 1,880
Liked 1,793 Times in 1,173 Posts
Mentioned: 220 Post(s)
Tagged: 0 Thread(s)
u need to make the elf in to a debug eboot with make_fself_npdrm.exe
__________________
carldenning is offline   Reply With Quote
Old 07-26-2012   #30
stadicon
Member
 
Join Date: Oct 2009
Posts: 86
Likes: 15
Liked 20 Times in 16 Posts
Mentioned: 0 Post(s)
Tagged: 0 Thread(s)
I think we have some progress here. Leaving the existing structure (EBOOT.BIN and showtime.self) didn't work with any EBOOT/showtime combination, so i did produce a "standalone" EBOOT.BIN with make_fself_npdrm, as carldenning suggested, and it won't produce the 80010017 error anymore. It almost starts, then it returns to the XMB (so unexpected crash, maybe). The interesting thing is that some new files and directories are created (like cache and settings) so believe that the actual application works, but it crashes on some point (so it's a matter of the code and not the signing or something).

I'd like to take a look at the crash dump or something. Anybody knows if there's some log on crashes?

Last edited by stadicon; 07-26-2012 at 01:18 PM.
stadicon is offline   Reply With Quote
Reply

Bookmarks

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump



PS3Hax.net is Copyright © 2010-2013.
Use of this site is governed by our Terms of Use and Privacy Policy. All Trademarks and images are owned by their respected owners.
Posts and links are subject to each author on this forum and are no way affiliated with the operations and/or opinions of ps3hax.net
All times are GMT -5. The time now is 07:57 PM.