Сейчас на форуме: hgdagon (+5 невидимых) |
eXeL@B —› Программирование —› Аппаратная виртуализация |
<< . 1 . 2 . 3 . >> |
Посл.ответ | Сообщение |
|
Создано: 29 июля 2007 15:10 · Личное сообщение · #1 На новых процах есть такая тема, на атлонах пасифика, на интелах вандерпул, вроде. Хотел узнать, кто что может посоветовать почитать на эту тему. Отлаживать с этой фиговиной просто рай, никто ничего не запалит в принципе, бряки, смещения времени, ничего не запалить. Было у меня в далёких планах перевести QuickUnpack на это дело. Но чего-то не нашёл ничего на эту тему, кроме мануалов интеловских, а там чёрт ногу сломит. Рано ещё этим интересоваться, только пришло это дело, но вдруг у кого что есть, только весьма желательно чо-нить внятное, может примеры. В общем, чо-нить полезное. Заранее всем спасибо. |
|
Создано: 31 июля 2007 00:24 · Поправил: s0larian · Личное сообщение · #2 Sly Ass пишет: Вкурсе что кроме собственно процессора есть еще и железо, в котором дожеппы напихано всяких там таймеров? Начиная от системного таймера, и заканчивая таймером по которому шлет прерывания звуковуха. Вот тебе и методы измерения правильных таймингов. Только не надо ля-ля что их все можно проэмулить. Хуй то там, есть различные hardvare specific хреновины. хе хе, ессно можно если у тебя есть один конкретный комп под который ты заточишь все свои замеры. Причём под VM должен быть тот-же набор железа... Ну а в реальном мире, с диким разбросом железа (процев, чипсетов, аудио карт) и драйверов к нему - сомнительно что ты напишешь что-то работо-способное. VmWare, кста, притворяется 440BX чипсетом, и виндовстие драйвера работают. Интересно, реализованы ли там все функции... хотя, это всё равно заточка под одну конкретную версию VmWare. Возвращаясь к оригинальной теме. Думаю что в след. версии VmWare будет поддержка этого hypervisor-a, и тогда под их сервером запустится winXP с новой изоляционной прослойкой. Вопросов, правда, два: а) инсталить ли vmware tools? Ессно надо, что б производительность была нормальной, но тогда теряем невидимость б) будет ли там отладчик? Если да, то это может быть похожа на настоящий железный отладчик с JTAG интерфесом, которому пох на операционку, и можно протрейсить обработчик прерывания. Если так, то весь вопрос в том, на сколько близко/полно VmWare эмулирует железо. |
|
Создано: 31 июля 2007 00:31 · Поправил: Error_Log · Личное сообщение · #3 s0larian пишет: сомнительно что ты напишешь что-то работо-способное Зря так думаешь. Неразрешимых задач небывает ровно как не бывает ничего абсолютного, виртуализация не исключение, кто-то все равно что-то подобное сделает. А кто-то как обычно просто срубит денег на пиаре, вот и все. ----- Research is my purpose |
|
Создано: 31 июля 2007 02:21 · Поправил: s0larian · Личное сообщение · #4 бадацца хочешь.... Error_Log пишет: Неразрешимых задач небывает Бывают, но не в этом дело. Очень часто есть нерабочие попытки решения. Теперь по теме, я виужу две проблемы: а) необходимость завязки на конкретное железо для получения разнообразных метрик б) слишком большая дисперсия значений этих измерений из-за разнообразия производительности (и загрузки) машин Если взять эти два положения как исходные, то задача не решается статистическим методом. |
|
Создано: 31 июля 2007 03:28 · Личное сообщение · #5 Sly Ass, родной, ты у себя под забором с шалавами общаешься, или на форуме с сообществом? Может лаиться закончишь, да. Error_Log пишет: Хорошо оттестить методику детекта. Ну а противодействовать просто - делаем force reboot из драйвера и все что-то какой-то поток сознания... и здесь и на следующей странице. Sly Ass пишет: Хороший метаморф почти кого угодно остановит. Утверждение верно до тех пор, пока цена вопроса не будет соотвествующей или у китайцев в одном месте не стрельнет. Не аргумент, в общем. Sly Ass пишет: Думаете это единственный метод? Хрен то там. Мдя... ну давай голую теорию другого метода, поспорим о нём. W[4Fh]LF пишет: Это уже не метод детекта. +1 Sly Ass пишет: Хотя собственно таких протекторов всего два... Гм. А огласите список, пожалуйста. А мы посмотрим, жалует ли конечный пользователь эти мега-проты. Sly Ass пишет: Конкретных процев с виртуализацией сущствует всего 2 типа. Не так уж и много. Во-первых - это пока, а во-вторых, вот еслиб ты сказал, что существует их две штуки, то это было бы действительно не так много, но их уже сейчас два типа. Sly Ass пишет: Вкурсе что кроме собственно процессора есть еще и железо, в котором дожеппы напихано всяких там таймеров? Старовцы попытались написать драйвера под все чипсеты для всего-то приводов - что из этого вышло? Нежизнеспособно. |
|
Создано: 31 июля 2007 04:23 · Личное сообщение · #6 s0larian пишет: а) инсталить ли vmware tools? Ессно надо, что б производительность была нормальной, но тогда теряем невидимость Какая нафиг невидимость. Вмваря ловиться и без тулзов, хотябы по своему чипсету. Gideon Vi родной, иди нахуй чудище, с таким засраным пидаристическим ублюдком как ты невозможно вести конструктивный разговор. Такой долбаеб как ты никогда не осилит ни виртуализацию, не ее детект, а только и может что языком трепать и все обсирать. Сынок, ты пошел бы покурил мануалы, да подучил некоторые особенности защищенного режима, тогда может в твоей бараньей башке что нибудь и просветлеет. Хотя врядли, ведь в ней не осталось ни капли мозгов. |
|
Создано: 31 июля 2007 06:15 · Личное сообщение · #7 |
|
Создано: 31 июля 2007 08:45 · Поправил: BlindChaos · Личное сообщение · #8 Sly Ass BlindChaos пишет: - VMM вместе со всем говном располагается в некэшируемой памяти и не вызывает никаких замещений строк кэша Заебись же это все будет тормозить... можно попробовать вообще кэш вырубить - я пробововал (на 9х), и на глаз даже не заметил разницы в обычной работе. Т.к. виртуализация сейчас доступна пока только на топовых процах - запас по скорости у них есть. ;) Еще есть дорогая и относительно быстрая оперативка с низкими таймингами и хорошо разгоняемая - а тот, кто может позволить себе проц с VT, может себе позволить и дорогую и быструю память. пиздатый способ наебать виртуализацию - при метаморфинге кода вставлять дофига инструкций которые гипервизор обязан эмулить. При нормальном исполнении кода все будет работать быстро, а под виртуализатором просто помрет от тормозов нахрен. есть еще и железо, в котором дожеппы напихано всяких там таймеров? Начиная от системного таймера, и заканчивая таймером по которому шлет прерывания звуковуха. Вот тебе и методы измерения правильных таймингов. Только не надо ля-ля что их все можно проэмулить. Хуй то там, есть различные hardvare specific хреновины. heh, что-то у меня сильное чувство дежавю появилось... Насчет привязки к таймерам железа - тоже далеко не fail-proof. Стандартные таймеры типа PIT, RTC, ACPI (aka PM-timer) и HPET - давно известны и могут быть проэмулированы, а чипсетные и прочие специфичные таймеры сильно зависят от железа. Работать с ними можно только на, к примеру, поддерживаемом множестве чипсетов. На новых системах ессно всё это придется пропускать. До кучи на многие чипсеты нет публичной документации. VMM же может банально сэмулировать в pci conf левые VID/DID и детектор будет считать, что выполняется на неизвестном железе. С забиванием VMM'а событиями тоже можно бороться, но это будет уже гораздо сложнее и обсуждению на кряклабе не подлежит. ;) Так прикинуть, на VT нет каких-либо принципиальных средств взять и обломать какую-либо из сторон - но можно бороться, как с виртуализацией, так и наоборот - классическая борьба меча и щита, бля. Можно придумывать трюки по облому виртуализации, также как и можно эти трюки обходить... Хотя почему-то кажется, что большинство популярных реализаций для VT ваще не будут противодействовать ничему. |
|
Создано: 31 июля 2007 08:48 · Личное сообщение · #9 |
|
Создано: 31 июля 2007 08:50 · Личное сообщение · #10 |
|
Создано: 31 июля 2007 09:14 · Личное сообщение · #11 n0name топовые в том смысле, что по быстродействию есть большая пропасть между ними и еще повсеместно используемыми старенькими процами типа какого-нибудь Duron-800 - разница минимум в 5 раз. И эта разница с лихвой покрывает разницу в быстродействии между процем с отключенным кэшированием памяти VMM и без. |
|
Создано: 31 июля 2007 09:24 · Личное сообщение · #12 Archer пишет: А юзать виртуализацию могут и не для отладки и все тайминги сместятся. Дык чо тогда, прот при любом использовании виртуалации пахать не будет? Ну так мы говорим о детекте абстрактной виртуализации, поэтому все методы и сводятся к таймингам. В случае детекта конкретных отладчиков/вм этих методов станет еще больше... К примеру приатаченый в этом топеге код вырубается с помощью комманды VMCALL при eax = 12345678, да и задетектить именно его нетрудно и по другим призднакам. BlindChaos Не сци, врагу я наши секреты не выдам Можешь спать спокойно. |
|
Создано: 31 июля 2007 09:59 · Поправил: W[4Fh]LF · Личное сообщение · #13 Sly Ass пишет: Если под отладчиком запуска проги надо будет ждать час, то это знаешь ли очень и очень обидно Откуда у тебя цифры? Ты уже перешёл к практике? Sly Ass пишет: Ну так мы говорим о детекте абстрактной виртуализации, поэтому все методы и сводятся к таймингам. Как бы там ни было, все эти способы с таймингами обходятся изменением кода в пределах VMM, приложение и гостевую ОС мы не трогает, а значит этот метод детекта необъективен. Учитывая все условности приведённые в данной теме, вообще дальше теории или индивидуальной реализации(а стало быть и обход индивидуально заточенного детекта тоже дело несложное), уйти не может. Sly Ass пишет: В случае детекта конкретных отладчиков/вм этих методов станет еще больше... А скорее меньше. Sly Ass пишет: К примеру приатаченый в этом топеге код вырубается с помощью комманды VMCALL при eax = 12345678, да и задетектить именно его нетрудно и по другим призднакам. Автор же написал, что: "It makes no attempt to hide the fact that the OS is in a VM" А VMCALL отключается сбросом бита в VMCS. Более того, инструкция введена как раз для общения Guest Software с Hypervosor, т.е. это не способ в прицнипе. |
|
Создано: 31 июля 2007 10:55 · Личное сообщение · #14 W[4Fh]LF пишет: Sly Ass пишет: Если под отладчиком запуска проги надо будет ждать час, то это знаешь ли очень и очень обидно Откуда у тебя цифры? Ты уже перешёл к практике? ты бы лучше сначала попытался сам что-то хотя бы в теории опровергнуть или предложить что-то свое. вот тебе пример с цифрами, если так намек не доходит: 10-30Мб сгенерированного кода, 95% - мусор, вызывающий события VMM 5% - полезный и очень важный код, например, формирующий ключ для расшифровки Вызвавшая событие команда в обработке выполняется, скажем, в 100 раз медленнее (что очень даже оптимистично) чем сама по себе Выполняется это, допустим, целых 0,5 сек на вышеупомянутом Duron-800. Прога под эмуляцией будет видеть, что выполнялась 0,5 сек. А что будешь видеть ты? ;) |
|
Создано: 31 июля 2007 11:19 · Личное сообщение · #15 BlindChaos пишет: ты бы лучше сначала попытался сам что-то хотя бы в теории опровергнуть или предложить что-то свое. Автор предложивший rdtsc игнорирует все слова, которые идут во-преки поддержания данной идеи. Опровержений набралось уже достаточно. BlindChaos пишет: вот тебе пример с цифрами, если так намек не доходит Намёк понят, непонятна категоричность и утрирование автора. Аргумент против этого метода уже приведён и он достаточно весом для того, чтобы данный метод канул в лету как эффективный. А если речь идёт об экспериментальном образце, так я не вижу проблем для обхода этого мусорного кода используя только VMM. |
|
Создано: 31 июля 2007 11:34 · Поправил: Модератор · Личное сообщение · #16 W[4Fh]LF пишет: Автор предложивший rdtsc игнорирует все слова, которые идут во-преки поддержания данной идеи. Опровержений набралось уже достаточно. Тебе обьяснили - существует две линейки процессоров с виртуализацией: Core duo и Amd athlon 64. Тайминги выполнения на именно этих процессорах легко забить в таблицу. Новые линейки процессоров появляются не каждый день, так что если сильно не лениться, то забивать их поддержку можно вовремя. W[4Fh]LF пишет: Аргумент против этого метода уже приведён и он достаточно весом И в чем же ты меряешь весь своей аргументации? В килограммах? По мне, так твоя аргументация ничего не стоит. Раз ты такой умный что мне аргументируешь, то напиши мне реализацию отладчика который я не смогу поймать. Как напишешь - тогда и поговорим. |
|
Создано: 31 июля 2007 11:36 · Личное сообщение · #17 В общем, дождемся, пока появится "недетектируемый" код с использованием VMM, а потом и посмотрим кто был прав. А пока этот спор - пустое сотрясание воздуха. Пока что очевидно, что большая часть категорично верит, что VMM абсолютная панацея от всех бед. Тем не менее Рутковска, распиарив свой BluePill, для проведения подобного соревнования потребовала офигенную сумму денег на полгода вперед, которую заведомо ей никто не даст, и поставила нереальные условия для тестинга (почитайте ее ответ). ----- Research is my purpose |
|
Создано: 31 июля 2007 11:37 · Поправил: Модератор · Личное сообщение · #18 |
|
Создано: 31 июля 2007 11:41 · Личное сообщение · #19 In addition: Ещё один камень в огород метода с выполнением мусорного кода, вызывающего события VMM. Если данный метод будет включён в какието публичные продукты, то можно предположить, что проверка поддержки HV будет. А она по средствам чего делается? Правильно, вызова CPUID. А с ним что происходит? Правильно, перехватывается и возвращается в соотв. бите 0 или резалт целиком формируется аналогично процессору без поддержки технологии. Ну а так да, данные методы могут лечь в основу утилит VMM Detection и они будут определять наличие ВМ с какой-то точностью, с какой пока тоже предсказать трудно. |
|
Создано: 31 июля 2007 11:52 · Личное сообщение · #20 W[4Fh]LF пишет: Правильно, вызова CPUID. А с ним что происходит? Правильно, перехватывается и возвращается в соотв. бите 0 или резалт целиком формируется аналогично процессору без поддержки технологии. А ты вкурсе что тип процессора можно отличить не только с помощью cpuid? Вкурсе, что у интел есть свои расширения команд, у амд свои. Вкурсе, что push [esp+xx] на них выполняется по разному? Вкурсе, что поведение fpu команд отличается? Не вкурсе, так [censored], иди [censored] ты [censored] ваще [censored]. |
|
Создано: 31 июля 2007 11:52 · Поправил: W[4Fh]LF · Личное сообщение · #21 Sly Ass Да не принимай ты так близко к сердцу, всё в жизни наладится Подучишь русский, научишься с людьми общаться(уважать себя и собеседника), а там глядишь они к тебе потянутся, а пока общение с тобой на уровне матов и криков лично меня не интересует. Error_Log пишет: Пока что очевидно, что большая часть категорично верит, что VMM абсолютная панацея от всех бед. Неа, не верю Но эффективных методов пока не знаю. Error_Log пишет: Тем не менее Рутковска, Да она один большой пиар-проект, чё с неё взять У неё была масса причин заявить такие требования и, я думаю, последняя из них то, что она имеет реализацию BluePill и боится его детекта. |
|
Создано: 31 июля 2007 11:55 · Поправил: W[4Fh]LF · Личное сообщение · #22 |
|
Создано: 31 июля 2007 11:56 · Личное сообщение · #23 Error_Log пишет: Что большая часть категорично верит, что VMM абсолютная панацея от всех бед. Так считал и Ms-Rem, вы думаете, что он начинал писать дебаггер под эту штуку просто так? По его словам тот дебаггер не смогли бы даже старфорсовцы обнаружить, им бы просто никто не дал! А его словам можно доверять... |
|
Создано: 31 июля 2007 12:01 · Поправил: Sly Ass · Личное сообщение · #24 Bit-hack пишет: Так считал и Ms-Rem, вы думаете, что он начинал писать дебаггер под эту штуку просто так? По его словам тот дебаггер не смогли бы даже старфорсовцы обнаружить, им бы просто никто не дал! А его словам можно доверять... Да ну? Можно цитатку из его слов? Чето я не видел чтобы он говорил о панацее. Может он говорил, что не обнаружат только существующие сейчас защиты? Да и вобще, кто он такой? Аффтаритет чтоли? W[4Fh]LF пишет: Гопнег Sly Ass, я в курсе всего этого, только ты учись выхватывать идею из предложений, а не привязываться к словам. Свободен. Иди гуляй сынок. |
|
Создано: 31 июля 2007 12:04 · Личное сообщение · #25 |
|
Создано: 31 июля 2007 12:56 · Личное сообщение · #26 Bit-hack пишет: Так считал и Ms-Rem, вы думаете, что он начинал писать дебаггер под эту штуку просто так? Ты не прав. Я нашел даже логи старые с аськи: --------------------------------------<- Ms Rem (23:54:48 11/12/2006) не думаешь делать детект руткитов на виртуализации --------------------------------------<- Ms Rem (23:55:03 11/12/2006) просто про эту тему много пи[censored], правда ни[censored] рабочего никто еще не увидел -------------------------------------->- Error_Log (23:55:10 11/12/2006) Я пока даже не разбирался с этой технологией... --------------------------------------<- Ms Rem (23:55:22 11/12/2006) можно отхватить немного славы --------------------------------------<- Ms Rem (23:55:35 11/12/2006) а задетектить на самом деле плевое дело -------------------------------------->- Error_Log (23:56:03 11/12/2006) ну а оно всегда так - много пиара, а мало толку --------------------------------------<- Ms Rem (23:56:16 11/12/2006) я просто изучал применительно к отладке --------------------------------------<- Ms Rem (23:56:23 11/12/2006) как могут задетектить --------------------------------------<- Ms Rem (23:56:36 11/12/2006) и пришел к выводу, что дело труба, детект почти тривиален --------------------------------------<- Ms Rem (23:56:39 11/12/2006) и он не лечиться ----- Research is my purpose |
|
Создано: 31 июля 2007 12:57 · Личное сообщение · #27 |
|
Создано: 31 июля 2007 14:19 · Поправил: tnt17 · Личное сообщение · #28 W[4Fh]LF пишет: Да она один большой пиар-проект, чё с неё взять Пиар- не пиар, а интересные вещи изредка выдает. W[4Fh]LF пишет: "Sly Ass пишет: В случае детекта конкретных отладчиков/вм этих методов станет еще больше... " А скорее меньше. Пример: трюк с CreateFile для SI - метод реализован чисто для детекта SI и на ольке работать не будет в принципе. В том то и дело, что при наличии конкретной реализации намного проще создать детект, нежели для общего случая. Пусть пример не совсем по теме, но показателен, как метод атаки на реализацию. ----- – Почему ты работаешь по ночам ? – Так удобнее... В одну смену с чертями... |
|
Создано: 31 июля 2007 14:43 · Личное сообщение · #29 Error_Log пишет: Ты не прав. Я нашел даже логи старые с аськи: Х.з. логи остались на убитом винте с ноута. Но насколько я помню, он говорил, что авторы стара будут отдыхать, т.к. их дровину на этот уровень не пустит дебаггер (тот, что он хотел написать) и стар даже не узнает, что его дебажат... Не знаю, может он это говорил не разобравшись, может ещё что. |
|
Создано: 31 июля 2007 20:43 · Поправил: mathio · Личное сообщение · #30 > Вкурсе, что у интел есть свои расширения команд, у амд свои. Вкурсе, что push [esp+xx] на них ыполняется по разному? Sly Ass, доброго времени суток, можно здесь по-подробнее? В чем в данном случае отличия? Вообще для меня несколько удивительно, что данный x86 код будет работать по-разному на amd и intel. Т.е. на интел "push dword ptr [esp + n]" работает следующим образом: (ala эмулятор команды, на C) [code] unsigned char * esp; *(unsigned int*)&esp[-4] = *(unsigned int*)&esp[n]; esp -= 4; [/code] |
|
Создано: 31 июля 2007 21:13 · Личное сообщение · #31 |
<< . 1 . 2 . 3 . >> |
eXeL@B —› Программирование —› Аппаратная виртуализация |