Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

articles:unix.emu [2017/09/05 02:55] (текущий)
Строка 1: Строка 1:
 +====== UNIX.emu ======
 +<​sub>​{{UNIX.emu.odt|Original file}}</​sub>​
 +
 +====== профессии эмуляторов ======
 +
 +крис касперски ака мыщъх, no email
 +
 +//если под рукой нет линейки,​ используй подручные средства в качестве измерительных приборов:​ дискета – 9 х 9 см; видеокассета – 18,5 х 10 см; твой пенис////​ ////​– сам знаешь.//​
 +
 +//из лекций по метрологии//​
 +
 +**эмулятор компьютера**** – ****великая вещь! кем бы вы ни были – продвинутым пользователем,​ администратором,​ программистом или даже воинствующим хакером,​ эмулятор вас выручит и поможет,​ весь вопрос в том когда и как. вот об этом мы и собираемся рассказать!**
 +
 +===== введение =====
 +
 +Эмуляторы прочно вошли в нашу жизнь и не собираются из нее никуда уходить. Напротив,​ численность их поголовья множится с каждым днем. Мы не будем рекламировать каких-то конкретных представителей этого вида,​ – эмулятор своей мечты каждый может найти и самостоятельно (заходим в Google, говорим ему "​обзор эмуляторов"​ или что-то в этом роде, щелкаем "​мне повезет",​ после чего запускаем Осла и сливаем понравившийся эмулятор на халяву). Лучше мы расскажем,​ что с этим самым эмулятором можно сделать,​ то есть как правильно его употребить. Поручики! Ни слова о том, чтобы куда-то засунуть!
 +
 +===== пользователи =====
 +
 +Вообрази себе картину – ты читаешь в компьютерном журнале про замечательную игрушку,​ загораешься ею всеми фибрами души и вдруг обнаруживаешь,​ что на твоей оси она не идет. Прямо как обухом по голове! Хуже всего приходится пользователем Free BSD – игр под нее найдешь днем с огнем. Для Windows места не жалко, но перезагружаться каждый раз, чтобы запустить игру – нет уж, увольте! А если это игра под Mac или Sony Playstation?​ Современные аппаратные мощности позволяют забыть о родном "​железе"​ и эмулировать весь компьютер целиком,​ открывая безграничный мир программного обеспечения. Теперь вы уже не привязаны к какой-то конкретной платформе и можете запускать любые программы,​ независимо для какого компьютера они были написаны – ZX SPECTRUM или X-Box. Главное – найти хороший эмулятор!
 +
 +Основная операционная система становится как бы фундаментом для целого зоопарка гостей. Одну из клеток этого зверинца можно (и нужно!) выделить под своеобразный карантин-отстойник. Известно,​ что при установке новой программы,​ вы всегда рискуете уронить операционную систему – кривой инсталлятор,​ конфликт библиотек,​ Add-Ware или просто карма у нее такая. Программы,​ полученные из ненадежных источников,​ лучше держать подальше ото всех остальных. Просто выделите им отдельную виртуальную машину в эмуляторе и хрен они вырвутся оттуда!
 +
 +{{unix.emu_Image_0.png}}
 +
 +Рисунок 1 не важно какая у тебя ось! важно – какой у тебя эмулятор!
 +
 +===== администраторам =====
 +
 +Для администраторов эмулятор это в первую очередь полигон для всевозможных экспериментов. Поставьте себе десяток различных UNIX'​ов и издевайтесь над ними по полной программе. Устанавливайте систему,​ сносите ее и снова устанавливайте,​ слегка подкрутив конфигурацию. На работу ведь принимают не по диплому,​ а по специальности,​ а специальность приобретается только в боях. Тоже самое относится и к восстановлению данных. Без специальной подготовки Disk Editor на своей рабочей машине лучше всего не запускать,​ а Disk Doctor – тем более. Нет никакой гарантии,​ что он действительно вылечит диск, а не превратит его в винегрет. Короче говоря,​ эмулятор – это великолепный тестовый стенд, о котором раньше не приходилось даже мечтать.
 +
 +В больших организациях администратор всегда держит на резервном компьютере точную копию сервера и все заплатки сначала обкатывает на нем. В конторах поменьше отдельной машины под это дело никто не даст и приходится прибегать к эмулятору. На нем же тестируются различные эксплоиты и если факт уязвимости подтверждается,​ принимаются оперативные меры по ее устранению.
 +
 +Общение виртуальной машины с основной операционной системой и другими виртуальными машинами обычно осуществляется через локальную сеть. Виртуальную,​ разумеется. При наличии 512 – 1024 Мбайт памяти можно создать настоящий корпоративный интранет – с SQL и WEB-серверами,​ DMZ-зоной,​ брандмауэром и несколькими рабочими станциями,​ свободно умещающимися внутри домашнего компьютера. Лучшего полигона для обучение сетевым премудростям и не придумаешь. Хочешь – атакуй,​ хочешь – администрируй.
 +
 +{{unix.emu_Image_1.png}}
 +
 +Рисунок 2 виртуальная сеть Андрея Бешкова
 +
 +===== разработчикам =====
 +
 +Больше всего эмуляторы любят разработчики драйверов. Ядро не прощает ошибок и мстительно разрушает жесткий диск, уничтожая все данные накопленные за многие годы. Перезагрузки и зависания – вообще обычное дело, к которому привыкаешь как к стуку колес или шороху шин. К тому же, большинство отладчиков ядерного уровня требует наличия двух компьютеров,​ соединенных COM-шнурком или локальной сетью. Для профессионального разработчика это не роскошь,​ но… куда их ставить?​ Окружишь себя мониторами,​ а потом как дурак крутишь во все стороны головой – отвались моя шея!
 +
 +С эмулятором все намного проще. Ни тебе потери данных,​ ни перезагрузок,​ а всю работу по отладке можно выполнять на одном компьютере. Естественно,​ что совсем уж без перезагрузок дело не обходится,​ но пока перезагружается виртуальная машина,​ можно делать что-то полезное на основной (например,​ править исходный код драйвера). К тому же мы можем заставить эмулятор писать команды в лог и потом подсмотреть,​ что привело драйвер к смерти (правда,​ не все эмуляторы это умеют).
 +
 +В GENETIC-ядре FreeBSD отладчика нет, а отладочное ядро вносит в систему побочные эффекты. В нем драйвер может работать нормально,​ но брехать GENETIC'​e. Windows-отладчики ведут себя схожим образом и окончательное тестирование драйвера должно проходить в "​безлошадной"​ конфигурации,​ начисто лишая разработчика всех средств отладки и мониторинга.
 +
 +{{unix.emu_Image_2.png}}
 +
 +Рисунок 3 разработка драйверов в доэмуляторную эпоху
 +
 +{{unix.emu_Image_3.jpg}}
 +
 +Рисунок 4 еще один разработчик драйверов
 +
 +А что прикладные программисты?​ Эмуляторы позволяют держать им под рукой всю линейку операционных систем,​ подстраивая свои программу под особенности поведения каждой из них. У Windows всего две системы – NT плюс 9x, и то у них голова кругом идет, а UNIX намного более разнообразен!
 +
 +Коварство багов в том, что они склонны появляться только в строго определенных конфигурациях. Установка дополнительного программного обеспечения,​ а уж тем более перекомпиляция ядра может их спугнуть и тогда – ищи-свищи. А это значит,​ что до тех пор пока баг не будет найден,​ ничего нельзя менять в системе. На основной машине это требование выполнить затруднительно,​ но легко на эмуляторе! Виртуальная машина,​ отключенная от сети (в том числе и виртуальной) в заплатах не нуждается. Но как же тогда обмениваться данными?​ К вашим услугам – дискета и CD-R.
 +
 +Самое главное – эмуляторы позволяют создавать "​слепки"​ состояние системы и возвращаться к ним в любое время неограниченное количество раз. Это значительно упрощает задачу воспроизведения сбоя (т. е. определения обстоятельств его возникновения). Чем такой слепок отличается от дампа памяти,​ сбрасываемого системой при сбое? Как и следует из его названия дамп включает в себя только память,​ а "​слепок"​ все компоненты системы целиком – диск, память,​ регистры контроллеров и т. д.
 +
 +Разработчики сетевых приложений от эмуляторов вообще в полном восторге. Раньше ведь как, ставишь второй компьютер,​ сажаешь за него жену и долго и нудно объясняешь какие клавиши ей нажимать. Теперь же отладка сетевых приложений упростилась до предела.
 +
 +{{unix.emu_Image_4.jpg}}
 +
 +Рисунок 5 отладка прикладной программы под эмулятором
 +
 +===== хакерам =====
 +
 +Эмулирующие отладчики появились еще во время MS-DOS и сразу же завоевали бешенную популярность. Неудивительно! Рядовые защитные механизмы применяют две основных методики для борьбы с отладчиками – пассивное обнаружение отладчика и активный захват отладочных ресурсов,​ делающий отладку невозможной. На эмулирующий отладчик эти действия никак не распространяются – он находится ниже виртуального процессора (а, потому,​ для отлаживаемого приложения совершенно невидим),​ и не использует никаких ресурсов эмулируемого процессора.
 +
 +Слепки системы очень помогают во взломе программ с ограниченным сроком использования. Ставим программу,​ делаем слепок,​ переводим дату, делаем еще один слепок. Смотрим – что изменилось. Делаем выводы и отламываем от программы лишние запчасти. В ламерской редакции эта методика выглядит так: устанавливаем защищенную программу на отдельную виртуальную машину. Делаем "​слепок"​. Все! Защите хана! Сколько бы мы не запускали "​слепок",​ она будет наивно полагать,​ что запускается в первый раз. Не сможет она привязываться и к оборудованию – оборудование эмулятора не зависит от аппаратного окружения,​ предоставляя нам неограниченную свободу выбора последнего.
 +
 +Попутно эмулятор освобождает от необходимости ставить ломаемую программу на свою основную машину. Во-первых,​ некоторые программы,​ обнаружив,​ что их ломают,​ пытаются как-то напакостить на винте, а если даже и не напакостят,​ то как пить дать сглючат,​ так пусть лучше глючит на эмуляторе – это во-вторых.
 +
 +{{unix.emu_Image_5.png}}
 +
 +Рисунок 6 отладочная версия Windows 2000 в китайском исполнении
 +
 +{{unix.emu_Image_6.png}}
 +
 +Рисунок 7 ща мы ее хакнем!
 +
 +===== >>>>​ врезка как настроить soft-ice =====
 +
 +При попытке использования soft-ice под Windows 2000,​ запущенной из-под VMWare начинаются сплошные лапти – soft-ice работает только из text-mode режима,​ развернутого на весь экран (заходим в FAR, жмем <​ALT>​-<​ENTER>,​ затем <​CTRL>​-<​D>​),​ а во всех остальных режимах наглухо завешивает систему. Еханный бабай! Кстати,​ под Windows 98 он чувствует себя вполне нормально,​ но переход на Windows 98 – не вариант.
 +
 +Это известный глюк айса, признанный NuMega и устраненный лишь в Driver Studio версии 3.1 (в официальной формулировке это именуется "​поддержкой VMWARE). Подробности можно найти в документации (см. \Compuware\DriverStudio\Books\Using SoftICE.pdf,​ приложение E – "​SoftIce and VMware"​). При этом в конфигурационный файл виртуальной машины (имя_виртуальной_машины.vmx) необходимо добавить строку svga.maxFullscreenRefreshTick = "​2"​ и  vmmouse.present = "​FALSE"​. Мышь работать не будет, да она в soft-ice не сильно кому и нужна.
 +
 +===== >>>>​ врезка экзотические эмуляторы =====
 +
 +Помимо эмуляторов PC, существует огромное количество эмуляторов самых разнообразных устройств,​ например,​ сотовых телефонов,​ карманных компьютеров,​ контроллеров лифта и т. д. Возьмем сотовый телефон. Он не содержит средств разработки,​ а, значит,​ запрограммировать его, давая на клавиши принципиально невозможно (а среду разработки там помешать просто некуда – не хватает ни быстродействия процессора,​ ни памяти). Вот и приходится прибегать к эмуляторам. Это даже не вопрос удобства,​ это вопрос выживания!
 +
 +{{unix.emu_Image_7.png}}
 +
 +Рисунок 8 эмулятор Z80 для встраиваемых устройств
 +
 +===== заключение =====
 +
 +Эмуляторы преображают компьютерный мир, с каждым днем наращивая потенциал своих возможностей. На мощнейших Pentium'​ах даже DOOM III эмулируется с приемлемой скоростью,​ а это значит,​ что время поголовной установки эмуляторов уже пришло. Стоит только попробовать и вы уже ни за что не откажетесь от десятка своих любимых виртуальный машин, позабыв про основную платформу.
 +
 +