Question

En fait, je suis wiresharking paquets sur ma PS3 lors de l'affichage Motorstorm Leaderboards. Les classements sont envoyés à mon ps3 au format XML, mais seulement après avoir été autorisé. Alors quelqu'un peut-il s'il vous plaît me dire ce qui se passe entre ces trois paquets et comment je pourrais le reproduire dans un navigateur?

1 paquet De ma PS3 aux serveurs 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>

paquet 2 Réponse Sony Server à ma 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>

Packet 3 réponse PS3 aux serveurs Sony dernier paquet

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>

J'ai essayé de reproduire ce en-têtes Firefox et de sabotage ainsi que dans cURL de PHP, mais im nulle part. Je suppose que c'est de faire avec les variables nonce, cnonce et Responce qui ne cessent de changer>

Était-ce utile?

La solution

Nonce, cnonce et ainsi de suite sont liés à HTTP Digest authentification , qui est une authentification mécanisme qui permet l'authentification sans envoyer un mot de passe en texte clair. Donc, si vous voulez tricher dans votre jeu PS3, vous devez d'abord pirater ce mot de passe de hachage MD5, je suppose.

Et ce n'est pas appelé HTTP paquets , sur la couche 7 vous dire habituellement demande / réponse ou similaire.

Autres conseils

Le nonce un nonce et cnonce ressembler à des codes de hachage.

Un mécanisme possible de la défense contre les tricheurs pourrait être ceci:

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

Du côté du serveur:

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()

Donc, sauf si vous voulez passer des semaines à essayer de trouver le

scroll top