نحوه تشخیص نصب نرم افزار بر روی Virtual Machine
سلام بعضیا مثل من برای رجیستر نرم افزارشون از سریال هارد استفاده می کنن
مشکلی که پیش میاد اینه که دزد ها می تونن نرم افزار رو روی Virtual Machine نصب کنن و سریال هارد رو دستی وارد نمایند:عصبانی++:
به نظرم راه حل اینه که ما تشخیص بدیم آیا نرم افزار روی Virtual Machine نصب شده؟؟؟ و در این صورت به کاربر خطایی صادر کنیم.
یک سرچی زدم چنین به یک همچین چیزی رسیدم:
این تابع اگر True باشه یعنی کامپیوتر مجازی است:
public bool IsVirtualMachine()
{
try
{
using (var searcher = new System.Management.ManagementObjectSearcher("Select * from Win32_ComputerSystem"))
{
using (var items = searcher.Get())
{
foreach (var item in items)
{
string manufacturer = item["Manufacturer"].ToString().ToLower();
string strModels = item["Model"].ToString().ToLower();
string[] strVirtual = { "microsoft corporation", "vmware", "virtualbox" };
foreach (string x in strVirtual)
if (manufacturer.Contains(x) || strModels.Contains(x))
return true;
}
}
}
}
catch (Exception)
{
MessageBox.Show("کامپیوتر شما مشکل نرم افزاری یا سخت افزاری دارد." + Environment.NewLine + "ممکن است در حین کار اطلاعات از بین برود.", "اخطار", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
return false;
}
قبل از استفاده از این کد، از منوی Project، گزینه Add Reference رو زده و System.Managment رو Add کنید.
نقل قول: نحوه تشخیص نصب نرم افزار بر روی Virtual Machine
البته مطمئن نیستم این کد همیشه درست جواب بده:متفکر:
یعنی شاید کاربر بتونه در ماشین مجازیش Manufacturer و Model رو هم تغییر بده:عصبانی++:
اون موقع این کد جواب نمیده:لبخند:
-----------------
نکته دیگه اینکه اون مسیج باکسه چرت و پرته و فقط جهت ترسوندنه یعنی حتی اگر Features مربوطه بر روی ویندوز نصب نباشه و باعث رخداد خطا بشه هیچ وقت اطلاعات کاربر از بین نمیره:لبخند:
نقل قول: نحوه تشخیص نصب نرم افزار بر روی Virtual Machine
از Install Aware استفاده کن و از این Setup ساز استفاده کن
یک گزینه داره که اجازه نمیده نرم افزارت روی مجازی ساز نصب بشه !