123 lines
3.4 KiB
C#
123 lines
3.4 KiB
C#
using UnityEngine;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Runtime.InteropServices;
|
|
using System.Diagnostics;
|
|
using System.IO;
|
|
using System.Text;
|
|
using System.Security.Cryptography;
|
|
using System;
|
|
|
|
public static class FairGuard{
|
|
private static bool isInitialized = false;
|
|
private const string version = "1.10.80";
|
|
|
|
private const string strUUU_0 = "Ce90DysQNIJUCHKmRNU3D5iWaTALey+dzOzyfv8CUnjUI06FmqEiozthUnmjKuHM2xULzwMWetEtieUBfjKNvQ==";
|
|
private const string strHHH_0 = "8WXEpyGHQhkngJnHyBoGS4boUvmc4UFlZxs/auPu58qy7/WHv2CfVz6O9bfL+rpivAB7z4hIILTgz4nwtHLIGw==";
|
|
private const string strIII_0 = "e6WqwzKWyswU8joVaNYOnA==";
|
|
private const string strSSS_0 = "5OXMqsdS0ZtPf7WWtwlgB6e7yFUhXSVdytweVgUEXsA=";
|
|
private const string strXXX_0 = "5OXMqsdS0ZtPf7WWtwlgB+QOgX9ubkaYohDeyjjyBg0=";
|
|
private static string strUUU = "";
|
|
private static string strHHH = "";
|
|
private static string strIII = "";
|
|
private static string strSSS = "";
|
|
private static string strXXX = "";
|
|
|
|
|
|
|
|
public static string Decrypt(string cipherText)
|
|
{
|
|
string EncryptionKey = "f7f8edd10906b53544";
|
|
cipherText = cipherText.Replace(" ", "+");
|
|
byte[] cipherBytes = Convert.FromBase64String(cipherText);
|
|
using (Aes encryptor = Aes.Create())
|
|
{
|
|
Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(EncryptionKey, new byte[] { 0xf6, 0x92, 0x90, 0x8c, 0x7f, 0x23, 0x4f, 0xc9, 0x13, 0x2d, 0x56, 0x3d, 0x66 });
|
|
encryptor.Key = pdb.GetBytes(32);
|
|
encryptor.IV = pdb.GetBytes(16);
|
|
using (MemoryStream ms = new MemoryStream())
|
|
{
|
|
using (CryptoStream cs = new CryptoStream(ms, encryptor.CreateDecryptor(), CryptoStreamMode.Write))
|
|
{
|
|
cs.Write(cipherBytes, 0, cipherBytes.Length);
|
|
cs.Close();
|
|
}
|
|
cipherText = Encoding.Unicode.GetString(ms.ToArray());
|
|
}
|
|
}
|
|
return cipherText;
|
|
}
|
|
|
|
public static void Init()
|
|
{
|
|
if (isInitialized)
|
|
{
|
|
return;
|
|
}
|
|
#if UNITY_ANDROID
|
|
strUUU = Decrypt (strUUU_0);
|
|
strHHH = Decrypt (strHHH_0);
|
|
strIII = Decrypt (strIII_0);
|
|
strSSS = Decrypt (strSSS_0);
|
|
strXXX = Decrypt (strXXX_0);
|
|
initSDK ("");
|
|
#endif
|
|
isInitialized = true;
|
|
}
|
|
|
|
private static void initSDK(string gameKey)
|
|
{
|
|
#if UNITY_ANDROID
|
|
try {
|
|
using (var actClass = new AndroidJavaClass(strUUU)) {
|
|
AndroidJavaClass SWPClass = new AndroidJavaClass (strHHH);
|
|
if(SWPClass != null) {
|
|
SWPClass.CallStatic(strIII, gameKey);
|
|
}
|
|
}
|
|
}
|
|
catch (System.Exception e)
|
|
{
|
|
System.Console.Write(" " + e.ToString());
|
|
}
|
|
#endif
|
|
}
|
|
|
|
public static void setUserInfo(string roleName, string roleAccount,string roleId)
|
|
{
|
|
#if UNITY_ANDROID
|
|
try {
|
|
using (var actClass = new AndroidJavaClass(strUUU)) {
|
|
AndroidJavaClass SWPClass = new AndroidJavaClass (strHHH);
|
|
if(SWPClass != null) {
|
|
SWPClass.CallStatic(strSSS,roleName,roleAccount, roleId);
|
|
}
|
|
}
|
|
}
|
|
catch (System.Exception e)
|
|
{
|
|
System.Console.Write(" " + e.ToString());
|
|
}
|
|
#endif
|
|
}
|
|
|
|
public static void setUserInfoEx(string roleName, string roleAccount,string roleId, String serverName, String channelName, string gameJson)
|
|
{
|
|
#if UNITY_ANDROID
|
|
try {
|
|
using (var actClass = new AndroidJavaClass(strUUU)) {
|
|
AndroidJavaClass SWPClass = new AndroidJavaClass (strHHH);
|
|
if(SWPClass != null) {
|
|
SWPClass.CallStatic(strXXX,roleName,roleAccount, roleId,serverName,channelName,gameJson);
|
|
}
|
|
}
|
|
}
|
|
catch (System.Exception e)
|
|
{
|
|
System.Console.Write(" " + e.ToString());
|
|
}
|
|
#endif
|
|
}
|
|
|
|
|
|
} |