обнаружение виртуальной машины

Тема в разделе "WASM.BEGINNERS", создана пользователем HuXTUS, 17 фев 2008.

  1. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.242
    а о каких артифактах виртуалки можно говорить, если будет идти эмуляция фактически всего: харда, рэма......?????
     
  2. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    [eax.context_eip]

    Какое смещение у context_eip?
     
  3. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    UbIvItS
    Ты подсказал ответ. Никто не будет эмулировать железо харда слишком тщательно -
    это не нужно и накладно. Наверняка в ring3 что-то можно заюзать для детекта?
    Правда VmWare позволяет с физ-диском работать, но думаю она все равно
    что-то режет, чтобы не зависнуть...
    БИОС опять же спецефический ?
     
  4. rei3er

    rei3er maxim

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    917
    Адрес:
    minsk
    можно использовать копию образа BIOS хостовой машины
    вообще говоря, я не думаю, что возможен детект програмной эмуляции
    при условии, что эмулируется на 100% все окружение, и причем правильно
    другое дело, что это катастрофически снизит производительность конечной системы
     
  5. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.242
    rei3er
    а зачем эмулить сразу всё??? нужно эмулить: проц, оперативку, винт - всё остальное юзать как оно есть: артефакты эмуля могут быть только в этих трёх местах.
     
  6. rei3er

    rei3er maxim

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    917
    Адрес:
    minsk
    ага
    предоставлять прямой доступ к периферии
    умно
     
  7. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.242
    rei3er
    прямой - то прямой, только он по-любому идёт через эмуль проца, так что в итоге не совсем прямой:derisive:
    ну, вызовет прога прерывания железки, а кто обрабатывать его будет???:)) - прога:)?
    попытается перепрошить железку:))??
     
  8. Flint_ta

    Flint_ta New Member

    Публикаций:
    0
    Регистрация:
    25 май 2008
    Сообщения:
    312
    Подниму старую тему, сейчас обнаружил баг при трассировке в Olly на virtualbox.
    Раньше при выполнении команды rdtsc virtualbox падала, сейчас выполняет сразу 2 инструкции (rdtsc и нижеследующую).

    Т.о. следующим кодом можно спалить трассировку на virtualbox

    Код (Text):
    1.  .586
    2.    .model small, stdcall
    3.    option casemap :none
    4.    include \MASM32\INCLUDE\user32.inc
    5.    include \MASM32\INCLUDE\kernel32.inc
    6.    includelib \MASM32\LIB\kernel32.lib
    7.    includelib \MASM32\LIB\user32.lib
    8.  
    9.  
    10. ; #########################################################################
    11.  
    12. .data
    13. tit db "Сообщение",0
    14. mess1 db "Трассировка не обнаружена", 0
    15. mess2 db "Трассировка на VirtualBox обнаружена", 0
    16.  
    17. .code
    18.  
    19. start:
    20. RDTSC
    21. PUSHFD
    22. POP EAX
    23. AND EAX,0100h
    24. ADD EAX, offset metka
    25. JMP EAX
    26. metka:
    27. PUSH 0
    28. PUSH offset tit
    29. PUSH offset mess1
    30. PUSH 0
    31. CALL MessageBoxA
    32. PUSH 0
    33. CALL ExitProcess
    34. zero db 230 dup (?)
    35. PUSH 0
    36. PUSH offset tit
    37. PUSH offset mess2
    38. PUSH 0
    39. CALL MessageBoxA
    40. PUSH 0
    41. CALL ExitProcess
    42. end start
    43.  
    44. ; #########################################################################
    Может кто-то копнет поглубже, наверняка всплывет что-то интереснее