public void SetEncrypted(Decimal encrypted) { this.inited = true; ObscuredDecimal.DecimalLongBytesUnion decimalLongBytesUnion = new ObscuredDecimal.DecimalLongBytesUnion(); decimalLongBytesUnion.d = encrypted; this.hiddenValue = new byte[16] { decimalLongBytesUnion.b1, decimalLongBytesUnion.b2, decimalLongBytesUnion.b3, decimalLongBytesUnion.b4, decimalLongBytesUnion.b5, decimalLongBytesUnion.b6, decimalLongBytesUnion.b7, decimalLongBytesUnion.b8, decimalLongBytesUnion.b9, decimalLongBytesUnion.b10, decimalLongBytesUnion.b11, decimalLongBytesUnion.b12, decimalLongBytesUnion.b13, decimalLongBytesUnion.b14, decimalLongBytesUnion.b15, decimalLongBytesUnion.b16 }; if (!ObscuredCheatingDetector.IsRunning) { return; } this.fakeValue = this.InternalDecrypt(); }
private static byte[] InternalEncrypt(decimal value, long key) { long num = key; if (num == 0L) { num = ObscuredDecimal.cryptoKey; } ObscuredDecimal.DecimalLongBytesUnion decimalLongBytesUnion = default(ObscuredDecimal.DecimalLongBytesUnion); decimalLongBytesUnion.d = value; decimalLongBytesUnion.l1 ^= num; decimalLongBytesUnion.l2 ^= num; return(new byte[] { decimalLongBytesUnion.b1, decimalLongBytesUnion.b2, decimalLongBytesUnion.b3, decimalLongBytesUnion.b4, decimalLongBytesUnion.b5, decimalLongBytesUnion.b6, decimalLongBytesUnion.b7, decimalLongBytesUnion.b8, decimalLongBytesUnion.b9, decimalLongBytesUnion.b10, decimalLongBytesUnion.b11, decimalLongBytesUnion.b12, decimalLongBytesUnion.b13, decimalLongBytesUnion.b14, decimalLongBytesUnion.b15, decimalLongBytesUnion.b16 }); }
public static Decimal Decrypt(Decimal value, long key) { ObscuredDecimal.DecimalLongBytesUnion decimalLongBytesUnion = new ObscuredDecimal.DecimalLongBytesUnion(); decimalLongBytesUnion.d = value; decimalLongBytesUnion.l1 ^= key; decimalLongBytesUnion.l2 ^= key; return(decimalLongBytesUnion.d); }
public static decimal Encrypt(decimal value, long key) { ObscuredDecimal.DecimalLongBytesUnion decimalLongBytesUnion = default(ObscuredDecimal.DecimalLongBytesUnion); decimalLongBytesUnion.d = value; decimalLongBytesUnion.l1 ^= key; decimalLongBytesUnion.l2 ^= key; return(decimalLongBytesUnion.d); }
public decimal GetEncrypted() { this.ApplyNewCryptoKey(); ObscuredDecimal.DecimalLongBytesUnion decimalLongBytesUnion = default(ObscuredDecimal.DecimalLongBytesUnion); decimalLongBytesUnion.b1 = this.hiddenValue[0]; decimalLongBytesUnion.b2 = this.hiddenValue[1]; decimalLongBytesUnion.b3 = this.hiddenValue[2]; decimalLongBytesUnion.b4 = this.hiddenValue[3]; decimalLongBytesUnion.b5 = this.hiddenValue[4]; decimalLongBytesUnion.b6 = this.hiddenValue[5]; decimalLongBytesUnion.b7 = this.hiddenValue[6]; decimalLongBytesUnion.b8 = this.hiddenValue[7]; decimalLongBytesUnion.b9 = this.hiddenValue[8]; decimalLongBytesUnion.b10 = this.hiddenValue[9]; decimalLongBytesUnion.b11 = this.hiddenValue[10]; decimalLongBytesUnion.b12 = this.hiddenValue[11]; decimalLongBytesUnion.b13 = this.hiddenValue[12]; decimalLongBytesUnion.b14 = this.hiddenValue[13]; decimalLongBytesUnion.b15 = this.hiddenValue[14]; decimalLongBytesUnion.b16 = this.hiddenValue[15]; return(decimalLongBytesUnion.d); }
private Decimal InternalDecrypt() { if (!this.inited) { this.currentCryptoKey = ObscuredDecimal.cryptoKey; this.hiddenValue = ObscuredDecimal.InternalEncrypt(new Decimal(0)); this.fakeValue = new Decimal(0); this.inited = true; } ObscuredDecimal.DecimalLongBytesUnion decimalLongBytesUnion = new ObscuredDecimal.DecimalLongBytesUnion(); decimalLongBytesUnion.b1 = this.hiddenValue[0]; decimalLongBytesUnion.b2 = this.hiddenValue[1]; decimalLongBytesUnion.b3 = this.hiddenValue[2]; decimalLongBytesUnion.b4 = this.hiddenValue[3]; decimalLongBytesUnion.b5 = this.hiddenValue[4]; decimalLongBytesUnion.b6 = this.hiddenValue[5]; decimalLongBytesUnion.b7 = this.hiddenValue[6]; decimalLongBytesUnion.b8 = this.hiddenValue[7]; decimalLongBytesUnion.b9 = this.hiddenValue[8]; decimalLongBytesUnion.b10 = this.hiddenValue[9]; decimalLongBytesUnion.b11 = this.hiddenValue[10]; decimalLongBytesUnion.b12 = this.hiddenValue[11]; decimalLongBytesUnion.b13 = this.hiddenValue[12]; decimalLongBytesUnion.b14 = this.hiddenValue[13]; decimalLongBytesUnion.b15 = this.hiddenValue[14]; decimalLongBytesUnion.b16 = this.hiddenValue[15]; decimalLongBytesUnion.l1 ^= this.currentCryptoKey; decimalLongBytesUnion.l2 ^= this.currentCryptoKey; Decimal d = decimalLongBytesUnion.d; if (ObscuredCheatingDetector.IsRunning && this.fakeValue != new Decimal(0) && d != this.fakeValue) { ObscuredCheatingDetector.Instance.OnCheatingDetected(); } return(d); }