using System; using System.IO; using System.Threading; using System.Management; using System.Windows.Forms; using System.Security.Cryptography; using System.Net.NetworkInformation; namespace FileSecurity_Client { static class Program { public static String LocalPath = String.Format("{0}\\", Environment.CurrentDirectory); //public static String Token; public static String MacAddress; public static String UniqueID; [STAThread] static void Main() { SetMacAddress(); SetUniqueID(); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Main()); } public static void Message(String Message, params Object[] Args) { String FormattedMessage = String.Format(Message, Args); MessageBox.Show(FormattedMessage, Properties.Settings.Default.Name, MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); } public static void Shutdown() { Environment.Exit(-1); } public static void ShutdownTimer(Int32 Time) { Thread.Sleep(Time); Environment.Exit(-1); } public static String MD5Hash(String FilePath) { using (var MD5Create = MD5.Create()) { using (var FileStream = File.OpenRead(FilePath)) { return BitConverter.ToString(MD5Create.ComputeHash(FileStream)).Replace("-", ""); } } } private static void SetMacAddress() { foreach (var Network in NetworkInterface.GetAllNetworkInterfaces()) { if (Network.OperationalStatus == OperationalStatus.Up) { MacAddress = Convert.ToString(Network.GetPhysicalAddress()); return; } } } private static void SetUniqueID() { String Drive = "C"; String VolumeSerial = GetVolumeSerial(Drive); String CPUID = GetCPUID(); UniqueID = String.Format("{0}{1}{2}{3}", CPUID.Substring(13), CPUID.Substring(1, 4), VolumeSerial, CPUID.Substring(4, 4)); } private static String GetVolumeSerial(String Drive) { ManagementObject Management = new ManagementObject(String.Format(@"win32_logicaldisk.deviceid=""{0}:""", Drive)); Management.Get(); return Convert.ToString(Management["VolumeSerialNumber"]); } private static String GetCPUID() { ManagementClass Management = new ManagementClass("win32_processor"); ManagementObjectCollection ManagementCollection = Management.GetInstances(); foreach (var Processor in ManagementCollection) { return Convert.ToString(Processor.Properties["processorID"].Value); } return null; } } }