111 lines
2.5 KiB
C#
111 lines
2.5 KiB
C#
|
using System;
|
|||
|
using System.Net;
|
|||
|
using System.Text;
|
|||
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|||
|
using VMProtect;
|
|||
|
|
|||
|
namespace UnitTestProject
|
|||
|
{
|
|||
|
[TestClass]
|
|||
|
public class UnitTest1
|
|||
|
{
|
|||
|
[TestMethod]
|
|||
|
// ReSharper disable once InconsistentNaming
|
|||
|
public void TestRC5()
|
|||
|
{
|
|||
|
var key = CipherRC5.CreateRandomKey();
|
|||
|
var rc5 = new CipherRC5(key);
|
|||
|
|
|||
|
var dataStr = "Тестовые данные для TestRC5";
|
|||
|
var dataBytes = Encoding.UTF8.GetBytes(dataStr);
|
|||
|
Array.Resize(ref dataBytes, (dataBytes.Length + 7)/8*8);
|
|||
|
|
|||
|
var encodedBytes = rc5.Encrypt(dataBytes);
|
|||
|
var dataBytes2 = rc5.Decrypt(encodedBytes);
|
|||
|
|
|||
|
CollectionAssert.AreNotEqual(dataBytes, encodedBytes);
|
|||
|
CollectionAssert.AreEqual(dataBytes, dataBytes2);
|
|||
|
}
|
|||
|
|
|||
|
[TestMethod]
|
|||
|
public void TestHwid()
|
|||
|
{
|
|||
|
var hwid = new HardwareID();
|
|||
|
Assert.AreNotSame(0, hwid.ToString().Length);
|
|||
|
var machine = Dns.GetHostName().ToUpperInvariant();
|
|||
|
var txtHwid = hwid.ToString();
|
|||
|
if (machine == "ACER-V3")
|
|||
|
Assert.AreEqual("2D3kAD28P7M7soVoCjyOUA==", txtHwid);
|
|||
|
else if (machine == "WORK")
|
|||
|
Assert.AreEqual("AIUkDL3k4HTLFrVrPmOIpw==", txtHwid);
|
|||
|
else if (machine == "BUILD7N1")
|
|||
|
Assert.AreEqual("HBG8w5UkOMh714KeZow8vg==", txtHwid);
|
|||
|
else
|
|||
|
Assert.Fail("Append branch for machine '{0}' with result '{1}'", machine, txtHwid);
|
|||
|
}
|
|||
|
|
|||
|
[TestMethod]
|
|||
|
public void TestHwidCompare()
|
|||
|
{
|
|||
|
var hwid = new HardwareID();
|
|||
|
var cur = hwid.GetBytes();
|
|||
|
var test = new byte[cur.Length];
|
|||
|
|
|||
|
Array.Copy(cur, test, cur.Length);
|
|||
|
// change one id
|
|||
|
for (var i = 0; i < cur.Length; i += 4)
|
|||
|
{
|
|||
|
test[i] = cur[i];
|
|||
|
switch (test[i] & 3) {
|
|||
|
case 3:
|
|||
|
test[i] ^= 4;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
Assert.IsTrue(hwid.IsCorrect(test));
|
|||
|
|
|||
|
|
|||
|
// change two ids
|
|||
|
Array.Copy(cur, test, cur.Length);
|
|||
|
for (var i = 0; i < cur.Length; i += 4)
|
|||
|
{
|
|||
|
switch (test[i] & 3)
|
|||
|
{
|
|||
|
case 2:
|
|||
|
case 3:
|
|||
|
test[i] ^= 4;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
Assert.IsFalse(hwid.IsCorrect(test));
|
|||
|
|
|||
|
// change three ids
|
|||
|
Array.Copy(cur, test, cur.Length);
|
|||
|
for (var i = 0; i < cur.Length; i += 4)
|
|||
|
{
|
|||
|
switch (test[i] & 3)
|
|||
|
{
|
|||
|
case 2:
|
|||
|
case 3:
|
|||
|
test[i] ^= 4;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
Assert.IsFalse(hwid.IsCorrect(test));
|
|||
|
|
|||
|
// change cpu`s id
|
|||
|
Array.Copy(cur, test, cur.Length);
|
|||
|
for (var i = 0; i < cur.Length; i += 4)
|
|||
|
{
|
|||
|
switch (test[i] & 3)
|
|||
|
{
|
|||
|
case 0:
|
|||
|
test[i] ^= 4;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
Assert.IsFalse(hwid.IsCorrect(test));
|
|||
|
}
|
|||
|
}
|
|||
|
}
|