mirror of
https://github.com/LBPUnion/ProjectLighthouse.git
synced 2025-08-02 10:08:39 +00:00
Get LoginData.Username by looking for it's prefix/header
This commit is contained in:
parent
5d9987024a
commit
474556b8a6
1 changed files with 8 additions and 10 deletions
|
@ -1,17 +1,9 @@
|
||||||
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using LBPUnion.ProjectLighthouse.Helpers;
|
using LBPUnion.ProjectLighthouse.Helpers;
|
||||||
|
|
||||||
namespace LBPUnion.ProjectLighthouse.Types {
|
namespace LBPUnion.ProjectLighthouse.Types {
|
||||||
// This is all the information I can understand for now. More testing is required.
|
|
||||||
// Example data:
|
|
||||||
// - LBP2 digital, with the RPCN username `literally1984`
|
|
||||||
// POST /LITTLEBIGPLANETPS3_XML/login?applicationID=21414&languageID=1&lbp2=1&beta=0&titleID=NPUA80662&country=us
|
|
||||||
// !<21>0256333||x||<7C><>Y literally198bruUP9000-NPUA80662_008D
|
|
||||||
// - LBP2 digital, with the RPCN username `jvyden`
|
|
||||||
// POST /LITTLEBIGPLANETPS3_XML/login?applicationID=21414&languageID=1&lbp2=1&beta=0&titleID=NPUA80662&country=us
|
|
||||||
// !<21>0220333||/u||=0<> jvydebruUP9000-NPUA80662_008D
|
|
||||||
// Data is 251 bytes long.
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The data sent from POST /LOGIN.
|
/// The data sent from POST /LOGIN.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -20,15 +12,21 @@ namespace LBPUnion.ProjectLighthouse.Types {
|
||||||
// public string GameVersion { get; set; }
|
// public string GameVersion { get; set; }
|
||||||
// public int UnknownNumber { get; set; } // Seems to increment by 1000 every login attempt
|
// public int UnknownNumber { get; set; } // Seems to increment by 1000 every login attempt
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Converts a X-I-5 Ticket into `LoginData`.
|
||||||
|
/// https://www.psdevwiki.com/ps3/X-I-5-Ticket
|
||||||
|
/// </summary>
|
||||||
public static LoginData CreateFromString(string str) {
|
public static LoginData CreateFromString(string str) {
|
||||||
str = str.Replace("\b", ""); // Remove backspace characters
|
str = str.Replace("\b", ""); // Remove backspace characters
|
||||||
|
|
||||||
using MemoryStream ms = new(Encoding.ASCII.GetBytes(str));
|
using MemoryStream ms = new(Encoding.ASCII.GetBytes(str));
|
||||||
using BinaryReader reader = new(ms);
|
using BinaryReader reader = new(ms);
|
||||||
|
|
||||||
|
string usernamePrefix = Encoding.ASCII.GetString(new byte[] { 0x04, 0x00, 0x20 });
|
||||||
|
|
||||||
LoginData loginData = new();
|
LoginData loginData = new();
|
||||||
|
|
||||||
reader.BaseStream.Position = 80;
|
reader.BaseStream.Position = str.IndexOf(usernamePrefix, StringComparison.Ordinal) + usernamePrefix.Length;
|
||||||
loginData.Username = BinaryHelper.ReadString(reader).Replace("\0", string.Empty);
|
loginData.Username = BinaryHelper.ReadString(reader).Replace("\0", string.Empty);
|
||||||
|
|
||||||
return loginData;
|
return loginData;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue