551 lines
15 KiB
C#
551 lines
15 KiB
C#
using System;
|
|
using System.Runtime.InteropServices;
|
|
using System.Text;
|
|
|
|
namespace Sony.NP
|
|
{
|
|
// Token: 0x02000131 RID: 305
|
|
internal class MemoryBuffer
|
|
{
|
|
// Token: 0x0600063F RID: 1599 RVA: 0x000115B6 File Offset: 0x000105B6
|
|
public MemoryBuffer(NpMemoryBuffer pointer)
|
|
{
|
|
this.rawBuffer.data = pointer.data;
|
|
this.rawBuffer.size = pointer.size;
|
|
this.pos = this.rawBuffer.data;
|
|
}
|
|
|
|
// Token: 0x06000640 RID: 1600 RVA: 0x000115F6 File Offset: 0x000105F6
|
|
public void CheckStartMarker()
|
|
{
|
|
this.CheckMarker(MemoryBuffer.BufferIntegrityChecks.BufferBegin);
|
|
}
|
|
|
|
// Token: 0x06000641 RID: 1601 RVA: 0x00011601 File Offset: 0x00010601
|
|
public void CheckEndMarker()
|
|
{
|
|
this.CheckMarker(MemoryBuffer.BufferIntegrityChecks.BufferEnd);
|
|
}
|
|
|
|
// Token: 0x06000642 RID: 1602 RVA: 0x0001160C File Offset: 0x0001060C
|
|
public void CheckMarker(MemoryBuffer.BufferIntegrityChecks value)
|
|
{
|
|
byte b = Marshal.ReadByte(this.pos);
|
|
this.pos = new IntPtr(this.pos.ToInt64() + 1L);
|
|
byte b2 = Marshal.ReadByte(this.pos);
|
|
this.pos = new IntPtr(this.pos.ToInt64() + 1L);
|
|
byte b3 = Marshal.ReadByte(this.pos);
|
|
this.pos = new IntPtr(this.pos.ToInt64() + 1L);
|
|
byte b4 = Marshal.ReadByte(this.pos);
|
|
this.pos = new IntPtr(this.pos.ToInt64() + 1L);
|
|
if (b == 255 && b2 == 254 && b3 == 253 && (MemoryBuffer.BufferIntegrityChecks)b4 == value)
|
|
{
|
|
return;
|
|
}
|
|
throw new NpToolkitException("MemoryBuffer - CheckMarker error - Expecting " + value.ToString());
|
|
}
|
|
|
|
// Token: 0x06000643 RID: 1603 RVA: 0x000116F4 File Offset: 0x000106F4
|
|
public void CheckBufferOverflow(string method)
|
|
{
|
|
long num = this.pos.ToInt64() - this.rawBuffer.data.ToInt64();
|
|
if ((uint)num > this.rawBuffer.size)
|
|
{
|
|
throw new NpToolkitException(string.Concat(new object[]
|
|
{
|
|
"MemoryBuffer - Overflow error detected. (",
|
|
method,
|
|
") (",
|
|
num,
|
|
",",
|
|
this.rawBuffer.size,
|
|
")"
|
|
}));
|
|
}
|
|
}
|
|
|
|
// Token: 0x06000644 RID: 1604 RVA: 0x0001178C File Offset: 0x0001078C
|
|
public bool ReadBool()
|
|
{
|
|
this.CheckBufferOverflow("ReadBool");
|
|
byte b = Marshal.ReadByte(this.pos);
|
|
this.pos = new IntPtr(this.pos.ToInt64() + 1L);
|
|
return b != 0;
|
|
}
|
|
|
|
// Token: 0x06000645 RID: 1605 RVA: 0x000117E0 File Offset: 0x000107E0
|
|
public sbyte ReadInt8()
|
|
{
|
|
this.CheckBufferOverflow("ReadInt8");
|
|
sbyte b = (sbyte)Marshal.ReadByte(this.pos);
|
|
this.pos = new IntPtr(this.pos.ToInt64() + 1L);
|
|
return b;
|
|
}
|
|
|
|
// Token: 0x06000646 RID: 1606 RVA: 0x00011828 File Offset: 0x00010828
|
|
public byte ReadUInt8()
|
|
{
|
|
this.CheckBufferOverflow("ReadUInt8");
|
|
byte b = Marshal.ReadByte(this.pos);
|
|
this.pos = new IntPtr(this.pos.ToInt64() + 1L);
|
|
return b;
|
|
}
|
|
|
|
// Token: 0x06000647 RID: 1607 RVA: 0x0001186C File Offset: 0x0001086C
|
|
public short ReadInt16()
|
|
{
|
|
this.CheckBufferOverflow("ReadInt16");
|
|
short num = Marshal.ReadInt16(this.pos);
|
|
this.pos = new IntPtr(this.pos.ToInt64() + 2L);
|
|
return num;
|
|
}
|
|
|
|
// Token: 0x06000648 RID: 1608 RVA: 0x000118B0 File Offset: 0x000108B0
|
|
public ushort ReadUInt16()
|
|
{
|
|
this.CheckBufferOverflow("ReadUInt16");
|
|
ushort num = (ushort)Marshal.ReadInt16(this.pos);
|
|
this.pos = new IntPtr(this.pos.ToInt64() + 2L);
|
|
return num;
|
|
}
|
|
|
|
// Token: 0x06000649 RID: 1609 RVA: 0x000118F8 File Offset: 0x000108F8
|
|
public int ReadInt32()
|
|
{
|
|
this.CheckBufferOverflow("ReadInt32");
|
|
int num = Marshal.ReadInt32(this.pos);
|
|
this.pos = new IntPtr(this.pos.ToInt64() + 4L);
|
|
return num;
|
|
}
|
|
|
|
// Token: 0x0600064A RID: 1610 RVA: 0x0001193C File Offset: 0x0001093C
|
|
public uint ReadUInt32()
|
|
{
|
|
this.CheckBufferOverflow("ReadUInt32");
|
|
uint num = (uint)Marshal.ReadInt32(this.pos);
|
|
this.pos = new IntPtr(this.pos.ToInt64() + 4L);
|
|
return num;
|
|
}
|
|
|
|
// Token: 0x0600064B RID: 1611 RVA: 0x00011980 File Offset: 0x00010980
|
|
public long ReadInt64()
|
|
{
|
|
this.CheckBufferOverflow("ReadInt64");
|
|
long num = Marshal.ReadInt64(this.pos);
|
|
this.pos = new IntPtr(this.pos.ToInt64() + 8L);
|
|
return num;
|
|
}
|
|
|
|
// Token: 0x0600064C RID: 1612 RVA: 0x000119C4 File Offset: 0x000109C4
|
|
public ulong ReadUInt64()
|
|
{
|
|
this.CheckBufferOverflow("ReadUInt64");
|
|
ulong num = (ulong)Marshal.ReadInt64(this.pos);
|
|
this.pos = new IntPtr(this.pos.ToInt64() + 8L);
|
|
return num;
|
|
}
|
|
|
|
// Token: 0x0600064D RID: 1613 RVA: 0x00011A08 File Offset: 0x00010A08
|
|
public IntPtr ReadPtr()
|
|
{
|
|
this.CheckBufferOverflow("ReadPtr");
|
|
long num = Marshal.ReadInt64(this.pos);
|
|
this.pos = new IntPtr(this.pos.ToInt64() + 8L);
|
|
IntPtr intPtr = new IntPtr(num);
|
|
return intPtr;
|
|
}
|
|
|
|
// Token: 0x0600064E RID: 1614 RVA: 0x00011A58 File Offset: 0x00010A58
|
|
public double ReadDouble()
|
|
{
|
|
this.CheckBufferOverflow("ReadDouble");
|
|
double[] array = new double[1];
|
|
Marshal.Copy(this.pos, array, 0, 1);
|
|
this.pos = new IntPtr(this.pos.ToInt64() + 8L);
|
|
return array[0];
|
|
}
|
|
|
|
// Token: 0x0600064F RID: 1615 RVA: 0x00011AA8 File Offset: 0x00010AA8
|
|
public uint ReadData(ref byte[] data)
|
|
{
|
|
this.CheckBufferOverflow("ReadData");
|
|
uint num = this.ReadUInt32();
|
|
uint num2;
|
|
if (num == 0U)
|
|
{
|
|
num2 = 0U;
|
|
}
|
|
else
|
|
{
|
|
if (data == null || (long)data.Length != (long)((ulong)num))
|
|
{
|
|
data = new byte[num];
|
|
}
|
|
Marshal.Copy(this.pos, data, 0, (int)num);
|
|
this.pos = new IntPtr(this.pos.ToInt64() + (long)((ulong)num));
|
|
num2 = num;
|
|
}
|
|
return num2;
|
|
}
|
|
|
|
// Token: 0x06000650 RID: 1616 RVA: 0x00011B28 File Offset: 0x00010B28
|
|
public uint ReadData(ref byte[] data, uint startIndex)
|
|
{
|
|
this.CheckBufferOverflow("ReadData");
|
|
uint num = this.ReadUInt32();
|
|
uint num2;
|
|
if (num == 0U)
|
|
{
|
|
num2 = 0U;
|
|
}
|
|
else
|
|
{
|
|
if (data == null || (ulong)(startIndex + num) > (ulong)((long)data.Length))
|
|
{
|
|
byte[] array = new byte[num];
|
|
if (data != null)
|
|
{
|
|
Array.Copy(data, array, (long)((ulong)startIndex));
|
|
}
|
|
data = array;
|
|
}
|
|
Marshal.Copy(this.pos, data, (int)startIndex, (int)num);
|
|
this.pos = new IntPtr(this.pos.ToInt64() + (long)((ulong)num));
|
|
num2 = num;
|
|
}
|
|
return num2;
|
|
}
|
|
|
|
// Token: 0x06000651 RID: 1617 RVA: 0x00011BC4 File Offset: 0x00010BC4
|
|
public void ReadString(ref string str)
|
|
{
|
|
this.CheckBufferOverflow("ReadString");
|
|
byte[] array = null;
|
|
uint num = this.ReadData(ref array);
|
|
if (num == 0U)
|
|
{
|
|
str = "";
|
|
}
|
|
else
|
|
{
|
|
str = Encoding.UTF8.GetString(array, 0, array.Length);
|
|
}
|
|
}
|
|
|
|
// Token: 0x06000652 RID: 1618 RVA: 0x00011C10 File Offset: 0x00010C10
|
|
public override string ToString()
|
|
{
|
|
long num = this.pos.ToInt64() - this.rawBuffer.data.ToInt64();
|
|
return string.Concat(new object[]
|
|
{
|
|
"Memorry buffer : Data = (",
|
|
this.rawBuffer.data.ToInt64().ToString("X"),
|
|
") Size = (",
|
|
this.rawBuffer.size,
|
|
") Read = (",
|
|
num,
|
|
")"
|
|
});
|
|
}
|
|
|
|
// Token: 0x040004FA RID: 1274
|
|
private NpMemoryBuffer rawBuffer;
|
|
|
|
// Token: 0x040004FB RID: 1275
|
|
private IntPtr pos;
|
|
|
|
// Token: 0x02000132 RID: 306
|
|
public enum BufferIntegrityChecks
|
|
{
|
|
// Token: 0x040004FD RID: 1277
|
|
BufferBegin,
|
|
// Token: 0x040004FE RID: 1278
|
|
BufferEnd,
|
|
// Token: 0x040004FF RID: 1279
|
|
OnlineUserBegin,
|
|
// Token: 0x04000500 RID: 1280
|
|
OnlineUserEnd,
|
|
// Token: 0x04000501 RID: 1281
|
|
NpOnlineIdBegin,
|
|
// Token: 0x04000502 RID: 1282
|
|
NpOnlineIdEnd,
|
|
// Token: 0x04000503 RID: 1283
|
|
SceNpIdBegin,
|
|
// Token: 0x04000504 RID: 1284
|
|
SceNpIdEnd,
|
|
// Token: 0x04000505 RID: 1285
|
|
NpCountryCodeBegin,
|
|
// Token: 0x04000506 RID: 1286
|
|
NpCountryCodeEnd,
|
|
// Token: 0x04000507 RID: 1287
|
|
NpTitleIdBegin,
|
|
// Token: 0x04000508 RID: 1288
|
|
NpTitleIdEnd,
|
|
// Token: 0x04000509 RID: 1289
|
|
NpLanguageCodeBegin,
|
|
// Token: 0x0400050A RID: 1290
|
|
NpLanguageCodeEnd,
|
|
// Token: 0x0400050B RID: 1291
|
|
PNGBegin,
|
|
// Token: 0x0400050C RID: 1292
|
|
PNGEnd,
|
|
// Token: 0x0400050D RID: 1293
|
|
FriendsBegin,
|
|
// Token: 0x0400050E RID: 1294
|
|
FriendsEnd,
|
|
// Token: 0x0400050F RID: 1295
|
|
FriendBegin,
|
|
// Token: 0x04000510 RID: 1296
|
|
FriendEnd,
|
|
// Token: 0x04000511 RID: 1297
|
|
FriendsOfFriendsBegin,
|
|
// Token: 0x04000512 RID: 1298
|
|
FriendsOfFriendsEnd,
|
|
// Token: 0x04000513 RID: 1299
|
|
BlockedUsersBegin,
|
|
// Token: 0x04000514 RID: 1300
|
|
BlockedUsersEnd,
|
|
// Token: 0x04000515 RID: 1301
|
|
ProfileBegin,
|
|
// Token: 0x04000516 RID: 1302
|
|
ProfileEnd,
|
|
// Token: 0x04000517 RID: 1303
|
|
RealNameBegin,
|
|
// Token: 0x04000518 RID: 1304
|
|
RealNameEnd,
|
|
// Token: 0x04000519 RID: 1305
|
|
PresenceBegin,
|
|
// Token: 0x0400051A RID: 1306
|
|
PresenceEnd,
|
|
// Token: 0x0400051B RID: 1307
|
|
PlatformPresenceBegin,
|
|
// Token: 0x0400051C RID: 1308
|
|
PlatformPresenceEnd,
|
|
// Token: 0x0400051D RID: 1309
|
|
NpProfilesBegin,
|
|
// Token: 0x0400051E RID: 1310
|
|
NpProfilesEnd,
|
|
// Token: 0x0400051F RID: 1311
|
|
BandwidthInfoBegin,
|
|
// Token: 0x04000520 RID: 1312
|
|
BandwidthInfoEnd,
|
|
// Token: 0x04000521 RID: 1313
|
|
NetStateBasicBegin,
|
|
// Token: 0x04000522 RID: 1314
|
|
NetStateBasicEnd,
|
|
// Token: 0x04000523 RID: 1315
|
|
NetStateDetailedBegin,
|
|
// Token: 0x04000524 RID: 1316
|
|
NetStateDetailedEnd,
|
|
// Token: 0x04000525 RID: 1317
|
|
UnlockedTrophiesBegin,
|
|
// Token: 0x04000526 RID: 1318
|
|
UnlockedTrophiesEnd,
|
|
// Token: 0x04000527 RID: 1319
|
|
TrophyPackSummaryBegin,
|
|
// Token: 0x04000528 RID: 1320
|
|
TrophyPackSummaryEnd,
|
|
// Token: 0x04000529 RID: 1321
|
|
TrophyPackGroupBegin,
|
|
// Token: 0x0400052A RID: 1322
|
|
TrophyPackGroupEnd,
|
|
// Token: 0x0400052B RID: 1323
|
|
TrophyPackTrophyBegin,
|
|
// Token: 0x0400052C RID: 1324
|
|
TrophyPackTrophyEnd,
|
|
// Token: 0x0400052D RID: 1325
|
|
TempRankBegin,
|
|
// Token: 0x0400052E RID: 1326
|
|
TempRankEnd,
|
|
// Token: 0x0400052F RID: 1327
|
|
RangeOfRanksBegin,
|
|
// Token: 0x04000530 RID: 1328
|
|
RangeOfRanksEnd,
|
|
// Token: 0x04000531 RID: 1329
|
|
FriendsRanksBegin,
|
|
// Token: 0x04000532 RID: 1330
|
|
FriendsRanksEnd,
|
|
// Token: 0x04000533 RID: 1331
|
|
UsersRanksBegin,
|
|
// Token: 0x04000534 RID: 1332
|
|
UsersRanksEnd,
|
|
// Token: 0x04000535 RID: 1333
|
|
SetGameDataBegin,
|
|
// Token: 0x04000536 RID: 1334
|
|
SetGameDataEnd,
|
|
// Token: 0x04000537 RID: 1335
|
|
GetGameDataBegin,
|
|
// Token: 0x04000538 RID: 1336
|
|
GetGameDataEnd,
|
|
// Token: 0x04000539 RID: 1337
|
|
WorldsBegin,
|
|
// Token: 0x0400053A RID: 1338
|
|
WorldsEnd,
|
|
// Token: 0x0400053B RID: 1339
|
|
CreateRoomBegin,
|
|
// Token: 0x0400053C RID: 1340
|
|
CreateRoomEnd,
|
|
// Token: 0x0400053D RID: 1341
|
|
RoomBegin,
|
|
// Token: 0x0400053E RID: 1342
|
|
RoomEnd,
|
|
// Token: 0x0400053F RID: 1343
|
|
RoomsBegin,
|
|
// Token: 0x04000540 RID: 1344
|
|
RoomsEnd,
|
|
// Token: 0x04000541 RID: 1345
|
|
RoomPingTimeBegin,
|
|
// Token: 0x04000542 RID: 1346
|
|
RoomPingTimeEnd,
|
|
// Token: 0x04000543 RID: 1347
|
|
GetDataBegin,
|
|
// Token: 0x04000544 RID: 1348
|
|
GetDataEnd,
|
|
// Token: 0x04000545 RID: 1349
|
|
TssDataBegin,
|
|
// Token: 0x04000546 RID: 1350
|
|
TssDataEnd,
|
|
// Token: 0x04000547 RID: 1351
|
|
TusVariablesBegin,
|
|
// Token: 0x04000548 RID: 1352
|
|
TusVariablesEnd,
|
|
// Token: 0x04000549 RID: 1353
|
|
TusAtomicAddToAndGetVariableBegin,
|
|
// Token: 0x0400054A RID: 1354
|
|
TusAtomicAddToAndGetVariableEnd,
|
|
// Token: 0x0400054B RID: 1355
|
|
TusDataBegin,
|
|
// Token: 0x0400054C RID: 1356
|
|
TusDataEnd,
|
|
// Token: 0x0400054D RID: 1357
|
|
GameDataMessagesBegin,
|
|
// Token: 0x0400054E RID: 1358
|
|
GameDataMessagesEnd,
|
|
// Token: 0x0400054F RID: 1359
|
|
GameDataMessageThumbnailBegin,
|
|
// Token: 0x04000550 RID: 1360
|
|
GameDataMessageThumbnailEnd,
|
|
// Token: 0x04000551 RID: 1361
|
|
GameDataMessageAttachmentBegin,
|
|
// Token: 0x04000552 RID: 1362
|
|
GameDataMessageAttachmentEnd,
|
|
// Token: 0x04000553 RID: 1363
|
|
GameDataMessageBegin,
|
|
// Token: 0x04000554 RID: 1364
|
|
GameDataMessageEnd,
|
|
// Token: 0x04000555 RID: 1365
|
|
GameDataMessageDetailsBegin,
|
|
// Token: 0x04000556 RID: 1366
|
|
GameDataMessageDetailsEnd,
|
|
// Token: 0x04000557 RID: 1367
|
|
CategoriesBegin,
|
|
// Token: 0x04000558 RID: 1368
|
|
CategoriesEnd,
|
|
// Token: 0x04000559 RID: 1369
|
|
CategoryBegin,
|
|
// Token: 0x0400055A RID: 1370
|
|
CategoryEnd,
|
|
// Token: 0x0400055B RID: 1371
|
|
SubCategoryBegin,
|
|
// Token: 0x0400055C RID: 1372
|
|
SubCategoryEnd,
|
|
// Token: 0x0400055D RID: 1373
|
|
ProductsBegin,
|
|
// Token: 0x0400055E RID: 1374
|
|
ProductsEnd,
|
|
// Token: 0x0400055F RID: 1375
|
|
ProductBegin,
|
|
// Token: 0x04000560 RID: 1376
|
|
ProductEnd,
|
|
// Token: 0x04000561 RID: 1377
|
|
ProductDetailsBegin,
|
|
// Token: 0x04000562 RID: 1378
|
|
ProductDetailsEnd,
|
|
// Token: 0x04000563 RID: 1379
|
|
SkuInfoBegin,
|
|
// Token: 0x04000564 RID: 1380
|
|
SkuInfoEnd,
|
|
// Token: 0x04000565 RID: 1381
|
|
ServiceEntitlementsBegin,
|
|
// Token: 0x04000566 RID: 1382
|
|
ServiceEntitlementsEnd,
|
|
// Token: 0x04000567 RID: 1383
|
|
ServiceEntitlementBegin,
|
|
// Token: 0x04000568 RID: 1384
|
|
ServiceEntitlementEnd,
|
|
// Token: 0x04000569 RID: 1385
|
|
AuthCodeBegin,
|
|
// Token: 0x0400056A RID: 1386
|
|
AuthCodeEnd,
|
|
// Token: 0x0400056B RID: 1387
|
|
IdTokenBegin,
|
|
// Token: 0x0400056C RID: 1388
|
|
IdTokenEnd,
|
|
// Token: 0x0400056D RID: 1389
|
|
WordFilterBegin,
|
|
// Token: 0x0400056E RID: 1390
|
|
WordFilterEnd,
|
|
// Token: 0x0400056F RID: 1391
|
|
FriendListUpdateBegin,
|
|
// Token: 0x04000570 RID: 1392
|
|
FriendListUpdateEnd,
|
|
// Token: 0x04000571 RID: 1393
|
|
BlocklistUpdateBegin,
|
|
// Token: 0x04000572 RID: 1394
|
|
BlocklistUpdateEnd,
|
|
// Token: 0x04000573 RID: 1395
|
|
PresenceUpdateBegin,
|
|
// Token: 0x04000574 RID: 1396
|
|
PresenceUpdateEnd,
|
|
// Token: 0x04000575 RID: 1397
|
|
UserStateChangeBegin,
|
|
// Token: 0x04000576 RID: 1398
|
|
UserStateChangeEnd,
|
|
// Token: 0x04000577 RID: 1399
|
|
NetStateChangeBegin,
|
|
// Token: 0x04000578 RID: 1400
|
|
NetStateChangeEnd,
|
|
// Token: 0x04000579 RID: 1401
|
|
RefreshRoomBegin,
|
|
// Token: 0x0400057A RID: 1402
|
|
RefreshRoomEnd,
|
|
// Token: 0x0400057B RID: 1403
|
|
InvitationReceivedBegin,
|
|
// Token: 0x0400057C RID: 1404
|
|
InvitationReceivedEnd,
|
|
// Token: 0x0400057D RID: 1405
|
|
NewRoomMessageBegin,
|
|
// Token: 0x0400057E RID: 1406
|
|
NewRoomMessageEnd,
|
|
// Token: 0x0400057F RID: 1407
|
|
NewInGameMessageBegin,
|
|
// Token: 0x04000580 RID: 1408
|
|
NewInGameMessageEnd,
|
|
// Token: 0x04000581 RID: 1409
|
|
NewGameDataMessageBegin,
|
|
// Token: 0x04000582 RID: 1410
|
|
NewGameDataMessageEnd,
|
|
// Token: 0x04000583 RID: 1411
|
|
SessionInvitationEventBegin,
|
|
// Token: 0x04000584 RID: 1412
|
|
SessionInvitationEventEnd,
|
|
// Token: 0x04000585 RID: 1413
|
|
PlayTogetherHostEventBegin,
|
|
// Token: 0x04000586 RID: 1414
|
|
PlayTogetherHostEventEnd,
|
|
// Token: 0x04000587 RID: 1415
|
|
GameCustomDataEventBegin,
|
|
// Token: 0x04000588 RID: 1416
|
|
GameCustomDataEventEnd,
|
|
// Token: 0x04000589 RID: 1417
|
|
CheckPlusBegin,
|
|
// Token: 0x0400058A RID: 1418
|
|
CheckPlusEnd,
|
|
// Token: 0x0400058B RID: 1419
|
|
GetParentalControlInfoBegin,
|
|
// Token: 0x0400058C RID: 1420
|
|
GetParentalControlInfoEnd
|
|
}
|
|
}
|
|
}
|