[Tutorial] PSN Bypass Techniques and Setting Up Development/Debugging Environment

Great team effort peeps :congratulatory:

@catalinnc thanks again, i will build US and JP packages and test them out using your EU package as a base, and of course include credits!

@Rajesh Dutta thanks again to you for testing and pushing us to fix this mess! I will include you in the credits for this app here and on NGU thread

Nice Work, Team!!
 
@catalinnc just tested with stock EBOOT from 4.01 EU and it works.

EDIT #1: The ignition.self should be the same for all regions, as its klicense is all 0's

EDIT #2: /lib/webkit.sprx needs its matching region i am assuming, as its signed with EP4183-NPEB00344_00-LOVEFILMFULL0100 as its Content ID

EDIT #3: I am testing NPUP10021 now with only added directories and ignition.self from NPEB00344 added/replaced.

EDIT #4: Just tested US version and it worked. Will post package to test
 
Last edited:
here is the us version re-signed and ready to go...just install it...
Code:
Amazon Video App v4.01
UP2064-NPUP10021_00-AMAZONIVIDEO0100.v4.01.NO.PSN.FiX3D.ignition.self.0x3CF73C_0x40.[A00E62E6].zip
http://www13.zippyshare.com/v/362uskfe/file.html
_

this us version has lots and lots of diff files from the eu version!!!

ignition.self is identical as in the eu version...all i did is patch it as the eu version (0x3CF73C_0x40) then re-sign it...

the other self/sprx are re-signed for lower cfw...

i hope this is all it needes to bypass the psn login...
_

p.s. i noticed a java script inside a sdat (USRDIR\js\app\modules\network.js.sdat) that has lots and lots of references to psn...
_
 
here is the jap version re-signed and ready to go...just install it...
Code:
Amazon Video App v4.01
JA0011-NPJB00773_00-AMAZONVIDEOJAPAN.v4.01.NO.PSN.FiX3D.ignition.self.0x3CF73C_0x40.[542EF569].zip
http://www89.zippyshare.com/v/C7Nv5nPv/file.html
_

this jap version is almost identical to eu version!!!

ignition.self is identical as in the eu version...all i did is patch it as the eu version (0x3CF73C_0x40) then re-sign it...

i also modded NPJB00773\USRDIR\data\config\spark.cfg.sdat ("requirePSN" : false, - but i am not sure if this is really needed!)

the other self/sprx are re-signed for lower cfw...

i hope this is all it needes to bypass the psn login...
_
 
Thanks again to @catalinnc and @Rajesh Dutta for all their help!

I have added new links, instructions, comments, and credits to the OP and to the NGU thread

Here are also the renamed packages, untouched from @catalinnc, just renamed to keep uniform with all the rest of the app collection.

Amazon-Instant-Video-v4.01-[NPEB00344]-NoPSN.pkg
Amazon-Instant-Video-v4.01-[NPUP10021]-NoPSN.pkg
Amazon-Instant-Video-v4.01-[NPJB00773]-NoPSN.pkg

I have tested all the new packages from @catalinnc after adding the files and resigning the ignition.self and they all load up without issue, after pressing CIRCLE to bypass PSN Login.

:triumphant:


now........the Hulu Monster!!!


EDIT: I may try bypassing the press circle requirement if i get bored soon!! Will need some testers probably, as apparently I have some SELF re-signing issues!!
 
Last edited:
Thanks again to @catalinnc and @Rajesh Dutta for all their help!

I have added new links, instructions, comments, and credits to the OP and to the NGU thread

Here are also the renamed packages, untouched from @catalinnc, just renamed to keep uniform with all the rest of the app collection.

Amazon-Instant-Video-v4.01-[NPEB00344]-NoPSN.pkg
Amazon-Instant-Video-v4.01-[NPUP10021]-NoPSN.pkg
Amazon-Instant-Video-v4.01-[NPJB00773]-NoPSN.pkg

I have tested all the new packages from @catalinnc after adding the files and resigning the ignition.self and they all load up without issue, after pressing CIRCLE to bypass PSN Login.

:triumphant:


now........the Hulu Monster!!!


EDIT: I may try bypassing the press circle requirement if i get bored soon!! Will need some testers probably, as apparently I have some SELF re-signing issues!!

can you please provide me the patched elf for hulu.... I'll test.... :)
 
i think he means having to press circle. I will try messing with that tonight and post links for testers!!!

@Rajesh Dutta i have no issues with loading Hulu ELF or SPRX re-signed, at least I don't think so. I have tested so many patches to Hulu off and on again over the past few months, my brain starts to hurt!!! I can get black screen, infinite Hulu background, infinite spinner, no spinner, etc, etc. The way it is structured is very linear. I can post some links later on just to see if other people experience the same results as i do.
 
Last edited:
i located the java script that is responsable for psn login in the hulu video app...
Code:
http://www90.zippyshare.com/v/hBGnpYzd/file.html

if someone is skilled in java to make it skip the psn login, please take a look...
_
 
you could just fake the button press in the sprx posted a few posts back.
isnt the actual login bypassed now, as in the screen comes up but just have to hit x to proceed?

edit: i think around line 322, a person could just change the function to call whatever sub is "success", that way if it fails or not, it will be the same outcome (bypass login screen).
 
Last edited:
At first glance, the javascript deals with the psn login but not only.
Once connected to PSN, a NP ticket (PSN cookie containing per console info among other data) for the Hulu app is requested. After the ticket is received & verified, it is being sent to https://play.hulu.com/tcm in order to receive a dictionary of options (in xml format) to initialise the app.

Like I said, I just took a quick glance at it so I could be wrong but if I had to guess, I would say that only bypassing the PSN login in the javascript without any other changes would work if it were possible to get the NP ticket without being authenticated or if we could create a fake ticket to fool the Hulu server, otherwise my guess is it will fail.

Of course if a patch has already been successfully applied & a bypass is already working, the aim of the game would just be to bypass the display of the PSN login page, that is a different matter..
 
Last edited:
i think that is deprecated, but i am checking it now


EDIT #1: I have tested a few things with no luck, but that doesn't mean its hopeless....yet! Apps such as Twitch, Popcornflix, and others can be easily bypassed with Javascript hacks, although I think the Hulu app will need an SPRX or EBOOT patch to finalize the PSN bypass.

here are a few "suspicious" areas

- Force NP.status to stay TRUE

- _onPSNEvent always returns ONLINE status

- _onPSNEvent always returns the values from NP.GOT_TICKET

- _onNPTicketVerified always responds with _currentlyFailedTicket = false;


htvPlatform.js.sdat:
Lines 484 - 488
if (NP.status === NP.ONLINE) {
_requestNPTicket();
} else {
__eventCallback.call(__eventReceiver, "PLATFORM_STATUS_ERROR", {error_id: "SYSTEM_PROFILE_LOGOUT", error_text: "Please sign into PlayStation(R)Network to continue using this application."});
}

htvPlatform.js.sdat:
Lines 322 - 275
function _onPSNEvent(event, result) {
LOG("Got event " + event + " " + result);

switch (event) {
case NP.OFFLINE:
LOG("User has not yet signed on, or has logged out");
__eventCallback.call(__eventReceiver, "PLATFORM_STATUS_ERROR", {error_id: "SYSTEM_PROFILE_LOGOUT", error_text: "Please sign into PlayStation(R)Network to continue using this application."});
NP.onNetstartFinished = function (result) {
if (result < 0 || NP.status !== NP.ONLINE) {
NP.netstart(NP.NETSTART_TYPE_NP);
} else {
NP.onNetstartFinished = null;
}
};
NP.netstart(NP.NETSTART_TYPE_NP);
break;
case NP.GETTING_TICKET:
LOG("Phase 1 of sign on");
break;
case NP.GETTING_PROFILE:
LOG("Phase 2 of Sign on");
break;
case NP.LOGGING_IN:
LOG("Phase 3 of Sign on");
break;
case NP.ONLINE:
LOG("Signed on!");
__eventCallback.call(__eventReceiver, "PLATFORM_STATUS_CLEAR", {error_id: "SYSTEM_PROFILE_LOGOUT"});
_requestNPTicket();
break;
case NP.GOT_TICKET:
LOG("Ticket Request Complete!");
_ticketReceived = true;
if (result > 0) {
LOG("Successfully acquired ticket");
LOG("ticket: " + NP.ticket.toString("base64"));
describe(NP.accountRegion);
describe(NP.contentRatingFlag);
if (NP.contentRatingFlag.isRestricted) {
$htv.Platform.properties.user.age = NP.contentRatingFlag.age;
}
// TODO: retry or bubble up platform error on request failure?
_loadURL(TCM_PATH, this, _onNPTicketVerified, {
body: "ticket=" + $htv.Utils.urlEncode(NP.ticket.toString("base64")),
content_type: "application/x-www-form-urlencoded",
method: "POST",
xmlparse: false
});
} else {
LOG("Failed acquiring ticket todo: shutdown");
}
break;
}
}


htvPlatform.js.sdat
Lines 385 - 406
function _onNPTicketVerified(responseText, options) {
LOG("NP Ticket verified: " + responseText);
var result, errorMessage = "Please login with a valid PlayStation(R)Network account.";
result = _parseJSON(responseText);
if (result && result.valid === true) {
if (_currentlyFailedTicket === true) {
__eventCallback.call(__eventReceiver, "PLATFORM_STATUS_CLEAR", {
error_id: "TICKET_VERIFICATION"
});
}
_currentlyFailedTicket = false;
} else {
if (result && result.message) {
errorMessage = result.message;
}
if (_currentlyFailedTicket === false) {
__eventCallback.call(__eventReceiver, "PLATFORM_STATUS_ERROR", {error_id: "TICKET_VERIFICATION", error_text: errorMessage});
}
_currentlyFailedTicket = true;
}

}

htvInit.js.sdat:
Lines 59 - 71
Remove all lines except line 70??
if (NP.status !== NP.ONLINE) {
NP.netstart(NP.NETSTART_TYPE_NP);
NP.onNetstartFinished = function (result) {
if (result < 0 || NP.status !== NP.ONLINE) {
NP.netstart(NP.NETSTART_TYPE_NP);
} else {
NP.onNetStartFinished = null;
$htv.Controller.initialize({screen: screen});
}
};
} else {
$htv.Controller.initialize({screen: screen});
}
 
Last edited:
At first glance, the javascript deals with the psn login but not only.
Once connected to PSN, a NP ticket (PSN cookie containing per console info among other data) for the Hulu app is requested. After the ticket is received & verified, it is being sent to https://play.hulu.com/tcm in order to receive a dictionary of options (in xml format) to initialise the app.

Like I said, I just took a quick glance at it so I could be wrong but if I had to guess, I would say that only bypassing the PSN login in the javascript without any other changes would work if it were possible to get the NP ticket without being authenticated or if we could create a fake ticket to fool the Hulu server, otherwise my guess is it will fail.

Of course if a patch has already been successfully applied & a bypass is already working, the aim of the game would just be to bypass the display of the PSN login page, that is a different matter..


i think the proper job to do is modding the script so it can dump (save) this "NP ticket" and also the "dictionary of options (in xml format)" for closer inspection...
_
 
Back
Top