VMProtect/runtime/VMProtect.Runtime/Tests/UnitTestProject/UnitTest1.cs

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));
}
}
}