Pergunta

basicamente, eu estava compartilhando pacotes no meu PS3 enquanto visualizava as tabelas de classificação do Motorstorm.As tabelas de classificação são enviadas para o meu PS3 em formato XML, mas somente depois de eu ter sido autorizado.Alguém pode me dizer o que está acontecendo entre esses três pacotes e como posso replicá-los em um navegador?

Pacote 1 do meu PS3 para servidores Sony

POST /ranking_view/func/get_player_rank HTTP/1.1
Host: ranking-view-a01.u0.np.community.playstation.net
Connection: Keep-Alive
Content-Length: 213
Authorization: Digest username="c7y-ranking01", realm="c7y-ranking", nonce="2SpsV4WABAA=47a2b36030cd94de1190f6b9f05db1bd5584bc2a", uri="/ranking_view/func/get_player_rank", qop="auth", nc="00000001", cnonce="d4eb1eb60ab4efaea1476869d83a6e0b", response="96b55c6e79f84dd41b46eb66bed1c167"
Accept-Encoding: identity
User-Agent: PS3Community-agent/1.0.0 libhttp/1.0.0

<?xml version="1.0" encoding="utf-8"?><ranking platform="ps3" sv="3.15"><titleid>NPWR00012_00</titleid><board>7</board><jid>Panzerborn@a5.gb.np.playstation.net</jid><option message="false" info="false"/></ranking>

Pacote 2 Resposta do servidor Sony para meu PS3

Date: Fri, 26 Feb 2010 19:06:12 GMT
WWW-Authenticate: Digest realm="c7y-ranking", nonce="a3PFl4WABAA=6d375259676ec79641448a8032a795b8e12ccae4", algorithm=MD5, stale=true, qop="auth"
Content-Length: 401
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>401 Authorization Required</title>
</head><body>
<h1>Authorization Required</h1>
<p>This server could not verify that you
are authorized to access the document
requested.  Either you supplied the wrong
credentials (e.g., bad password), or your
browser doesn't understand how to supply
the credentials required.</p>
</body></html>

Resposta do pacote 3 PS3 ao último pacote dos servidores Sony

POST /ranking_view/func/get_player_rank HTTP/1.1
Host: ranking-view-a01.u0.np.community.playstation.net
Connection: Keep-Alive
Authorization: Digest username="c7y-ranking01", realm="c7y-ranking", nonce="a3PFl4WABAA=6d375259676ec79641448a8032a795b8e12ccae4", uri="/ranking_view/func/get_player_rank", qop="auth", nc="00000001", cnonce="58869490a891002d8c56573496274a3a", response="ca3d6f252d4e398b8f751c201a3f8f08"
Accept-Encoding: identity
User-Agent: PS3Community-agent/1.0.0 libhttp/1.0.0

<?xml version="1.0" encoding="utf-8"?><ranking platform="ps3" sv="3.15"><titleid>NPWR00012_00</titleid><board>7</board><jid>Panzerborn@a5.gb.np.playstation.net</jid><option message="false" info="false"/></ranking>

Tentei replicar isso no Firefox e adulterar cabeçalhos, bem como em PHP cURL, mas não cheguei a lugar nenhum.Presumo que tenha a ver com as variáveis ​​nonce, cnonce e responce que continuam mudando >< por favor ajude =)

Foi útil?

Solução

Nonce, cnonce e assim por diante estão relacionados a Autenticação HTTP Digest, que é um mecanismo de autenticação que permite a autenticação sem enviar uma senha em texto simples.Então, se você quiser trapacear em seu jogo de PS3, primeiro você terá que hackear a senha do hash MD5, eu acho.

E não é chamado HTTP pacotes, na camada 7 você normalmente diria solicitação/resposta ou similar.

Outras dicas

O nonce um nonce e cnonce parecem códigos hash.

Um possível mecanismo de defesa contra trapaceiros poderia ser este:

def ps3client_send_score():
    score = "bazillion points"
    nonce = md5(score + "something you don't know about")
    send_to_server(score, nonce)

Do lado do servidor:

def get_client_score(score, nonce):
    if md5(score+"something you don't know about")==nonce:
        accept_score(score)
    else:
        reject_score_and_ban_the_fool_if_he_continues_this()

Então, a menos que você queira passar semanas tentando encontrar o sal profundamente no seu jogo, esqueça.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top