ground up refactor!
This commit is contained in:
1 parent
6a2ab0d873
commit
7c2960e1d7
19 files changed
+3534
-3444
No files matched your search
@@ -0,0 +1,101 @@
|
||||
using System;
|
||||
|
||||
namespace FrappeMocha.Keygen.Platforms
|
||||
{
|
||||
public class PlatformAndroid : KeygenBase
|
||||
{
|
||||
public PlatformAndroid()
|
||||
{
|
||||
Platform = "Android";
|
||||
Products.Add(new KeygenProduct(LicenseTypes.Android3270, "TN3270", Platform));
|
||||
Products.Add(new KeygenProduct(LicenseTypes.Android5250, "TN5250", Platform));
|
||||
Products.Add(new KeygenProduct(LicenseTypes.AndroidTelnet, "TN3812", Platform));
|
||||
Products.Add(new KeygenProduct(LicenseTypes.AndroidVnc, "VNC", Platform));
|
||||
Products.Add(new KeygenProduct(LicenseTypes.AndroidBarcode, "Barcode", Platform));
|
||||
}
|
||||
|
||||
/**
|
||||
* This was also a piece of cake since PlatformJava is the underlying tech on PlatformAndroid
|
||||
* The Dex object engine keept pretty good tabs on the types and var names as well!
|
||||
*/
|
||||
public override string Generate(int itype, string paramCompany, LicenseTypes license)
|
||||
{
|
||||
char type = (char)(itype + '0');
|
||||
string paramLicencekey = type.ToString();
|
||||
long sum = 0;
|
||||
byte[] byteArray = StrToByteArray(paramCompany);
|
||||
for (int index = 0; index < byteArray.Length; ++index)
|
||||
{
|
||||
if ((long)byteArray[index] >= 'A' && (long)byteArray[index] <= 'Z')
|
||||
byteArray[index] += 32; // this is basically str.toLower()
|
||||
}
|
||||
|
||||
for (int index = 0; index < byteArray.Length; ++index)
|
||||
{
|
||||
if ((ulong)byteArray[index] >= 'A' && (ulong)byteArray[index] <= 'z')
|
||||
{
|
||||
sum += byteArray[index] + (uint)license;
|
||||
}
|
||||
}
|
||||
sum = sum * paramLicencekey[0];
|
||||
sum = sum * (sum & byte.MaxValue) & ushort.MaxValue;
|
||||
if (sum < 100U)
|
||||
sum = 2728U;
|
||||
|
||||
paramLicencekey = (paramLicencekey[0].ToString() + sum) + '-' +
|
||||
(Int32)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
|
||||
|
||||
return paramLicencekey;
|
||||
}
|
||||
|
||||
/**
|
||||
* Straight outta da Dex
|
||||
*/
|
||||
public override bool Check(string paramLicenseKey, string paramCompany, LicenseTypes license)
|
||||
{
|
||||
byte[] bArr = new byte[255];
|
||||
byte[] bArr2 = new byte[255];
|
||||
if (paramCompany.Length < 2 || paramLicenseKey.Length < 2)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
for (int i = 0; i < paramLicenseKey.Length; i++)
|
||||
{
|
||||
bArr2[i] = (byte)paramLicenseKey[i];
|
||||
}
|
||||
for (int i2 = 0; i2 < paramCompany.Length; i2++)
|
||||
{
|
||||
bArr[i2] = (byte)paramCompany[i2];
|
||||
if (paramCompany[i2] >= 'A' && paramCompany[i2] <= 'Z')
|
||||
{
|
||||
bArr[i2] = (byte)(bArr[i2] + 32);
|
||||
}
|
||||
}
|
||||
long j = 0;
|
||||
for (int i3 = 0; i3 < paramCompany.Length; i3++)
|
||||
{
|
||||
if (bArr[i3] >= 65 && bArr[i3] <= 122)
|
||||
{
|
||||
j += (bArr[i3] + (long)license);
|
||||
}
|
||||
}
|
||||
long j2 = j * bArr2[0];
|
||||
long j3 = (j2 * (j2 & 255)) & 65535;
|
||||
if (j3 < 100)
|
||||
{
|
||||
j3 = 2728;
|
||||
}
|
||||
string sb = "";
|
||||
sb += paramLicenseKey[0];
|
||||
sb += (object)j3;
|
||||
if (paramLicenseKey.StartsWith(sb))
|
||||
{
|
||||
// lictype = bArr2[0] - 48;
|
||||
// is_lite2 = false;
|
||||
return true;
|
||||
}
|
||||
// lictype = -1;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user