| 
				
				Отличить "Виртуальную машину" от основной
				 | 
 | 
| HTTqp | Дата: Четверг, 19.02.2015, 21:05 | Сообщение # 1 |  
 
 
 
Частый гость 
Зарегистрирован: 08.10.2014
 
 
Группа: Пользователи 
Сообщений: 57 
Статус: Offline 
 
 | Вобщем вопрос указан в теме) Как отличить "Виртуальную машину" от основной, есть масса вариантов в поисковике но там получается что для каждой программы (будь то VirtualBox, VMware Fusion и т.п.) отдельная функция, нет ли единого способа, потому что например авиры порой при проверки программы запускают их как раз в "Виртуальных машинах" чтобы посмотреть действия, как этого избежать, писать все функции в программу, для каждой отдельной "Виртуальной машины"?
 |  
|   | 
 |    | 
| Волк-1024 | Дата: Четверг, 19.02.2015, 22:15 | Сообщение # 2 |  
 
 
 
Авторитетный 
Зарегистрирован: 24.07.2011
 
 
Группа: Модераторы 
Сообщений: 469 
Статус: Offline 
 
 | Первое, что приходит в голову - это замерять время исполнения какого-то ресурсоёмкого участка кода. Под виртуальной машиной он будет в разы дольше исполняться, чем на реальной. И да, у антивирусов нет виртуальных машин в том виде, в котором ты подразумеваешь.
  Pascal, C\C++, Assembler, Python
 |  
|   | 
 |    | 
| HTTqp | Дата: Четверг, 19.02.2015, 22:38 | Сообщение # 3 |  
 
 
 
Частый гость 
Зарегистрирован: 08.10.2014
 
 
Группа: Пользователи 
Сообщений: 57 
Статус: Offline 
 
 | не просто некоторые антивирусы при отправке например им файла тестят путем эмуляции запуска в своей среде или что то подобное) я вот это имел ввиду
 |  
|   | 
 |    | 
| xXxSh@dowxXx | Дата: Четверг, 19.02.2015, 22:46 | Сообщение # 4 |  
 
 
 
Авторитетный 
Зарегистрирован: 22.01.2012
 
 
Группа: Модераторы 
Сообщений: 702 
Статус: Offline 
 
 | Цитата HTTqp (  )  не просто некоторые антивирусы при отправке например им файла тестят путем эмуляции запуска в своей среде или что то подобное) я вот это имел ввиду     Согласен с Волк-1024, в антивирях немного иной вид виртуализации\эмуляции (песочницы), но по общим признакам я думаю можно что то накопать, если конечно разобраться более детально как они это проворачивают. 
   PS: кстати говоря тема интересная, сам как то об этом подумывал, нужно будет поковыряться.
 |  
|   | 
 |    | 
| Anton93 | Дата: Пятница, 20.02.2015, 17:40 | Сообщение # 5 |  
 
 
 
Продвинутый 
Зарегистрирован: 06.01.2010
 
 
Группа: Модераторы 
Сообщений: 320 
Статус: Offline 
 
 | с wm av такой вариант находил 
   Код program Project2; 
   {$APPTYPE CONSOLE} 
   uses       Windows; 
   procedure TrueEntryPoint;   begin       MessageBoxW(0, 'Hello World', '', MB_OK);   end; 
   procedure AntiEmul;   var       lpSystemTime: _SYSTEMTIME;   asm       push 0       popfd       lea eax, lpSystemTime       push eax       call GetSystemTime       pushfd       pop eax       add eax, offset TrueEntryPoint       sub eax, $00000246       call eax   end; 
   begin       AntiEmul;   end.   
   в TrueEntryPoint нужный код.   когда происходит эмуляция апи - результат в eax, а он не учитывает регистр флагов 
   так же есть вариант опять поиграться с апи и вызвать функцию с "необычными" под эмулятором и реальной средой значения будут разные.   в Sality использовался многократный вызов FreeLibrary с несуществующими хендлами библиотек. 
   например так   Код    FreeLibrary(h1);   FreeLibrary(h2);   FreeLibrary(h3);      
   после анализировались полученные занчения. 
   еще вариант с апи вызывать функцию, но ограничить размер приемника. в реальной среде будет ошибка по эмулятором ав будет все ок. 
   и наконец классика - шифруем участки кода. ключ берем из "необычных" мест, которые в эмуляторе обычно забиваются ерундой. в результате ав никгда не расшифрует в витруалке код программы
 
   ICQ: 41896
 |  
|   | 
 |    | 
| HTTqp | Дата: Пятница, 20.02.2015, 18:19 | Сообщение # 6 |  
 
 
 
Частый гость 
Зарегистрирован: 08.10.2014
 
 
Группа: Пользователи 
Сообщений: 57 
Статус: Offline 
 
 | Цитата Anton93 (  )  и наконец классика - шифруем участки кода. ключ берем из "необычных" мест, которые в эмуляторе обычно забиваются ерундой. в результате ав никгда не расшифрует в витруалке код программы     а необычны места это какие)? хоть примерчик, чтобы знать куда копать
 |  
|   | 
 |    | 
| Волк-1024 | Дата: Пятница, 20.02.2015, 18:39 | Сообщение # 7 |  
 
 
 
Авторитетный 
Зарегистрирован: 24.07.2011
 
 
Группа: Модераторы 
Сообщений: 469 
Статус: Offline 
 
 | Можно попробовать посовокупляться с SSE4 . Не думаю, что антивирусы умеют его эмулировать. 
   Цитата HTTqp (  )  а необычны места это какие)?     Оверлей например. Между секций можно что-то запихать. В PE заголовок тоже можно.
  Pascal, C\C++, Assembler, Python
 |  
|   | 
 |    |