private
StringBuilder GetKey()
{
StringBuilder sb =
new
StringBuilder();
string str =
""
;
byte[] byteA =
new
byte[6] { 0x00, 0x00, 0x00, 0x33, 0x35, 0x33 };
for
(
int
i = 1; i < 0x94; i++)
{
byteA[0] = (byte)i;
for
(
int
j = 1; j + i < 0x95; j++)
{
byteA[1] = (byte)j;
byteA[2] = (byte)(0x95 - i - j);
if
(isValid(byteA, out str)) sb.AppendLine(str);
}
}
return
sb;
}
private
bool
isValid(byte[] tmp, out string str)
{
bool
flag =
false
; str =
""
;
if
(tmp.Length != 6)
return
flag;
uint esi = 0;
foreach (byte b in tmp)
{
esi = esi << 4;
esi = esi - 0x30;
esi = esi + (uint)b;
}
if
(esi == 0x401353 && isValidKey(tmp[0])&& isValidKey(tmp[1])&& isValidKey(tmp[2]))
{
flag =
true
;
str = string.Format(
"Hex:{0:X2} {1:X2} {2:X2} {3:X2} {4:X2} {5:X2} Str:{6}"
, tmp[0], tmp[1], tmp[2], tmp[3], tmp[4], tmp[5]
, Encoding.ASCII.GetString(tmp)
);
}
return
flag;
}
private
bool
isValidKey(byte b)
{
if
(b < 0x20 || b > 0x7E)
return
false
;
return
true
;
}