Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> определить что программа запущена в виртуальной м, C# 
V
    Опции темы
kobra
Дата 28.10.2009, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 15.6.2005
Где: Грузия, Тбилиси

Репутация: 1
Всего: 9



здравствуите господа
мне нужно определить работает программа на реальном железе или виртуальной машине.

спосибо 
PM MAIL   Вверх
kobra
Дата 28.10.2009, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 15.6.2005
Где: Грузия, Тбилиси

Репутация: 1
Всего: 9



на сирсах дали отличные линки
http://www.codeproject.com/KB/system/VmDetect.aspx
http://www.virtualization.info/2004/03/how...t-if-is_17.html
может ещо каму пригодится  smile 

Это сообщение отредактировал(а) kobra - 28.10.2009, 14:19
PM MAIL   Вверх
kobra
Дата 25.7.2010, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 15.6.2005
Где: Грузия, Тбилиси

Репутация: 1
Всего: 9



скачал с codeproject-а дллку и было все хорошо. но переидья на новую ос (7, 64 разрядный), компилятор перестал компилить проект, мол не вин32 приложение. окозалос что ему не нравится именно VmDetectLibrary.
взял соурсы дллки и попробовал заново скомпилить, но выдоет ошибку 
Error 1 fatal error LNK1181: cannot open input file 'libcd.lib' VmDetectLibrary VmDetectLibrary
прогуглил, понял в чем дело, но решить проблему не смог. с vc c++ некогда не работал и с системой не знаком.
реално, из VmDetectLibrary мне нужен кусок
Код

// IsInsideVPC's exception filter
DWORD __forceinline IsInsideVPC_exceptionFilter(LPEXCEPTION_POINTERS ep)
{
 PCONTEXT ctx = ep->ContextRecord;
 
 ctx->Ebx = -1; // Not running VPC
 ctx->Eip += 4; // skip past the "call VPC" opcodes
 return EXCEPTION_CONTINUE_EXECUTION;
 // we can safely resume execution since we skipped faulty instruction
}
 
// High level language friendly version of IsInsideVPC()
bool IsInsideVPC()
{
 bool rc = false;
 
 __try
 {
   _asm push ebx
   _asm mov  ebx, 0 // It will stay ZERO if VPC is running
   _asm mov  eax, 1 // VPC function number
 
   // call VPC 
   _asm __emit 0Fh
   _asm __emit 3Fh
   _asm __emit 07h
   _asm __emit 0Bh
 
   _asm test ebx, ebx
   _asm setz [rc]
   _asm pop ebx
 }
 // The except block shouldn't get triggered if VPC is running!!
 __except(IsInsideVPC_exceptionFilter(GetExceptionInformation()))
 {
 }
 
 return rc;
}

но только так чтоб компилился и работал на всех платформах.
кому не лен, помоготе пожалуста.

спосибо 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0730 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.