Code:
private static readonly byte[] Xor32KeysS5 = new byte[32] { 0xE7, 0x6D, 0x3A,0x89, 0xBC, 0xB2, 0x9F, 0x73,
0x23, 0xA8, 0xFE, 0xB6, 0x49, 0x5D, 0x39,0x5D,
0x8A, 0xCB, 0x63, 0x8D, 0xEA, 0x7D, 0x2B, 0x5F,
0xC3, 0xB1, 0xE9, 0x83, 0x29, 0x51, 0xE8, 0x56 };
private static readonly byte[] Xor32KeysS6 = new byte[32] { 0xAB, 0x11, 0xCD, 0xFE, 0x18, 0x23, 0xC5, 0xA3,
0xCA, 0x33, 0xC1, 0xCC, 0x66, 0x67, 0x21, 0xF3,
0x32, 0x12, 0x15, 0x35, 0x29, 0xFF, 0xFE, 0x1D,
0x44, 0xEF, 0xCD, 0x41, 0x26, 0x3C, 0x4E, 0x4D };
private static byte[] EncXor32(byte[] Data)
{
int HeaderSize = GetHeaderSize(Data[0]);
for (int i = HeaderSize + 1; i < Data.Length; i++)
Data[i] = (byte)(Data[i] ^ Data[i - 1] ^ Xor32KeysS6[i % 32]);
return Data;
}
private static byte[] DecXor32(byte[] Data)
{
int HeaderSize = GetHeaderSize(Data[0]);
for (int i = Data.Length - 1; i > HeaderSize; i--)
Data[i] = (byte)(Data[i] ^ Data[i - 1] ^ Xor32KeysS6[(i) % 32]);
return Data;
}
Bookmarks