Как стать автором
Обновить
82
0
Артём Шишкин @HonoraryBoT

Пользователь

Отправить сообщение
Может и спецификацию на thunderbolt наконец-то откроют?
А что это за «debug.exe»?
Не debug.com ли имелся ввиду, который 16-битный и работает только на 32-битных ОС с ntvdm?
У такого решения есть проблема с открытыми хэндлами. SetupApi не отключит девайс с открытыми хэндлами, а устройство (та же флэшка) может, например, быть занята при запущенном приложении автозапуска. До появления уведомления о новом устройстве можно успеть много чего на нем открыть. Вариант — перебирать хэндлы и закрывать их вручную, что не очень хорошо сказывается на стабильности работы приложений.
В чем уязвимость-то? Ребята использовали стандартный функционал SOL
Не подскажете название вашей компании? Просто на заметку.
Я лишь говорю о том, что грамотно настроенный гипер детектить достаточно сложно.
PSPS Таки-да, если в вмваре исправить cpuid, то данный детект не работает ввиду хреновой статистики ;)
P.S. МНК, не дисперсия.
Нашёл на 7 x64.
Детекты забавные.
В ExpIsVirtualMachinePrivate() набор детектов:
ExpDetectHyperVisorCpuid(), ExpIsViridian(), ExpIsViridianGuest() — детекты через cpuid. Вообще это даже в vmware правится через настройки, можно назначить, какой результат будет выдавать cpuid. Кстати, если гость является мсовской вм, то ядро не считает это виртуальной машиной, гы.
ExpDetectHyperVisorCr3Heuristic() — забавный детект. Сравнивается время выполнения «медленной» и «быстрой» инструкции. Причем за медленную инструкцию берется доступ к CR3. Прикол в том, что если гипервизор поддерживает EPT, то доступ к CR3 не приводит к выходу по умолчанию. Так что детект сработает только если гипервизор не поддерживает EPT или трапает CR3 вручную.
ExpDetectHypervisorVarianceHeuristic() — вот это да, головная боль. По трем листам cpuid считается статистика по времени выхода, причем время замеряется при помощи perf counter'а, источником коего может быть и tsc, и pm timer, и hpet. Запоминается 1000 значений (если до этого мы не вылезли слишком за таймаут), из которых потом высчитывается разброс во времени выполнения (дисперсия). Далее детект по значению разброса, который не должен превышать 5000. Здесь все упирается в качественную эмуляцию таймеров. Надо будет отпробовать vmware с галочкой «virtualize cpu performance counters».
Ни в одном ядре не нашел. Он сам её так назвал? Дайте пруфов плз.
Алсо, работа идет с открытым хэндлом процесса, а не с его ID
Не поведаете, как зареюзать PID процесса?
Так — да, я буквально текст понял просто.
Ну да. Не поверите правильному IsWow. Если только вам мертвые совсем не нужны…
Между GetExitCodeProcess() и IsWow64Process() всё равно будет рейс.
Вполне может быть и сто: студией можно собрать и загрузчик, и драйвера.
Проверьте в пакетах отладочных символов
ReactOS, наверное )

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность