Talk:Online Connections

From PS3 Developer wiki
Revision as of 15:28, 22 January 2015 by Euss (talk | contribs) (→‎VSH.elf 4.30)
Jump to navigation Jump to search

VSH.elf 4.30/4.66

4.30 4.66
 Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
 006E8FC0  73 70 2D 69 6E 74 00 00 00 00 00 00 00 00 00 00  sp-int..........
 006E8FD0  FF FF FF FF 00 00 00 00 FC A4 DD 70 A2 42 E4 C3  ÿÿÿÿ....ü¤Ýp¢BäÃ
 006E8FE0  CC F1 5F D6 AE 8F 0A E7 87 49 D1 B3 52 F4 DA 4D  Ìñ_Ö®..ç‡IѳRôÚM
 006E8FF0  9D E0 04 E9 F2 D7 2F 6D E3 77 69 9B C2 E5 F8 3A  .à.éò×/mãwi›Âåø:
 006E9000  4C 28 EE A5 75 DB EA A2 93 F3 83 5E 8B 7A FA 9A  L(î¥uÛꢓóƒ^‹zúš
 006E9010  16 57 3A D5 B0 DE EB CC E1 A7 C5 4C 66 B9 03 AE  .W:Õ°ÞëÌá§ÅLf¹.®
 006E9020  41 86 FB D7 EE B2 3F 16 E6 7A 19 42 0B 26 21 14  A†û×î²?.æz.B.&!.
 006E9030  08 B9 17 15 AC C3 D1 99 8A 37 A4 63 9F AF F0 64  .¹..¬ÃÑ™Š7¤cŸ¯ðd
 006E9040  E9 F9 0C 0F EC B2 8C 81 3F A9 F6 49 07 4C 9A 33  éù..첌.?©öI.Lš3
 006E9050  03 92 EA 2B 91 C3 FD 37 32 D1 DF ED 7C A1 51 A2  .’ê+‘Ãý72Ñßí|¡Q¢
 006E9060  19 26 F0 B3 15 10 7B F1 FB EA 89 29 E6 8A B3 97  .&ð³..{ñûê‰)抳—
 006E9070  20 00 00 00 00 02 00 01 00 03 00 00 00 04 00 00   ...............
 006E9080  00 00 00 00 14 A3 21 4C 53 27 08 49 D6 15 B2 A2  .....£!LS'.IÖ.²¢
 006E9090  69 4F 24 C7 FB 39 1D 0C C3 38 0B 12 7B 2A 5F 0C  iO$Çû9..Ã8..{*_.
 006E90A0  FF 99 89 FE 4E DF 0F 1E 46 7B 2C 7F 2C 8F AF D4  ÿ™‰þNß..F{,.,.¯Ô
 006E90B0  03 24 0D 92 E9 7A 4B 6E AA 3C 38 38 92 0D 8F 5C  .$.’ézKnª<88’..\
 006E90C0  D8 9F 2A 75 DE D5 21 02 FC 06 40 D5 9C B2 5A 69  ØŸ*uÞÕ!.ü.@Õœ²Zi    006E90C8 passphrase (PSN) 0x40
 006E90D0  8E E9 7B 38 33 04 49 64 FF ED 34 F1 CC 9A C3 83  Žé{83.Idÿí4ñ̚Ã
 006E90E0  31 7D 91 AB 0C 94 B8 6F 1F EE A0 68 79 81 CC F5  1}‘«.”¸o.î hy.Ìõ
 006E90F0  69 2D 2B 50 0A F9 B9 F8 71 C8 9E 0C 5A 79 90 2F  i-+P.ù¹øqÈž.Zy./
 006E9100  4E BD 4E 13 50 53 33 5F 43 20 30 2E 30 30 00 00  N½N.PS3_C 0.00..
 006E9110  00 00 D7 04 21 F2 92 9C E3 65 6B AC 5D F8 B1 9A  ..×.!ò’œãek¬]ø±š
 006E9120  5C 27 13 02 90 C6 EA 04 F0 BE B2 7D 13 DC 20 4E  \'...Æê.ð¾²}.Ü N
 006E9130  4F 25 9A 3E 48 5A A7 6D 50 F5 84 67 BD 9E D7 76  O%š>HZ§mPõ„g½ž×v
 006E9140  07 55 65 91 3A C8 8D 2B CC 2B 2F A4 D6 5F 08 28  .Ue‘:È.+Ì+/¤Ö_.(
 006E9150  1F A2 4C 4E D1 96 1D 40 9C 3B FA EE 60 A5 9A 80  .¢LNÑ–.@œ;úî`¥š€
 006E9160  CB 0D EF C2 CE 93 87 7A 38 67 16 15 8C A5 A8 EE  Ë.ïÂΓ‡z8g..Œ¥¨î
 006E9170  26 60 8E 0E 03 DE 05 BB ED D0 D4 03 38 40 B5 0E  &`Ž..Þ.»íÐÔ.8@µ.
 006E9180  B8 57 30 B2 25 08 C2 AE F9 D3 87 BD 59 4D 19 44  ¸W0²%.®ùÓ‡½YM.D
 006E9190  AE 83 00 00 00 02 00 01 00 6D 99 20 00 03 00 00  ®ƒ.......m™ ....
 006E91A0  00 6D 99 68 00 04 00 00 00 6D 99 60 00 00 00 00  .m™h.....m™`....
 006E91B0  00 00 00 00 00 02 00 01 00 6D 99 58 00 03 00 00  .........m™X....
 006E91C0  00 6D 99 10 00 04 00 00 00 6D 99 08 00 00 00 00  .m™......m™.....
 006E91D0  00 00 00 00 00 02 00 01 00 6D 99 30 00 03 00 00  .........m™0....
 006E91E0  00 6D 99 28 00 04 00 00 00 6D 99 18 00 00 00 00  .m™(.....m™.....
 006E91F0  00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF  ....ÿÿÿÿÿÿÿÿÿÿÿÿ
 006E9200  00 00 00 00 FF FF FF FF 00 00 00 00 FF FF FF FF  ....ÿÿÿÿ....ÿÿÿÿ
 006E9210  FF FF FF FF 00 68 07 B8 00 68 07 C0 00 00 00 00  ÿÿÿÿ.h.¸.h.À....
 006E9220  00 00 00 00 00 00 00 00 00 00 01 BB 00 00 00 00  ...........»....
 006E9230  01 00 00 00 00 00 00 02 83 00 00 00 00 00 00 00  ........ƒ.......
 Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
 006EA0F0  00 00 00 00 00 00 00 00 73 70 2D 69 6E 74 00 00  ........sp-int..
 006EA100  00 00 00 00 00 00 00 00 FF FF FF FF 00 00 00 00  ........ÿÿÿÿ....
 006EA110  ED 8C 42 6F B7 25 D8 81 AD B3 C7 EC F5 35 B3 45  íŒBo·%Ø.­³Çìõ5³E
 006EA120  FF 0A 1A E9 C9 C4 31 75 9D E0 04 E9 F2 D7 2F 6D  ÿ..éÉÄ1u.à.éò×/m
 006EA130  E3 77 69 9B C2 E5 F8 3A 4C 28 EE A5 75 DB EA A2  ãwi›Âåø:L(î¥uÛê¢
 006EA140  93 F3 83 5E 8B 7A FA 9A 16 57 3A D5 B0 DE EB CC  “óƒ^‹zúš.W:Õ°ÞëÌ
 006EA150  E1 A7 C5 4C 66 B9 03 AE 41 86 FB D7 EE B2 3F 16  á§ÅLf¹.®A†û×î²?.
 006EA160  E6 7A 19 42 0B 26 21 14 08 B9 17 15 AC C3 D1 99  æz.B.&!..¹..¬ÃÑ™
 006EA170  8A 37 A4 63 9F AF F0 64 E9 F9 0C 0F EC B2 8C 81  Š7¤cŸ¯ðdéù..첌.
 006EA180  3F A9 F6 49 07 4C 9A 33 03 92 EA 2B 91 C3 FD 37  ?©öI.Lš3.’ê+‘Ãý7
 006EA190  32 D1 DF ED 7C A1 51 A2 19 26 F0 B3 15 10 7B F1  2Ñßí|¡Q¢.&ð³..{ñ
 006EA1A0  FB EA 89 29 E6 8A B3 97 20 00 00 00 00 02 00 01  ûê‰)抳— .......
 006EA1B0  00 03 00 00 00 04 00 00 00 00 00 00 14 A3 21 4C  .............£!L
 006EA1C0  53 27 08 49 D6 15 B2 A2 69 4F 24 C7 FB 39 1D 0C  S'.IÖ.²¢iO$Çû9..
 006EA1D0  C3 38 0B 12 7B 2A 5F 0C FF 99 89 FE 4E DF 0F 1E  Ã8..{*_.ÿ™‰þNß..
 006EA1E0  46 7B 2C 7F 2C 8F AF D4 03 24 0D 92 E9 7A 4B 6E  F{,.,.¯Ô.$.’ézKn
 006EA1F0  AA 3C 38 38 92 0D 8F 5C D8 9F 2A 75 DE D5 21 02  ª<88’..\ØŸ*uÞÕ!.
 006EA200  FC 06 40 D5 9C B2 5A 69 8E E9 7B 38 33 04 49 64  ü.@Õœ²ZiŽé{83.Id
 006EA210  FF ED 34 F1 CC 9A C3 83 31 7D 91 AB 0C 94 B8 6F  ÿí4ñ̚Ã1}‘«.”¸o
 006EA220  1F EE A0 68 79 81 CC F5 69 2D 2B 50 0A F9 B9 F8  .î hy.Ìõi-+P.ù¹ø
 006EA230  71 C8 9E 0C 5A 79 90 2F 4E BD 4E 13 50 53 33 5F  qÈž.Zy./N½N.PS3_
 006EA240  43 20 30 2E 30 30 00 00 00 00 D7 04 21 F2 92 9C  C 0.00....×.!ò’œ
 006EA250  E3 65 6B AC 5D F8 B1 9A 5C 27 13 02 90 C6 EA 04  ãek¬]ø±š\'...Æê.
 006EA260  F0 BE B2 7D 13 DC 20 4E 4F 25 9A 3E 48 5A A7 6D  ð¾²}.Ü NO%š>HZ§m
 006EA270  50 F5 84 67 BD 9E D7 76 07 55 65 91 3A C8 8D 2B  Põ„g½ž×v.Ue‘:È.+
 006EA280  CC 2B 2F A4 D6 5F 08 28 1F A2 4C 4E D1 96 1D 40  Ì+/¤Ö_.(.¢LNÑ–.@
 006EA290  9C 3B FA EE 60 A5 9A 80 CB 0D EF C2 CE 93 87 7A  œ;úî`¥š€Ë.ïÂΓ‡z
 006EA2A0  38 67 16 15 8C A5 A8 EE 26 60 8E 0E 03 DE 05 BB  8g..Œ¥¨î&`Ž..Þ.»
 006EA2B0  ED D0 D4 03 38 40 B5 0E B8 57 30 B2 25 08 C2 AE  íÐÔ.8@µ.¸W0²%.®
 006EA2C0  F9 D3 87 BD 59 4D 19 44 AE 83 00 00 00 02 00 01  ùÓ‡½YM.D®ƒ......
 006EA2D0  00 6D A4 38 00 03 00 00 00 6D A4 80 00 04 00 00  .m¤8.....m¤€....
 006EA2E0  00 6D A4 78 00 00 00 00 00 00 00 00 00 02 00 01  .m¤x............
 006EA2F0  00 6D A4 70 00 03 00 00 00 6D A4 28 00 04 00 00  .m¤p.....m¤(....
 006EA300  00 6D A4 20 00 00 00 00 00 00 00 00 00 02 00 01  .m¤ ............
 006EA310  00 6D A4 48 00 03 00 00 00 6D A4 40 00 04 00 00  .m¤H.....m¤@....
 006EA320  00 6D A4 30 00 00 00 00 00 00 00 00 FF FF FF FF  .m¤0........ÿÿÿÿ
 006EA330  FF FF FF FF FF FF FF FF 00 00 00 00 FF FF FF FF  ÿÿÿÿÿÿÿÿ....ÿÿÿÿ
 006EA340  00 00 00 00 FF FF FF FF FF FF FF FF 00 68 85 88  ....ÿÿÿÿÿÿÿÿ.h…ˆ
 006EA350  00 68 85 90 00 00 00 00 00 00 00 00 00 00 00 00  .h….............
 006EA360  00 00 01 BB 00 00 00 00 01 00 00 00 00 00 00 02  ...»............

to add

 <deroad> @eussNL there is a thing not written in the wiki (i can't access now, don't know why) http://xmb-e.dl.playstation.net/
 <deroad> a guy told me that homebrews under PSN category sends this to sony: xmb-e.dl.playstation.net/xmb/l?env=np&serv=PSChannel&cc=us

found in explore_plugin.sprx --Nas plugi 04:58, 9 August 2013 (MSK)

Ports

http://portforward.com/cports.htm

3.55 spoofed with jailbait SEN/PSN enabler

http://www.ps3hax.net/showthread.php?t=38472&page=18

Title Status Remarks
Army of Two the 40th day Yes
Battlefield 1943 (PSN) Yes
Battlefield BC2 Yes work with last update (1.05)
Battlefield 3 Yes only invite
Blur Yes
Borderlands Yes
Burnout Paradise and DLC (PSN) Yes
Burnout Yes
Call of Duty 4 Yes
Call of Duty Black Ops No param.sfo edit app version to 1.13
Call of Duty Modern Warfare 2 Yes Needs update 1.12
Call of Duty Modern Warfare 3 (TB) No
Call of Duty World At War Yes
Call of Juarez: Bond by Blood Yes
Crash Bandicot (PSN) Yes
Crysis 2 Yes
Dead Rising 2 Yes
Dead Space 2 Yes
Dragon Ball Raging Blast 2 Yes
Far Cry 2 Yes
FIFA11 Yes
FIFA12 Yes param.sfo edit app version to 1.07 (that way hard to find match!) OR backup EBOOT.BIN & fifazf.self (leave param.sfo original), update game to 1.06 replace EBOOT.BIN & fifazf.self with backuped one. (That way it found matches quickly BUT! for me fifa lags ALOOOT in both kick off and online head to head, controls lags, replay lags like 2 FPS .... )
Fifa Street (TB) Yes
GTA IV Yes
Homefront Yes
Infamous 2 No
Killzone 2 Yes
Killzone 3 No
Little Big Planet GOTY Yes
Lara Croft: Guardian of Light Yes
Marvel Ultimate Alliance 2 Yes
Marvel vs Capcom 3 Yes
MK vs Dc Yes
Mortal Kombat 9 Yes
Naruto Ultimate Ninja Storm 2 Yes
NBA 2k11 Yes
NBA 2k12 No
Need for Speed Hot Pursuit No
Need for Speed Undercover No
PES11 Yes
PES12 Yes
Pure Yes
Red Dead Redemption: Undead Nightmare Yes work with last update
Rage Yes Join?
Resident Evil 5 Gold edition Yes
Ridge Racer 7 Yes
Saints Row 2 Yes
Singularity Yes
Smackdown vs RAW 2011 Yes
Tekken 6 Yes
Top Spin 4 No
Transformers: War For Cybertron Yes Update 1.01
Tron: Evolution Yes Update 1.02
Uncharted 3 No Update does not work
Unreal Tournament 3 Yes Update 2.00
Virtual Tennis 4 Yes
White Knight Chronicles Yes Update 1.01
WWE All Stars Yes
Yes
Yes
No
No

Passphrase, ID, Sig

So a little bit about the passphrase and ID... the passphrase is 128 bytes encrypted.

SceNpCommunicationId communication_id = {
		{'N','P','X','S','0','0','0','0','5'},
		'\0',
		0,
		0
};

SceNpCommunicationPassphrase communication_passphrase = {
	{
		0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
		0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
		0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
		0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
		0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
		0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
		0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
		0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
		0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
		0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
		0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
		0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
		0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
		0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
		0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
		0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa
	}
};


SceNpCommunicationId *get_np_communication_id(void)
{
	return &communication_id;
}

SceNpCommunicationPassphrase *get_np_communication_passphrase(void)
{
	return &communication_passphrase;
}

I shouldn't really have to explain this but just in case...

ID

static const SceNpCommunicationId s_communication_id = {
	{'N','P','X','S','0','0','0','2','7'},
	'\0',
	0,
	0
};

This is the format in which the NP ID will be displayed (don't know much about it).

The request for the ID is very simple:

const SceNpCommunicationId* NpConf::npCommId(int i)
{
	(void)i;
	return(&s_communication_id);
}

Passphrase

As we know it's 128 bytes encrypted. Displayed like so...

static const SceNpCommunicationPassphrase s_communication_passphrase = {
	{
		0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
		0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
		0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
		0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
		0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
		0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
		0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
		0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
		0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
		0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
		0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
		0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
		0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
		0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
		0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
		0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa
	}

};

The auth is as simple as the IDs.

const SceNpCommunicationPassphrase* NpConf::npCommPassphrase(int i)
{
	(void)i;
	return(&s_communication_passphrase);
}


Also, this a encrypted passphrase (maybe) from 4.00 it's taken from the same format in the code above but there's a lot more characters...

8dade4164f15e26e323668124aa89083b44414c66db2bddcc0ef67f6ca4c1eedc364db4800b62d63e5ecb33e2a1b4db4edc1ee3802a042f06d600eb5cb40236cefcda6136c5a26dd624a1a2fc197b25a4a3b06660f0d3f44bf538971089e44a91169f062c6743dd701f90f256ab5ab539dc943e057303559f66057b39e49b661

Sig

Digital Signature (know nothing about it).

Not sure how it's displayed but it's auth is simple.

const SceNpCommunicationSignature* NpConf::npCommSig(int i)
{
	(void)i;
	return 0;
}

gen_keying_material.py

#!python2

import sys, os, struct, hashlib, re

if len(sys.argv) < 6:
	script_file_name = os.path.split(sys.argv[0])[1]
	print 'usage: {0} <premaster secret> <client random> <server random> <session id> <log file>'.format(script_file_name)
	sys.exit()

def clean_whitespace(s):
	return re.sub(r'\s+', '', s)

ssl3_premaster_secret_size = 48
ssl3_random_size = 32
ssl3_session_id_size = 32

premaster_secret = clean_whitespace(sys.argv[1]).decode('hex')
client_random = clean_whitespace(sys.argv[2]).decode('hex')
if len(client_random) != ssl3_random_size:
	print 'error: client random should have {0} bytes'.format(ssl3_random_size)
	sys.exit()

server_random = clean_whitespace(sys.argv[3]).decode('hex')
if len(server_random) != ssl3_random_size:
	print 'error: server random should have {0} bytes'.format(ssl3_random_size)
	sys.exit()

session_id = clean_whitespace(sys.argv[4]).decode('hex')
if len(session_id) != ssl3_session_id_size:
	print 'error: session id should have {0} bytes'.format(ssl3_session_id_size)
	sys.exit()

log_file_path = sys.argv[5]
if os.path.exists(log_file_path) and not os.path.isfile(log_file_path):
	print 'error: invalid log file specified'
	sys.exit()

def sha1(data):
	return hashlib.sha1(data).digest()

def md5(data):
	return hashlib.md5(data).digest()

def ssl3_prf(secret, rnd1, rnd2):
	result = ''
	for salt in ['A', 'BB', 'CCC']:
		result += md5(secret + sha1(salt + secret + rnd1 + rnd2))
	return result

master_secret = ssl3_prf(premaster_secret, client_random, server_random)
with open(log_file_path, 'a') as log_file:
	log_file.write('RSA Session-ID:{0} Master-Key:{1}\n'.format(session_id.encode('hex').upper(), master_secret.encode('hex').upper()))