Отправляет email-рассылки с помощью сервиса Sendsay

Хakep_daily

  Все выпуски  

200 ГБ бесплатно в облачном хранилище OneDrive *


PDA   подписка    wiki   bugtrack   статьи    видео   блог   форум   поиск    друзья   






Троян под Android работает после «выключения» смартфона
2015-02-23 13:28 Denis Mirkov

Существует миф, что спецслужбы могут отслеживать местоположение даже выключенного мобильника. Новый троян под Android 5+ в каком-то смысле реализует эту концепцию.

Специалисты из антивирусной компании AVG рассказывают о зловреде, который продолжает работать даже когда телефон кажется выключенным. Получив рутовые права в системе, он перехватывает вызов на выключение аппарата, затем показывает фирменную анимацию выключения телефона и гасит экран. Пользователь думает, что телефон выключен, но на самом деле он работает: троян может осуществлять исходящие вызовы, делать фотографии и осуществлять другие поставленные задачи.

Под Android при нажатии кнопки Power активируется функция interceptKeyBeforeQueueing, которая вызывает соответствующий процесс.

003

Когда кнопка отпущена, активируется intereceptPowerKeyUp.

004

На экране возникает диалог, предоставляя выбор из нескольких действий.

005

Если выбрать опцию выключения аппарата, вызывается mWindowManagerFuncs.shutdown.

006

И вот здесь после обращения к функции ShutDownThread.shutdown непосредственно инициируется процедура отключения питания на физическом уровне.

007

008

Вредоносная программа запускает процесс в фоновом режиме перехватывает вызовы к mWindowManagerFuncs. Таким образом, когда пользователь выбирает опцию отключения энергии, вместо системного процесса запускается анимация, после чего экран отключается, но аппарат продолжает работу.

009

Троян обнаружили в китайских магазинах приложений и к настоящему моменту заразил около 10 000 устройств.

Прочитать полностью на сайте: Троян под Android работает после «выключения» смартфона



PowerSpy: трекинг координат смартфона по заряду аккумулятора
2015-02-23 16:51 Denis Mirkov

Исследователи из Стэндфордского университета и научно-исследовательской организации Defense Research Group при министерстве обороны Израиля нашли способ, как следить за пользователями смартфонов с отключенным GPS.

В опубликованной научной работе они приводят экспериментальные данные, в соответствии с которыми маршрут пользователя по известной местности определяется с точностью 90%, если снимаются показания о заряде аккумулятора со смартфона. Ценность этого исследования состоит в том, что информация о заряде не является секретной и свободно доступна для любого установленного приложения. То есть самая обычная программа может отслеживать перемещения человека, не запрашивая дополнительных разрешений на доступ к соответствующей информации при установке, то есть не вызывая подозрений.

Разработанная программа PowerSpy эксплуатирует тот факт, что расход аккумулятора в смартфоне изменяется в зависимости от расстояния от вышек сотовой связи. Чем больше расстояние — тем больше энергии телефон тратит на поддержание связи с вышкой. Если пользователь отключит связь GSM, то слежка, конечно, станет невозможной.

Паттерн изменения энергопотребления практически не изменяется между разными смартфонами одной модели (сравнение двух аппаратов приведено на первом графике) и даже между устройствами разных моделей (второй график).

004

005

Единственное условие: для эффективной слежки нужно провести предварительное «профилирование» и составить соответствующие графики для всех возможных маршрутов. Зато потом, если такая база собрана, возможно надёжное массовое наблюдение за перемещением всех пользователей или конкретных людей.

На следующих диаграммах сравнивается профиль энергопотребления в разные дни недели на одном маршруте. Как видно, он остаётся практически неизменным.

003

Прочитать полностью на сайте: PowerSpy: трекинг координат смартфона по заряду аккумулятора



Аудит кода TrueCrypt всё-таки продолжится
2015-02-23 19:35 Denis Mirkov

В октябре 2013 года профессор и известный криптограф Мэттью Грин (Matthew Green) опубликовал сообщение в своем блоге с призывом провести аудит TrueCrypt в рамках проекта Open Crypto Audit. Криптографическое сообщество поддержало идею, в рамках краудфандинговой кампании была собрана достаточная сумма на оплату труда профессионалов.

Много лет TrueCrypt считался одним из самых надёжных и безопасных приложений для шифрования дисков. Первые результаты аудита подтвердили его репутацию. Исследователям удалось найти всего 11 багов, из которых четырём присвоен средний статус опасности, еще четырём — низкий, а остальные три бага имеют «информационный» статус, то есть не представляют опасности. Во время первой фазы аудита изучался загрузчик TrueCrypt и драйвер ядра Windows, проводился анализ архитектуры и исходного кода, а также пентесты, в том числе с помощью фаззинга. Никаких бэкдоров или опасных уязвимостей не обнаружено.

Предполагалось, что на втором этапе аудита проверят корректность реализации в TrueCrypt различных криптошифров, генераторов случайных чисел и алгоритмов генерации ключей. Но все планы сорвались в мае 2014 года, когда анонимные разработчики TrueCrypt неожиданно объявили о закрытии проекта и даже намекнули на небезопасность использования TrueCrypt.

Эта новость породила смятение в рядах пользователей. Некоторые начали искать альтернативу TrueCrypt, другие предпочли остаться на старой версии программы (последняя версия 7.1). В то же время появилось несколько форков на основе исходного кода TrueCrypt. Аудит программы, естественно, был приостановлен в условиях неопределённости.

Однако, 18 февраля в официальном блоге Open Crypto Audit опубликована хорошая новость: вторая фаза аудита всё-таки состоится! Мэттью Грин просит прощения за задержку и уверяет, что собранные пожертвования в размере $70 000 он не потратил на курорты. Все деньги будут израсходованы по назначению, и тщательный анализ исходного кода TrueCrypt продолжится.

Прочитать полностью на сайте: Аудит кода TrueCrypt всё-таки продолжится



Повышаем пользовательские привилегии в Linux
2015-02-24 10:00 Антон Жуков

Мы уже рассматривали, как можно поднять свои привилегии до системных в мире Windows. Как оказалось, вариантов для этого более чем достаточно. Что выбрать, зависит как от ситуации, так и от твоих предпочтений. Однако, как ты понимаешь, расширять свои полномочия приходится не только для окошек, но и для пингвинов. Какие здесь есть возможности? Ну что ж, давай посмотрим…

Prefase

Как ты помнишь (и как должен помнить каждый адекватный администратор), работать в линуксе под рутом категорически не рекомендуется. В идеальном мире ты должен использовать его только для конфигурирования сервера, установки и обновления ПО и прочих чисто административных задач. Вся беда в том, что мы живем в обычном мире, который очень далек от идеального. Поэтому такая ситуация все же иногда бывает. Правда, в большинстве случаев чисто из-за халатности, ибо так уж исторически сложилось, что пользователям линукса приходилось разбираться в том, как работает их операционная система. А хоть немного разбираясь в системе и ее механизмах безопасности, под рутом уже сидеть не будешь. Поэтому сегодня, в отличие от Windows, где мы говорили о получении системных привилегий из-под админа, будем рассматривать только варианты повышения привилегий от непривилегированного пользователя до рута. Итак, приступим.

Эксплойты

Все способы получения прав суперпользователя в Linux можно условно разделить на две категории. Первая — это как раз таки использование эксплойтов. В отличие от Windows, c ее механизмом автоматической установки обновлений, приверженцам пингвина приходится по большей части самостоятельно следить за выходом заплаток и их установкой. В связи с этим шанс встретить среди Linux-машин не пропатченную до конца систему гораздо выше. Какие преимущества данного метода можно выделить? Для начала — большинство эксплойтов используют уязвимости в ядре ОС, что позволяет получить максимальные привилегии. Найти код подходящего эксплойта не так сложно, и ты наверняка знаешь пару ресурсов. Плюс ко всему, чтобы воспользоваться сплоитом, подчас не требуется разбираться во всех тонкостях используемой уязвимости — достаточно просто правильно скомпилировать его и запустить (иногда, правда, приходится его немного кастомизировать, но довольно часто все будет работать и без подгонки напильником). В общем виде алгоритм действий выглядит следующим образом:

  1. Определить версию ядра и дистрибутива.
  2. Получить список доступных инструментов для сборки сплоита.
  3. Доставить сплоит на целевую машину.
  4. Скомпилировать (при необходимости) и запустить.
  5. Наслаждаться полученным root’ом.

Ну а теперь о каждом шаге более детально.

Идентификация

Судя по плану, сначала надо узнать, куда мы вообще попали, что за дистр используем и какова версия ядра. Версию ядра можно вытянуть с помощью всем известной команды uname -a или ее аналогов. Для того же, чтобы получить информацию об используемом дистрибутиве, надо глянуть в файлик *-release, лежащий в каталоге etc (в зависимости от дистра он может называться по-разному: lsb-release в Ubuntu, redhat-release в Red Hat / CentOS и так далее):
cat /etc/*-release

Зная дистрибутив и версию ядра, можно заняться вторым этапом — поиском подходящей «отмычки».

Поиск эксплойта

Как только вся необходимая информация окажется на руках, настанет время искать подходящий эксплойт. Первое, что приходит на ум, — это exploit-db.com, но есть и альтернативы: 1337day, SecuriTeam, ExploitSearch, Metasploit, securityreason, seclists. В конце концов, есть гугл, он точно знает о сплоитах больше всех. Забегая немного вперед, скажу: иногда по какой-либо причине «отмычка» может не работать или же ее надо немного адаптировать под определенные условия или свои нужды, то есть пройтись по ней напильником. В таком случае не помешает выудить о ней дополнительную информацию, которую можно почерпнуть на одном из следующих ресурсов:
www.cvedetails.com
packetstormsecurity.org
cve.mitre.org

Итак, допустим, ты нашел подходящий эксплойт, который дарует тебе пропуск в мир рута. Осталось только как-то переправить его на машину.

Доставка на дом

Для того чтобы доставить сплоит на место, существует достаточно много способов, от всем известных cURL/wget, Netcat, FTP, SCP/SFTP, SMB до использования DNS TXT записей. Чтобы выяснить, какие из данных инструментов у нас представлены, выполняем:

find / -name wget
find / -name nc*
find / -name netcat*
find / -name tftp*
find / -name ftp

Допустим, у нас нашелся Netcat. Для передачи файла с его помощью на принимающей стороне запускаем:
nc -l -p 1234 > out.file

То есть слушаем порт 1234. На отправляющей выполняем следующее:
nc -w 3 [destination] 1234 < out.file

Если передача происходит с *nix- на *nix-систему, то есть там и там есть стандартные утилиты, то для ускорения процесса передачи можно воспользоваться сжатием. В таком случае команды будут выглядеть так:

nc -l -p 1234 | uncompress -c | tar xvfp - // для получения
tar cfp - /some/dir | compress -c | nc -w 3 [destination] 1234 // для отправки

Остальные варианты еще проще, так что не станем рассматривать использование wget, FTP и прочих общеизвестных методов.

Прятки

Хорошо, как доставить, разобрались. Но как при этом не спалиться? Если твой сплоит обнаружат, будь уверен, что лазейку быстро прикроют. Так что размещать его, компилировать и запускать надо из какого-то неприметного места. В линуксе директории, начинающиеся с точки (например, .secret_folder), являются скрытыми. Поэтому логично было бы их использовать для сокрытия своей активности. Например, поместить в них код эксплойта: /tmp/.nothingthere/exploit.c. Правда, в таком случае надо сначала убедиться, что tmp смонтирована без опции noexec и из нее можно будет запустить собранный сплоит (для этого воспользуйся командой mount).

Сборка и запуск сплоита

Как только мы доставили и разместили сплоит, его надо будет собрать/настроить. Как правило, сплоиты пишутся на С либо на одном из скриптовых языков Python/Perl/PHP. Постоянные читатели ][ знают, что оставлять на своем сервере компилятор — не самое лучшее решение, поэтому обычно его выпиливают. Если на твой вопрос о версии компилятора gcc -v bash ругнется gcc: command not found, значит, тебе «повезло» и придется идти в обход. То есть либо искать сплоит на питоне, перле или чем-то еще, либо компилить его на виртуальной машине с аналогичной ОС и версией ядра. После чего переместить полученный исполняемый файл на целевой хост (правда, стопроцентной работы этот способ не гарантирует, сплоит может упасть и обрушить систему, так что поаккуратнее тут). Однако, как показывает практика, интерпретатор для одного из упомянутых языков все же должен присутствовать в системе. Так что не следует сразу опускать руки, вместо этого проверяем все варианты:

find / -name perl*
find / -name python*
find / -name gcc*
find / -name cc

В случае успеха тебе останется только запустить скомпилированный эксплойт и наслаждаться повышением. Ну или же разбираться, почему он не сработал, тут как повезет.

Противодействие сплоитам

Какие-то новаторские рецепты тут придумать сложно. Все и так давно известно. Надо просто вовремя устанавливать заплатки. Это первое. Второе — ограничить места, откуда можно запускать на исполнение файлы (папку tmp уж точно следует лишить данной возможности). Ну и применить какое-нибудь защитное решение, например grsecurity.

Права, файлы, пути и конфиги

Вторая категория, которую можно выделить в поднятии привилегий, — это способы, не связанные с использованием эксплойтов, а основанные на поиске файлов с некорректно выставленными правами. Здесь, как и в случае с Windows, есть свои хитрости, но в основном это все та же работа по сбору и анализу данных. Обычно первым делом ищутся файлы, которые доступны всем на чтение и запись:
find / -perm 2 ! -type l -ls

Таких может оказаться достаточно большое число, и среди них можно найти что-нибудь интересное: конфигурационные файлы, исходники сайтов/приложений, скрипты, запускаемые init’ом или cron’ом. В принципе, ситуация, когда файл доступен всем на чтение и запись, — это нормальное явление. Проблемы возникают, когда пользователи/администраторы/скрипты начинают бездумно менять разрешения. Поэтому, когда ты изменяешь разрешения, старайся избегать использования chmod 777. Ну и проводи периодический аудит, чтобы важные файлы не оказались доступны всем подряд.

Setuid + setgid

Как гласит документация, setuid и setgid являются флагами прав доступа, которые позволяют запускать исполняемые файлы с правами владельца или группы исполняемого файла (обычно root’а). Такие исполняемые файлы, запущенные с повышенными привилегиями, могут получать доступ к более привилегированной информации. Например, в случае установки setuid на команду ls ты получишь возможность просматривать содержимое директорий, доступ в которые тебе изначально был запрещен. А в случае vim — править конфигурационные файлы, в которые до этого не имел права заглядывать.

Соответственно, если в приложениях с установленным setuid/setgid-флагом, присутствуют такие уязвимости, как buffer overflow или command injection, то атакующий может выполнить произвольный код с повышенными привилегиями. Поэтому следующим вариантом обычно ищут исполняемые файлы с данными флагами.
sudo find / -xdev \(-perm 4000\) -type f -print0 -exec ls -s {} \;

В принципе, можно и без sudo, это необходимо лишь для того, чтобы проверить директории, к которым у тебя нет доступа.

Обычно существует три варианта дальнейшего использования таких исполняемых файлов. Первый — попытаться поднять привилегии, опираясь на функционал, предоставляемый этим приложением (вернее, придумать свой способ необычного использования этого функционала). Второй вариант — найти публичный сплоит или провести самостоятельный фаззинг с целью выявления багов. Третий — command injection. Универсального рецепта нет, все зависит от ситуации.

SUDO

Команда sudo (substitute user and do), что дословно означает «подменить пользователя и выполнить», позволяет делегировать те или иные привилегированные ресурсы пользователям с ведением протокола работы. То есть предоставляет пользователям возможность выполнять команды от имени root’а (либо других юзеров), используя свой собственный пароль, а не пароль рута. Правила для принятия решений о предоставлении доступа находятся в файле /etc/sudoers. Подробнее о формате этого файла и задании правил ты можешь посмотреть в официальном мануале или Википедии. Я лишь скажу, что этот файл также необходимо тщательно проверять. Потому как часто бывает, что некоторые приложения при установке его изменяют, и притом не в лучшую сторону. В результате чего у пользователей появляется возможность поднять свои привилегии (пост на Offensive security, повествующий о таком случае).

PATH

Как и на винде, в линуксе некорректно настроенные пути также помогут поднять свои привилегии. Обычно такое случается с переменной окружения PATH (используй printenv для ее просмотра). Посмотрел? Отлично, а теперь скажи: что, если переменная окружения PATH будет начинаться с . (.:/bin:/usr/sbin ....)? Обычно так делают пользователи, которые не хотят набирать два лишних символа, то есть хотят вызывать команду так: $ program вместо $ ./program. Добавление . в PATH означает возможность выполнять файлы/скрипты из рабочей директории. Добавить ее можно следующим образом:

PATH=.:${PATH}
export PATH

А теперь представим ситуацию, что у нас есть два пользователя: Джо (атакующий) и Боб. Джо знает, что у Боба есть sudo-привилегии на изменение паролей пользователей, в том числе и рута. Кроме того, Боб ленив и добавил . в переменную окружения PATH. Хитрый Джо пишет программу, которая будет менять пароль рута, называет ее ls и кладет в папку, куда любит заглядывать Боб. Теперь, когда последний зайдет в папку и захочет посмотреть ее содержимое, выполнится программа, которую написал Джо, и пароль рута будет изменен. Поэтому всегда проверяем переменные окружения на наличие интересных вещей, а для себя делаем следующие выводы:

  1. Никогда не используем . в переменной PATH.
  2. Если точка там все-таки присутствуют, размещаем следующую строку в .bashrc или .profile:
    PATH= echo $PATH | sed -e 's/::/:/g; s/:.:/:/g; s/:.$//; s/^://'

Инструменты

Для автоматизации поиска слабых мест можно воспользоваться следующими тулзами:

1. LinEnum — bash-скрипт, который сделает всю грязную работу за тебя, выполняя все проверки, описанные в данном cheat sheet’e. Всего в его арсенале около 65 различных проверок, начиная от получения информации о версии ядра и заканчивая поиском потенциально интересных SUID/GUID-файлов. Кроме того, скрипту можно передать ключевое слово, которое он будет искать во всех конфигурационных и лог-файлах. Запускается проверка следующим образом: ./LinEnum.sh -k keyword -r report -e /tmp/ -t. После того как сканирование завершится, тебе будет представлен довольно подробный отчет, наиболее интересные места которого будут подсвечены желтым цветом.
2. LinuxPrivChecker — Python-скрипт, который также пригодится в поиске потенциальных вариантов для повышения привилегий. В общем-то, он выполняет все те же стандартные вещи: проверку привилегий, получение информации о системе… Но основная его фишка в том, что по завершении проверки он предложит тебе список эксплойтов, которые, по его мнению, помогут поднять привилегии. Такой вот молодец :).
3. unix-privesc-check — данный скрипт позволяет искать варианты для прокачки привилегий не только в Linux, но также и в Solaris, HPUX, FreeBSD. Он старается обнаружить ошибки конфигурации, которые позволили бы непривилегированному пользователю подняться в системе.
4. g0tmi1k’s Blog — а это блог, в котором хорошо описаны все те проверки, что выполняются тремя названными инструментами. Так что настоятельно рекомендую заглянуть туда и познакомиться, чтобы представлять, как работают эти инструменты «изнутри».

Основные опции LinEnum

Основные опции LinEnum

 

unix-privesc-check предлагает на выбор всего две опции

unix-privesc-check предлагает на выбор всего две опции

LinuxPrivChecker содержит большой список эксплойтов, который постоянно пополняется с Exploit Database

 

Afterword

Как ты убедился, в мире Linux с поднятием привилегий все тоже достаточно обыденно. Секрет успеха прост: для того, чтобы добиться своей цели, надо быть терпеливым и знать, где искать и что искать. Куда смотреть, ты теперь знаешь, какие утилиты задействовать для автоматизации — тоже, так что теперь тебе под силу покорить не только win-, но и nix-систему. Дерзай!

Прочитать полностью на сайте: Повышаем пользовательские привилегии в Linux



OS X: самая уязвимая операционная система?
2015-02-24 10:44 Denis Mirkov

На основании информации из Национальной базы уязвимостей (NVD) компания GFI Software составила список операционных систем и программных приложений, для которых зафиксировано наибольшее количество уязвимостей в 2014 году.

В прошлом году в базу добавили 7038 уязвимостей (≈19 в день). В последние три года наблюдается явная тенденция на увеличение числа багов.

123

24% уязвимостям присвоен высокий уровень опасности. Это меньше, чем в 2013 году, но на самом деле количество опасных уязвимостей увеличилось.

1234

Наибольшее количество багов приходится на программные приложения (83%). На долю операционных систем — 14%. Ещё 4% уязвимостей найдено в аппаратных устройствах.

vulnerability-distribution-by-product-type

Среди операционных систем больше всего уязвимостей по итогам 2014 года найдено в операционной системе OS X. На втором месте по «дырявости» — Apple iOS. Далее следует ядро Linux, и только потом идут разные версии Windows.

Untitled-1

Справедливости ради нужно отметить, что составители рейтинга не включили в него Android, хотя эта ОС вполне могла бы претендовать на 1-е место. К тому же, баги в разных версиях Windows развели по разным категориям, а баги в разных версиях OS X суммировали воедино.

Среди программных приложений, однако, продукт Microsoft занимает «почётное» первое место. Как несложно догадаться, это браузер Internet Explorer. Вообще, браузеры оккупировали три первые строчки в списке самых уязвимых программ.

005

Этот список практически не отличается от аналогичного рейтинга за 2013 год. Только год от года браузеры меняются местами. Firefox возглавлял список в 2009 и 2012 годах, Chrome — в 2010 и 2011 годах, а IE находится на первом месте два последних года.

Прочитать полностью на сайте: OS X: самая уязвимая операционная система?



Siri заговорила по-русски
2015-02-24 11:19 LifeHacker

Долгое время Siri — одна из главных фишек iOS — для русскоязычных пользователей была всего лишь забавной игрушкой. Чтобы научить голосовой ассистент русскому языку, Apple понадобилось выпустить шесть версий iPhone и четыре версии iOS.

В мае прошлого года Google Now получил расширенную поддержку русского языка, научился распознавать новые поисковые запросы и даже вести непродолжительные диалоги. К этому времени он уже сумел завоевать расположение русскоязычных пользователей и этим только укрепил свой статус неоспоримого лидера среди голосовых помощников. Более чем через полгода Apple вместе с iOS 8.3 Beta 2 добавила поддержку нескольких новых языков, среди которых нашлось место и русскому.

004

Как и следовало ожидать, первая бета-версия русскоговорящей Siri получилась далёкой от совершенства. Голос синтезируется неестественно, а в ответ на многие запросы ты получишь или непонимание помощника, или сообщение об ошибке. Тем не менее, уже сейчас она пытается шутить и остроумно отвечать на глупые вопросы, а список доступных действий практически не отличается от такового у своего американского аналога. Исключение составляет лишь отсутствие разделов, посвященных спортивным событиям и вычислениям, связанным с Wolfram Alpha.

005

При этом, даже некоторые доступные функции пока что не по зубам русской Siri. С её помощью ты уже сегодня сможешь установить будильник на утро, добавить событие в календарь, узнать погоду, найти что-либо или же даже отправить твит или сообщение голосом. Запросы же, связанные с местами на карте, конвертацией, ответами на конкретные вопросы или простыми математическими операциями не под силу Siri, а точность выполнения распознанной команды пока что находится на посредственном уровне.

Если не терпится опробовать русскоговорящую Siri в действии, есть несколько вариантов. Первый — скачать файл прошивки и обновить свой гаджет с зажатой клавишей Shift (в Windows) или Alt (в OS X). В таком случае рекомендуется сделать резервную копию, прежде чем начинать установку. Ссылку на скачивание прошивки для вашего устройства можно найти здесь.

Второй вариант — подождать марта. Судя по слухам, именно на середину этого месяца в компании запланировано первое публичное бета-тестирование новой версии iOS.

Как бы там ни было, русскоязычная версия Siri уже сейчас умеет выполнять необходимый минимум функций. Очевидно, к релизу её функциональность доработают и она сможет составить полноценную конкуренцию Google Now и Cortana, появление русскоязычной версии которой, по слухам, намечено к релизу Windows 10.

006

007

008

009

via ЛайфХакер, Дмитрий Гуменюк

Прочитать полностью на сайте: Siri заговорила по-русски



Цифровая археология
2015-02-24 12:00 Андрей Письменный

Чертежи позабытых процессоров, исходные коды легендарных игр, неизвестные произведения искусства — чего только не находят в архивах любители старины. Их задача — восстановить, надежно сохранить и каталогизировать.

Может показаться, что мы живем в век, когда информация практически неспособна потеряться: что однажды было оцифровано или создано на компьютере, будет, имей оно хоть какую-то ценность, тиражироваться и вечно кочевать с одного цифрового носителя на другой. Это, к сожалению, не совсем так: стандарты и форматы меняются с поразительной скоростью, а носители информации (в особенности магнитные диски) имеют крайне ограниченный срок службы. «Цифровая археология», то есть извлечение данных со старых носителей и перекодирование в современные форматы, становится все более актуальной дисциплиной. В этой области существуют специалисты, и раз за разом появляются истории о том, как они героически извлекли из цифровых руин нечто, имеющее неоспоримую ценность.

Исходные коды Prince of Persia

Игра Prince of Persia была разработана в 1989 году, но вспоминают о ней до сих пор. Приключения принца, который выбирается из подземелья дворца, чтобы спасти свою возлюбленную, захватили умы и заставили игроков потратить бесчисленные часы, чтобы заучить каждый закоулок на каждом уровне. Изначально «Принц» был сделан на компьютере Apple II, но вскоре его портировали на все тогдашние платформы. На данный момент вышло девять продолжений и голливудский фильм (а также книга Виктора Пелевина, в которой мотивы из «Принца» переплетаются с советской реальностью).

Во время разработки игры Prince of Persia: The Sands of Time для PlayStation 2 у ее создателей возникла интересная идея: а не добавить ли в качестве «пасхального яйца» возможность запускать и оригинальную игру образца 1990 года? Джордан Мехнер, ее создатель, выступал консультантом при проекте и навещал монреальскую студию Ubisoft, где делали Sands of Time, так что связаться с ним не составило труда. Мехнер с готовностью согласился прислать исходники и принялся рыться в коробках со старыми дискетами, которые никогда не выбрасывал. Но вот неудача: нужная дискета исчезла.

The Sands of Time был завершен в 2003 году и разошелся тиражом более двух миллионов экземпляров, а об исходных кодах оригинального «Принца» так ничего и не было слышно. Об этой потере никто бы не узнал, не получи эта история развитие в 2012 году. Как Мехнер позже рассказал репортеру журнала Wired, ему позвонил отец и сообщил, что нашел у себя коробку с какими-то старыми дискетами, явно принадлежавшими сыну. Когда Мехнер-младший получил коробку и стал перебирать дискеты, он увидел, что на одной из них было написано «Prince of Persia, исходный код, 1989». Какая неожиданная удача!

Коробка с заветными дискетами

Джордан Мехнер снова за клавиатурой Apple II

Но что делать с пачкой старых пыльных дискет, если под рукой нет ни совместимого компьютера, ни пятидюймового дисковода, ни вообще какого-либо дисковода? Если на дискетах записано что-нибудь столь же важное, как исходники легендарной игры, то есть смысл обратиться к профессионалам. Домой к Мехнеру прибыли двое: коллекционер старых компьютеров с целым грузовиком, на котором он привез несколько исправных Apple II, и сотрудник организации The Internet Archive с чудесным устройством под названием KryoFlux.


 

Что такое KryoFlux

Этот дисковод с виду напоминает любой другой старый пятидюймовый привод, но модифицирован таким образом, чтобы медленно, но верно считывать самые престарелые дискеты. В результате его работы создается образ диска, максимально напоминающий исходник. KryoFlux поставляется в комплекте с адаптером USB и может быть подключен к современному компьютеру. По сути, это устройство служит мостиком между временами старых компьютеров и современными технологиями. Создали его в фирме Software Preservation Society, «Обществе сохранения софта». SPS начинала как клуб любителей Amiga, но потом разрослась и, как мы видим, даже обзавелась чем-то вроде хардверного подразделения. Правда, крошечного — KryoFlux производят исключительно на заказ, а цена на него составляет около тысячи евро.


Мехнеру повезло: все его дискеты считались почти идеально, драгоценные исходные коды Prince of Persia были получены в полном объеме и тут же запущены на одном из старинных компьютеров. Позднее исходники опубликовали на GitHub, где их может скачать любой желающий. Увы, для подробного изучения нужно знание ассемблера Apple II, но тут уж никуда не денешься.

Заветная коробка таила и другие приятные сюрпризы: нашлись исходные коды клона игры Asteroids, который Мехнер написал в юношестве (подобно тому, как сейчас ради тренировки пишут клоны Flappy Bird), а также неизвестная миру игра Quadris. С ней, кстати, связана занятная история. В начале восьмидесятых годов Мехнер уже работал в игровом издательстве Broderbund, куда в один прекрасный день поступила необычная новая игра под названием Tetris. Руководство компании решило, что Tetris слишком сложен для простого геймера, и не взялось его издавать, а вот рядовые сотрудники играли в творение Алексея Пажитнова днями напролет. Их попросили удалить Tetris со своих компьютеров — этого требовала рабочая этика (права-то так и не были куплены). Дистрибутивы уничтожили, но играть хотелось. Так и появился Quadris — чуть ли не первый, но похороненный на долгие годы клон «Тетриса».

Кстати, если чтение про Prince of Persia вызвало ностальгию и жгучее желание поиграть снова, то сейчас это можно сделать в любой момент и даже без установки DOSBox. С недавних пор достаточно зайти на archive.org, найти игру и запустить прямо в браузере. Это возможно благодаря движку JSMESS, на который портировали DOSBox и эмуляторы множества других старых систем. Так что играм восьмидесятых и девяностых годов пока что не грозит пропасть в глубине времен.

Утерянные картины Уорхола

О том, кто такой Энди Уорхол, хотя бы краем уха слышали все, а репродукции самых известных его картин вроде «Супа Campbell» попадаются на глаза тут и там с завидной регулярностью. Уорхол широко известен как изобретатель стиля поп-арт, а вот как пионер цифровых технологий в применении к искусству — в значительно меньшей степени. И тем не менее факт: Уорхол с радостью покупал те компьютеры, которые были доступны в восьмидесятые годы, и использовал их скромные графические возможности в своем творчестве.

Наша история начинается куда позже. В 2004 году кто-то оцифровал старую видеокассету с записью презентации нового компьютера Amiga, на которую был приглашен Уорхол. Вот он при помощи цифровой камеры делает фотографию сидящей перед ним Дебби Харри (вокалистка группы Blondie), чтобы потом продемонстрировать снимок на экране и буквально за несколько минут превратить его в картину. Попутно он сообщает, что пробует все новые компьютеры, а этого ждал в особенности. Дело происходило в 1985 году, за два года до смерти художника.

Энди Уорхол обрабатывает портрет Дебби Харри на Amiga 1000

Презентация интересна сама по себе — сейчас такой концентрации звезд на сцене не позволяет себе даже Apple. Но деятели культуры видят на этой записи не то же, что любители техники: Кори Аркэнджел — художник и специалист по работам Уорхола — в 2011 году набрел на это видео и немедленно задался вопросом: а где же сейчас те картины, которые Уорхол рисовал на Amiga? Аркэнджел отправил запрос в музей Уорхола и быстро получил ответ: дискеты есть и хранятся среди других вещей Уорхола. Удивительно, что никто не пытался скопировать с них информацию раньше.

Дальнейшая история спасения старых файлов в общих чертах совпадает с рассказом о том, как доставали исходники Prince of Persia. В музей прибыл Аркэнджел, команда добровольцев из Компьютерного клуба университета Карнеги — Меллона и несколько других специалистов. Они привезли с собой рабочие компьютеры Amiga 500 и 1000, уже известный нам дисковод KryoFlux в трехдюймовой модификации и другие средства для восстановления старых носителей.

Иногда доходит до того, что магнитные диски приходится доставать из пластиковых конвертов и полоскать под краном со средством для мытья посуды, чтобы очистить от пыли и плесени. В случае с архивами Уорхола никаких радикальных средств не понадобилось. Дискет, правда, имелось огромное количество, и хоть большинство и было помечено как дистрибутивы программ, полагаться на эту информацию нельзя: вдруг что-то записано поверх? Копировать пришлось все и даже проверять, не осталось ли следов стертой информации.

Картины Уорхола, спасенные со старых дискет

Специалисты нашли и безупречно скопировали 28 файлов, потенциально содержащих картины. Заголовки гласили campbells.pic, botticelli.pic, marilyn1.pic и так далее. Однако открыть удалось лишь некоторые — часть картинок программа Graficraft, которой пользовался Уорхол, читать отказалась. Попытки использовать более старые версии редактора тоже ничего не дали, и формат пришлось анализировать вручную. Впрочем, знатоки Amiga быстро обнаружили, что внутри обыкновенные дампы видеопамяти, вероятно созданные самой ранней версией Graficraft. Никаких упоминаний о ней не сохранилось, но изображения удалось легко расшифровать и сконвертировать в PNG.

Оборудование Уорхола тоже оказалось примечательным: два компьютера Amiga 1000 в идеальном состоянии, графический планшет одной из первых коммерческих моделей, цифровая камера DigiView, которая делала черно-белые снимки (для цветных требовалось трижды снимать одно и то же через разноцветные фильтры) и Polaroid Digital Palette — устройство, которое позволяло записывать изображения на слайды.

Планшет Easyl, которым пользовался Уорхол

На дискетах также нашлись драйверы для той самой камеры Live, которая применялась на презентации Amiga, их версия была обозначена как 0.0. Самой камеры не было, но очевидно, что у Уорхола она появилась на пару лет раньше, чем у простых смертных. На компьютерах тоже нашли кое-что интересное — стикеры «не для продажи». Явное доказательство того, что художник получал тестовую продукцию одним из первых.

Чертежи процессора MOS 6502

В середине восьмидесятых годов процессор MOS 6502 был большим хитом — за счет низкой цены и одновременно высокой по тем временам производительности. На момент появления он стоил 25 долларов, в 4–5 раз дешевле, чем конкуренты вроде Intel 8080 и Motorola 6800. MOS 6502 лег в основу Apple I и II, Commodore PET, Atari 2600, NES, советского «Агата», болгарского «Правеца» и еще массы разновидностей домашних компьютеров. Помнишь строки кода, которые бегут перед глазами T-800 в первом «Терминаторе»? Это ассемблер MOS 6502! Через пятнадцать лет этот факт обыграют в «Футураме»: чип в голове у Бендера носит все ту же знаменитую маркировку.

T-800 из «Терминатора» работает на MOS 6502 и исполняет программу Key Perfect для Apple II

Сейчас нет недостатка эмуляторов машин на этом знаменитом процессоре, но они лишь повторяют набор его инструкций, а это не совсем то же, что настоящее железо. Чертежи MOS 6502 рисовались карандашом на ватмане — САПР в те времена еще не существовало. Если репринты тех схем и сохранились, то они очень редки.

Трое американских «цифровых археологов» Грег Джеймс, Барри Сильверман и Брайан Сильверман решили восстановить точную цифровую копию MOS 6502, чтобы она служила аналогом исходников на HDL и могла использоваться для симуляции. Как это сделать? Есть только один способ, и он выглядит очень непростым.

Упаковка прожжена кислотой, и процессор предстает перед нами в первозданной форме

Упаковку чипа проплавляют фосфорной кислотой, разогретой до 90 градусов, после чего скрывавшуюся под слоем пластика микросхему фотографируют под микроскопом. Именно таким образом группа энтузиастов получила около 200 снимков, которые затем склеили, чтобы получить цифровую копию микросхемы с разрешением 342 Мп.

Следующий шаг — трассировка схемы, то есть перевод из растрового вида в векторный. Готовые решения для этого не подошли: кривоватый и полный мусора чертеж никому не нужен. Вместо этого энтузиасты написали собственную программу на Python, которая выдала отличный результат. Это открыло дорогу для следующего этапа: превращения полученных данных в симуляцию работающего процессора.

Проект портировали на JavaScript, и теперь достаточно зайти на visual6502.org, чтобы поиграть с виртуальным процессором. В окне браузера видно не только содержимое памяти и регистров, но и сам чип во время его работы.

Виртуальный процессор красиво помигивает во время симуляции

Вскрытие, фотографирование и создание симулятора процессора кажутся ужасно непростыми, но на деле процесс занял всего около полугода: с ноября 2009-го по май 2010-го. С тех пор разработчики успели добавить симулятор Motorola 6800 и собираются продолжать использовать свою технологию для расширения коллекции. Просят присылать любые старинные микропроцессоры: одного экземпляра оказывается недостаточно, когда речь идет об обработке кислотой.

Нужно сказать, что обратная разработка процессоров — выдумка совсем не новая. В СССР она широко применялась для клонирования западных технологий (см. «Хакер» за август 2013-го), да и сейчас встречается. Так, ребята с форума emu-russia.net недавно распотрошили процессор приставки PSX и изучают его (на psxdev.ru можно прочесть подробности). PSX — это модификация PlayStation 2, и, возможно, она еще недостаточно устарела, чтобы считать ее вскрытие археологией, — в голову, скорее, приходит мысль о пиратстве. Но если это и пиратство, то в его лучшем проявлении. К тому же пройдет какое-то время, и никто не станет смотреть косо на подобное занятие.

Советский троичный компьютер «Сетунь»

Западная история компьютеров давно разложена по полочкам, и нарыть что-то новое можно только при большом везении. Как насчет отечественной археологии? С советских времен нам осталось богатое наследие редких компьютеров, необычных историй и давно позабытых достижений.

Сообщества любителей старых компьютеров существуют и в России. Одно из них называется «Тринари» и посвящено изучению истории троичной ЭВМ «Сетунь». Слово «троичной» здесь нуждается в пояснении: дело в том, что этот уникальный компьютер был спроектирован для работы с данными в троичном представлении, то есть вместо битов (0 или 1), он оперировал тритами — их принято обозначать –1, 0 и 1. Соответственно, вместо байтов у троичного компьютера трайты, они состоят из шести тритов и принимают значение от –364 до 364. Легкость работы с отрицательными величинами, как можно заметить, дана такому компьютеру от рождения.

«Сетунь» в 1959 году, тогда еще новенькая

Руководил разработкой «Сетуни» Николай Петрович Брусенцов, заведующий кафедрой вычислительной математики механико-математического факультета МГУ. Первый тестовый компьютер был завершен в 1959 году, и впоследствии Казанский завод математических машин выпустил еще 46 экземпляров, которые разошлись по НИИ и учебным заведениям. К 1970 году команда Брусенцова разработала следующую модель — «Сетунь-70». Но до серийного производства эта машина так и не добралась — помешала советская бюрократия. Считается, что главной проблемой стала вовсе не экзотичность троичных вычислений, а, как ни парадоксально, низкая стоимость компьютера.

«Сетунь-70», в отличие от первой «Сетуни», не только использовала троичное представление данных, но и поддерживала некоторые троичные логические операции. К примеру, троичная логика значительно упрощает сравнение чисел: если аналогичные двоичные операторы могут вернуть лишь значения «больше» или «меньше», то троичное сравнение учитывает возможность равенства чисел.

Александр Обухов из группы «Тринари» по старым схемам разработал эмулятор «Сетуни», причем работающий прямо в браузере. Достаточно открыть страницу trinary.ru/projects/setunws, и оказываешься один на один с панелью управления старинного советского суперкомпьютера. Чтобы разобраться, что к чему, понадобится прочесть книгу «Малая цифровая вычислительная машина Сетунь» — а это, конечно, осилит не каждый. Но для тех, кого захватила идея троичной логики, такая возможность бесценна.

Перфоленты «Сетуни-70» по-прежнему хранятся в МГУ

Другой участник «Тринари», Александр Самсонов предпринял попытку пойти дальше и создать эмулятор «Сетуни-70», чтобы иметь возможность запускать старые программы, которые ему удалось восстановить с перфолент. В интервью журналу «Компьютерра» Самсонов рассказал о том, как столкнулся с непредвиденными и необычными сложностями. В частности, ПЗУ «Сетуни-70» существует только в виде распечатки в машинных кодах, причем страницы не пронумерованы и перемешаны, а всего их около сорока. Восстановление последовательности в этом случае задача очень нетривиальная.

Николай Брусенцов умер 4 декабря 2014 года, всего за два месяца до выхода этого номера. Из новостей об этом не узнаешь — его имя, как и имена многих других первопроходцев начала компьютерной эпохи, известно лишь знатокам истории вычислительной техники. Но именно благодаря энтузиастам эта история сохранилась, а необычные и малоизвестные идеи не уходят из жизни вместе с их авторами.

Прочитать полностью на сайте: Цифровая археология



200 ГБ бесплатно в облачном хранилище OneDrive
2015-02-24 13:07 LifeHacker

В последнее время компания Microsoft проявляет завидную активность, чтобы дать понять миру, что она не только ещё жива, но и снова готова к бою за лидерство. В борьбе за симпатии пользователей и популяризацию своих облачных продуктов компания проводит сразу две акции по раздаче бесплатных гигабайт, благодаря которым можно бесплатно увеличить размер OneDrive на целых 200 ГБ.

Первая акция призвана подвигнуть тебя начать пользоваться поиском Bing. Удовольствие сомнительное, но за это Microsoft выделит дополнительную сотню гигабайт сроком на два года. Первоначально от участников требовалось зарегистрироваться в программе Bing Rewards, которая к тому же действовала только для пользователей из США.

003

Но потом что-то пошло не так или условия акции были изменены — неважно. Суть в том, что теперь любой желающий из любой страны может получить приз, просто щёлкнув по этой ссылке. Разумеется, необходимо иметь действующий аккаунт Microsoft.

Вторая акция предназначена для пользователей Dropbox. Чтобы переманить их на сторону своего облачного хранилища, Microsoft предлагает им дополнительные бесплатные 100 ГБ на один год. Но желающим воспользоваться этим предложением придётся выполнить несколько действий.

1. Перейди по этой ссылке.

004

2. Нажми на синюю кнопку. Тебе будет предложено ввести учётные данные аккаунта Dropbox и сохранить в этом облачном хранилище один файл.

005

3. Сохрани предложенный файл, который представляет собой справочное руководство по работе с OneDrive. После этого тебя перенаправят на служебную страницу сервиса OneDrive, где собственными глазами сможешь убедиться в наличии бонусных бесплатных гигабайтов.

006

via ЛайфХакер, Дмитрий Горчаков

Прочитать полностью на сайте: 200 ГБ бесплатно в облачном хранилище OneDrive




© Copyright Gameland

В избранное