aboutsummaryrefslogtreecommitdiff
path: root/runtime/VMProtect.Runtime/Tests/UnitTestProject/UnitTest1.cs
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/VMProtect.Runtime/Tests/UnitTestProject/UnitTest1.cs')
-rw-r--r--runtime/VMProtect.Runtime/Tests/UnitTestProject/UnitTest1.cs110
1 files changed, 110 insertions, 0 deletions
diff --git a/runtime/VMProtect.Runtime/Tests/UnitTestProject/UnitTest1.cs b/runtime/VMProtect.Runtime/Tests/UnitTestProject/UnitTest1.cs
new file mode 100644
index 0000000..ea67e80
--- /dev/null
+++ b/runtime/VMProtect.Runtime/Tests/UnitTestProject/UnitTest1.cs
@@ -0,0 +1,110 @@
+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));
+ }
+ }
+}