mirror of
https://git.oceanpay.cc/danial/kami_itunes_june.git
synced 2025-12-18 21:21:34 +00:00
247 lines
7.3 KiB
C#
247 lines
7.3 KiB
C#
using System.Collections.Generic;
|
|
using System.Globalization;
|
|
using System.Text.RegularExpressions;
|
|
|
|
namespace AppleBatch_June.Utils
|
|
{
|
|
public class ClientInfoCode
|
|
{
|
|
private Dictionary<int, int[]> dict_w;
|
|
|
|
private string key_A = ".0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz";
|
|
|
|
private string[] dict_y = new string[31]
|
|
{
|
|
"%20", ";;;", "%3B", "%2C", "und", "fin", "ed;", "%28", "%29", "%3A",
|
|
"/53", "ike", "Web", "0;", ".0", "e;", "on", "il", "ck", "01",
|
|
"in", "Mo", "fa", "00", "32", "la", ".1", "ri", "it", "%u",
|
|
"le"
|
|
};
|
|
|
|
private string[] unicode_list = new string[31]
|
|
{
|
|
"\u0001", "\u0002", "\u0003", "\u0004", "\u0005", "\u0006", "\a", "\b", "\t", "\n",
|
|
"\v", "\f", "\r", "\u000e", "\u000f", "\u0010", "\u0011", "\u0012", "\u0013", "\u0014",
|
|
"\u0015", "\u0016", "\u0017", "\u0018", "\u0019", "\u001a", "\u001b", "\u001c", "\u001d", "\u001e",
|
|
"\u001f"
|
|
};
|
|
|
|
private string this_n = "";
|
|
|
|
private int this_r;
|
|
|
|
private int this_o;
|
|
|
|
public ClientInfoCode()
|
|
{
|
|
dict_w = new Dictionary<int, int[]>();
|
|
dict_w.Add(0, new int[2] { 16, 44928 });
|
|
dict_w.Add(1, new int[2] { 4, 15 });
|
|
dict_w.Add(2, new int[2] { 5, 3 });
|
|
dict_w.Add(3, new int[2] { 6, 4 });
|
|
dict_w.Add(4, new int[2] { 7, 110 });
|
|
dict_w.Add(5, new int[2] { 7, 107 });
|
|
dict_w.Add(6, new int[2] { 7, 104 });
|
|
dict_w.Add(7, new int[2] { 7, 97 });
|
|
dict_w.Add(8, new int[2] { 7, 72 });
|
|
dict_w.Add(9, new int[2] { 7, 71 });
|
|
dict_w.Add(10, new int[2] { 7, 63 });
|
|
dict_w.Add(11, new int[2] { 8, 181 });
|
|
dict_w.Add(12, new int[2] { 8, 170 });
|
|
dict_w.Add(13, new int[2] { 8, 117 });
|
|
dict_w.Add(14, new int[2] { 6, 24 });
|
|
dict_w.Add(15, new int[2] { 7, 91 });
|
|
dict_w.Add(16, new int[2] { 7, 88 });
|
|
dict_w.Add(17, new int[2] { 7, 73 });
|
|
dict_w.Add(18, new int[2] { 7, 69 });
|
|
dict_w.Add(19, new int[2] { 7, 57 });
|
|
dict_w.Add(20, new int[2] { 7, 16 });
|
|
dict_w.Add(21, new int[2] { 7, 31 });
|
|
dict_w.Add(22, new int[2] { 7, 33 });
|
|
dict_w.Add(23, new int[2] { 7, 18 });
|
|
dict_w.Add(24, new int[2] { 7, 45 });
|
|
dict_w.Add(25, new int[2] { 8, 232 });
|
|
dict_w.Add(26, new int[2] { 8, 210 });
|
|
dict_w.Add(27, new int[2] { 8, 179 });
|
|
dict_w.Add(28, new int[2] { 8, 178 });
|
|
dict_w.Add(29, new int[2] { 8, 174 });
|
|
dict_w.Add(30, new int[2] { 8, 172 });
|
|
dict_w.Add(31, new int[2] { 8, 158 });
|
|
dict_w.Add(37, new int[2] { 7, 44 });
|
|
dict_w.Add(42, new int[2] { 15, 22465 });
|
|
dict_w.Add(43, new int[2] { 9, 45 });
|
|
dict_w.Add(45, new int[2] { 7, 96 });
|
|
dict_w.Add(46, new int[2] { 6, 51 });
|
|
dict_w.Add(47, new int[2] { 6, 14 });
|
|
dict_w.Add(48, new int[2] { 6, 33 });
|
|
dict_w.Add(49, new int[2] { 5, 5 });
|
|
dict_w.Add(50, new int[2] { 5, 10 });
|
|
dict_w.Add(51, new int[2] { 5, 9 });
|
|
dict_w.Add(52, new int[2] { 5, 1 });
|
|
dict_w.Add(53, new int[2] { 5, 6 });
|
|
dict_w.Add(54, new int[2] { 5, 0 });
|
|
dict_w.Add(55, new int[2] { 6, 37 });
|
|
dict_w.Add(56, new int[2] { 7, 117 });
|
|
dict_w.Add(57, new int[2] { 7, 118 });
|
|
dict_w.Add(59, new int[2] { 5, 23 });
|
|
dict_w.Add(64, new int[2] { 16, 44929 });
|
|
dict_w.Add(65, new int[2] { 7, 68 });
|
|
dict_w.Add(66, new int[2] { 8, 64 });
|
|
dict_w.Add(67, new int[2] { 7, 56 });
|
|
dict_w.Add(68, new int[2] { 9, 318 });
|
|
dict_w.Add(69, new int[2] { 7, 60 });
|
|
dict_w.Add(70, new int[2] { 7, 10 });
|
|
dict_w.Add(71, new int[2] { 8, 233 });
|
|
dict_w.Add(72, new int[2] { 8, 180 });
|
|
dict_w.Add(73, new int[2] { 8, 23 });
|
|
dict_w.Add(74, new int[2] { 8, 238 });
|
|
dict_w.Add(75, new int[2] { 7, 17 });
|
|
dict_w.Add(76, new int[2] { 7, 46 });
|
|
dict_w.Add(77, new int[2] { 7, 70 });
|
|
dict_w.Add(78, new int[2] { 8, 124 });
|
|
dict_w.Add(79, new int[2] { 8, 116 });
|
|
dict_w.Add(80, new int[2] { 7, 61 });
|
|
dict_w.Add(81, new int[2] { 9, 350 });
|
|
dict_w.Add(82, new int[2] { 9, 422 });
|
|
dict_w.Add(83, new int[2] { 6, 26 });
|
|
dict_w.Add(84, new int[2] { 6, 38 });
|
|
dict_w.Add(85, new int[2] { 8, 38 });
|
|
dict_w.Add(86, new int[2] { 8, 39 });
|
|
dict_w.Add(87, new int[2] { 9, 44 });
|
|
dict_w.Add(88, new int[2] { 10, 703 });
|
|
dict_w.Add(89, new int[2] { 12, 2809 });
|
|
dict_w.Add(90, new int[2] { 14, 11233 });
|
|
dict_w.Add(95, new int[2] { 8, 94 });
|
|
dict_w.Add(97, new int[2] { 6, 50 });
|
|
dict_w.Add(98, new int[2] { 8, 171 });
|
|
dict_w.Add(99, new int[2] { 7, 84 });
|
|
dict_w.Add(100, new int[2] { 7, 78 });
|
|
dict_w.Add(101, new int[2] { 5, 28 });
|
|
dict_w.Add(102, new int[2] { 9, 319 });
|
|
dict_w.Add(103, new int[2] { 9, 423 });
|
|
dict_w.Add(104, new int[2] { 7, 111 });
|
|
dict_w.Add(105, new int[2] { 6, 54 });
|
|
dict_w.Add(106, new int[2] { 7, 30 });
|
|
dict_w.Add(107, new int[2] { 13, 5617 });
|
|
dict_w.Add(108, new int[2] { 6, 17 });
|
|
dict_w.Add(109, new int[2] { 7, 106 });
|
|
dict_w.Add(110, new int[2] { 8, 239 });
|
|
dict_w.Add(111, new int[2] { 6, 49 });
|
|
dict_w.Add(112, new int[2] { 6, 40 });
|
|
dict_w.Add(113, new int[2] { 11, 1405 });
|
|
dict_w.Add(114, new int[2] { 6, 27 });
|
|
dict_w.Add(115, new int[2] { 6, 25 });
|
|
dict_w.Add(116, new int[2] { 6, 32 });
|
|
dict_w.Add(117, new int[2] { 6, 41 });
|
|
dict_w.Add(118, new int[2] { 8, 173 });
|
|
dict_w.Add(119, new int[2] { 7, 59 });
|
|
dict_w.Add(120, new int[2] { 8, 65 });
|
|
dict_w.Add(121, new int[2] { 8, 125 });
|
|
dict_w.Add(122, new int[2] { 8, 95 });
|
|
}
|
|
|
|
public void t(int[] e)
|
|
{
|
|
this_r = (this_r << e[0]) | e[1];
|
|
this_o += e[0];
|
|
while (this_o >= 6)
|
|
{
|
|
int num = (this_r >> this_o - 6) & 0x3F;
|
|
this_n += key_A.Substring(num, 1);
|
|
this_r ^= num << (this_o -= 6);
|
|
}
|
|
}
|
|
|
|
public string do_l(string e)
|
|
{
|
|
int[] e2 = new int[2]
|
|
{
|
|
6,
|
|
((7 & e.Length) << 3) | 0
|
|
};
|
|
t(e2);
|
|
int[] e3 = new int[2]
|
|
{
|
|
6,
|
|
(0x38 & e.Length) | 1
|
|
};
|
|
t(e3);
|
|
int num = 0;
|
|
while (true)
|
|
{
|
|
if (num < e.Length)
|
|
{
|
|
if (dict_w.ContainsKey(e[num]))
|
|
{
|
|
if (dict_w[e[num]] == null)
|
|
{
|
|
break;
|
|
}
|
|
t(dict_w[e[num]]);
|
|
num++;
|
|
continue;
|
|
}
|
|
return "";
|
|
}
|
|
t(dict_w[0]);
|
|
if (this_o > 0)
|
|
{
|
|
int[] e4 = new int[2]
|
|
{
|
|
6 - this_o,
|
|
0
|
|
};
|
|
t(e4);
|
|
}
|
|
return this_n;
|
|
}
|
|
return "";
|
|
}
|
|
|
|
public string UnicodeDecode(string unicodeStr)
|
|
{
|
|
int result;
|
|
if (!string.IsNullOrWhiteSpace(unicodeStr) && (unicodeStr.Contains("\\u") || unicodeStr.Contains("\\U")))
|
|
{
|
|
return Regex.Replace(unicodeStr, "\\\\[uU](.{4})", (Match m) => int.TryParse(m.Groups[1].Value, NumberStyles.HexNumber, null, out result) ? ((char)result).ToString() : m.Groups[0].Value, RegexOptions.Singleline);
|
|
}
|
|
return unicodeStr;
|
|
}
|
|
|
|
public string f(string e)
|
|
{
|
|
string text = e;
|
|
for (int i = 0; i < dict_y.Length; i++)
|
|
{
|
|
string oldValue = dict_y[i];
|
|
string unicodeStr = unicode_list[i];
|
|
string newValue = UnicodeDecode(unicodeStr);
|
|
text = text.Replace(oldValue, newValue);
|
|
}
|
|
string text2 = do_l(text);
|
|
if (text2 == null)
|
|
{
|
|
return e;
|
|
}
|
|
int num = 65535;
|
|
for (int j = 0; j < e.Length; j++)
|
|
{
|
|
num = 0xFFFF & ((num >> 8) | (num << 8));
|
|
num ^= 0xFF & e[j];
|
|
num ^= (0xFF & num) >> 4;
|
|
num ^= (num << 12) & 0xFFFF;
|
|
num ^= ((0xFF & num) << 5) & 0xFFFF;
|
|
}
|
|
num = 0xFFFF & num;
|
|
e = "";
|
|
int index = num >> 12;
|
|
e += key_A[index];
|
|
int index2 = (num >> 6) & 0x3F;
|
|
e += key_A[index2];
|
|
int index3 = 0x3F & num;
|
|
e += key_A[index3];
|
|
return text2 + e;
|
|
}
|
|
}
|
|
}
|