diff options
Diffstat (limited to 'runtime/VMProtect.Runtime/Tests/UnitTestProject/UnitTest1.cs')
-rw-r--r-- | runtime/VMProtect.Runtime/Tests/UnitTestProject/UnitTest1.cs | 110 |
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)); + } + } +} |