PDA

View Full Version : آموزش: نحوه تشخیص نصب نرم افزار بر روی Virtual Machine



Javad_raouf
دوشنبه 11 فروردین 1393, 11:43 صبح
سلام بعضیا مثل من برای رجیستر نرم افزارشون از سریال هارد استفاده می کنن
مشکلی که پیش میاد اینه که دزد ها می تونن نرم افزار رو روی 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 کنید.

Javad_raouf
دوشنبه 11 فروردین 1393, 11:47 صبح
البته مطمئن نیستم این کد همیشه درست جواب بده:متفکر:
یعنی شاید کاربر بتونه در ماشین مجازیش Manufacturer و Model رو هم تغییر بده:عصبانی++:
اون موقع این کد جواب نمیده:لبخند:
-----------------
نکته دیگه اینکه اون مسیج باکسه چرت و پرته و فقط جهت ترسوندنه یعنی حتی اگر Features مربوطه بر روی ویندوز نصب نباشه و باعث رخداد خطا بشه هیچ وقت اطلاعات کاربر از بین نمیره:لبخند:

NasimBamdad
دوشنبه 11 فروردین 1393, 13:39 عصر
از Install Aware استفاده کن و از این Setup ساز استفاده کن

یک گزینه داره که اجازه نمیده نرم افزارت روی مجازی ساز نصب بشه !