Pull to refresh
45
0
NoiSeBit @matrosov

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

Send message

LLILC — транслятор MSIL в байткод LLVM от Microsoft

Reading time1 min
Views13K
Сегодня сотрудник Microsoft анонсировал проект LLILC — новый проект для трансляции MSIL в байткод LLVM, предназначенный пока главным образом для инфраструктуры CoreCLR. В ближайшее время он может быть использован для JIT-компиляции, а в дальнейшем и для формирования прекомпилированных сборок (Ahead-of-Time) средствами .NET Native.

Несмотря на то, что в CoreCLR уже есть свой JIT, планируется расширить поддержку различных платформ за счёт LLVM. Новый JIT использует тот же набор внутренних API, что и RyuJIT и бесшовно его заменяет. Таким образом новый JIT позволит .NET-коду выполняться на всех поддерживаемых LLVM-платформах, на которые можно портировать CoreCLR.
Читать дальше →
Total votes 34: ↑33 and ↓1+32
Comments3

Статический анализ кода

Reading time11 min
Views45K
John CarmackПримечание от переводчика. Изначально эта статья была опубликована на сайте AltDevBlogADay. Но сайт, к сожалению, прекратил своё существование. Более года эта статья оставалась недоступна читателям. Мы обратились к Джону Кармаку, и он сказал, что не против, чтобы мы разместили эту статью на нашем сайте. Что мы с удовольствием и сделали. С оригиналом статьи можно познакомится, воспользовавшись Wayback Machine — Internet Archive: Static Code Analysis.

Поскольку все статьи на нашем сайте представлены на русском и английском языке, то мы выполнили перевод статьи Static Code Analysis на русский язык. А заодно решили опубликовать её на Хабре. Здесь уже публиковался пересказ этой статьи. Но уверен, многим будет интересно прочитать именно перевод.


Самым главным своим достижением в качестве программиста за последние годы я считаю знакомство с методикой статического анализа кода и ее активное применение. Дело даже не столько в сотнях серьезных багов, не допущенных в код благодаря ей, сколько в перемене, вызванной этим опытом в моем программистском мировоззрении в отношении вопросов надежности и качества программного обеспечения.
Читать дальше →
Total votes 71: ↑65 and ↓6+59
Comments3

Бесплатные Pebble Time для разработчиков

Reading time1 min
Views12K
Предыстория такова, что я некогда сделал циферблат для Pebble, довёл его до состояния душевного моего покоя и уже около полутора месяцев не трогал. В минувшую субботу я зашёл на CloudPebble и увидел такое:


Читать дальше →
Total votes 24: ↑23 and ↓1+22
Comments18

Простые приемы реверс-инжиниринга UEFI PEI-модулей на полезном примере

Reading time7 min
Views38K
Здравствуйте, уважаемые читатели Хабра.

После долгого перерыва с вами опять я и мы продолжаем копаться во внутренностях UEFI. На этот раз я решил показать несколько техник, которые позволяют упростить реверс и отладку исполняемых компонентов UEFI на примере устаревшего-но-все-еще-популярного PEI-модуля SecureUpdating, который призван защищать прошивку некоторых ноутбуков HP от модификации.

Предыстория такова: однажды вечером мне написал знакомый ремонтник ноутбуков из Беларуси и попросил посмотреть, почему ноутбук с замененным VideoBIOS'ом не хочет стартовать, хотя такой же точно рядом успешно стартует. Ответ оказался на поверхности — не стартующий после модификации ноутбук имел более новую версию UEFI, в которую добрые люди из HP интегрировали защиту от модификации DXE-тома (а там и находится нужный нам VideoBIOS вместе с 80% кода UEFI), чтобы злобные вирусы и не менее злобные пользователи ничего там не сломали ненароком. Тогда проблема решилась переносом PEI-модуля SecureUpdating из старой версии UEFI в новую, но через две недели тот же человек обратился вновь, на этот раз на похожем ноутбуке старая версия модуля работать отказалась, и моя помощь понадобилась вновь.
Если вас заинтересовали мои дальнейшие приключения в мире UEFI PEI-модулей с дизассемблером и пропатченными переходами — добро пожаловать под кат.
Читать дальше →
Total votes 31: ↑31 and ↓0+31
Comments20

Возвращаем оригинальные страницы меню в Phoenix SCT UEFI

Reading time6 min
Views20K
Здравствуйте, уважаемые читатели Хабра.
С вами снова я и мы продолжаем копаться в различных реализациях UEFI во имя добра. Есть у меня один старый китайский GSM-модем, который на моем Dell Vostro 3360 определяется через раз, а на более старых ноутбуках — нормально. После нескольких экспериментов с подключением его через переходник к основному ПК выяснилось, что ему почему-то не нравится подключение через PCIe Gen2, и хотелось бы переключить порт на Gen1, но в UEFI Setup нужной настройки не оказалось. Печально, но не смертельно, ведь очень часто производители устройств не удаляют оригинальные меню производителя UEFI, а просто скрывают их, либо показывают на их месте свои, поэтому после небольшого реверс-инжиниринга оригинальное меню можно вернуть на место, что у меня и получилось. В этот раз одной IDA Demo уже не обойтись, т.к. DXE-драйверы в большинстве современных UEFI собираются для архитектуры x86-64, поэтому вместо нее будем использовать radare2.
На лавры первооткрывателя не претендую и подобным модификациям сто лет в обед, но постараюсь показать, как сделать подобную модификацию самостоятельно.
Если вам все еще интересно — добро пожаловать под кат.
Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments20

Еще немного реверс-инжиниринга UEFI PEI-модулей на другом полезном примере

Reading time5 min
Views32K
И снова здравствуйте, уважаемые хабрачитатели.

В рамках борьбы за возможность модификации UEFI на ноутбуках HP пришлось отломать еще одну защиту, на этот раз более современную. Видимо, отдел разработки прошивок в HP догадался, что предыдущая защита была не ахти, и потому они решили радикально её улучшить, поэтому метод обхода защиты DXE-тома из предыдущей статьи перестал работать, и мне опять понадобилось вооружаться дизассемблером, разрабатывать конвертер из TE в PE и отвечать на те же вопросы: где находится цифровая подпись, кто именно ее проверяет и как сделать так, чтобы проверка всегда заканчивалась успехом.

Если вас интересуют ответы и описание процесса их поиска — прошу под кат.
Читать дальше →
Total votes 43: ↑42 and ↓1+41
Comments34

Кевин Хейл: тонкости в работе с пользовательским опытом (часть 1)

Reading time13 min
Views18K


Cтэнфордский курс CS183B: How to start a startup. Стартовал в 2012 году под руководством Питера Тиля. Осенью 2014 года прошла новая серия лекций ведущих предпринимателей и экспертов Y Combinator:


Первая часть курса
Читать дальше →
Total votes 27: ↑27 and ↓0+27
Comments3

Снимаем дамп объектов с памяти .Net приложения

Reading time11 min
Views23K
Продолжаем тему интересного на .Net, от чего мир Java будет посмеиваться (хотя у них это также возможно сделать), а приверженцы С++ говорить: «чего они только не сделают чтобы не учить C++».

В данной заметке мы напишем по сути – простенькое ядрышко профилировщика памяти для платформы .Net, который будет снимать дамп с SOH кучи (а в перспективе и с LOH).

Для написания статьи нам понадобится код из статьи Получение указателя на объект .Net и Ручное клонирование потока (измерение размера объектов).

Наши цели на сегодня:
  • Научиться итерировать кучу .Net
  • Научиться находить начало кучи .Net
  • Попробовать сытерировать все объекты чужого домена.


Ссылка на проект в GitHub: DotNetEx

Читать дальше →
Total votes 31: ↑27 and ↓4+23
Comments6

Исследуем внутренние механизмы работы Hyper-V

Reading time13 min
Views17K


Если бы работа хакера, а точнее программиста-исследователя происходила так, как это показано в классических фильмах: пришел, постучал по клавишам, на экране все замелькало зеленым, пароли взломались, а деньги внезапно переехали из пункта А в пункт В, — то жить было бы однозначно проще и веселее. Но в действительности любому серьезному хаку всегда предшествует основательная и скучная аналитическая работа. Вот ею мы и займемся, а результаты выкатим на твой суд в виде цикла из двух статей. Убедись, что у тебя есть достаточный запас пива и сигарет, — прочтение таких материалов опасно для неподготовленного мозга :).
Читать дальше →
Total votes 3: ↑3 and ↓0+3
Comments0

Исследуем внутренние механизмы работы Hyper-V: Часть 2

Reading time15 min
Views14K


Со времени публикации первой части статьи глобально в мире ничего не изменилось: Земля не наскочила на небесную ось, все так же растет популярность облачных сервисов, все так же в гипервизоре компании Microsoft не были обнаружены новые дыры, а исследователи не хотят тратить свое время на поиск багов в плохо документированной и мало изученной технологии. Поэтому я предлагаю тебе освежить память первой частью из предыдущего номера, пополнить запас своего бара и приступить к чтению, ведь сегодня мы сделаем драйвер, взаимодействующий с интерфейсом гипервизора и отслеживающий передаваемые гипервизором сообщения, а также изучим работу компонентов служб интеграции Data Exchange.
Читать дальше →
Total votes 13: ↑10 and ↓3+7
Comments0

Windows 8.1 Kernel Patch Protection — PatchGuard

Reading time10 min
Views38K
imageПериодически, как правило во вторую среду месяца, можно услышать истории о том, что Windows после очередного обновления перестает загружаться, показывая синий экран смерти. В большинстве случаев причиной такой ситуации оказывается либо руткит, либо специфичное системное ПО, фривольно обращающееся со внутренними структурами ОС. Винят, конечно, все равно обновление, ведь «до него все работало». С таким отношением не удивительно, что «Майкрософт» не поощряет использование всего, что не документировано. В какой-то момент, а именно с релизом Windows Server 2003, MS заняла более активную позицию в вопросе борьбы с чудо-поделками сторонних разработчиков. Тогда появился механизм защиты целостности ядра — kernel patch protection, более известный как PatchGuard.

С самого начала он не позиционировался как механизм защиты от руткитов, поскольку руткиты работают в ядре с теми же привилегиями, а следовательно, PatchGuard может быть обезврежен. Это скорее фильтр, отсекающий ленивых разработчиков руткитов.
Читать дальше →
Total votes 39: ↑37 and ↓2+35
Comments14

ReactOS Tech Talk на факультете ВМК МГУ

Reading time1 min
Views8.1K
18 декабря 2014 года на ежемесячном научно-практическом семинаре «Технологии разработки и анализа программ», организуемом Институтом системного программирования (ИСП) Роcсийской академии наук (РАН), Алексей Брагин выступил с докладом "Операционная система Реактос". Предлагаем всем желающим к просмотру видеозаписи и слайды с мероприятия.


Читать дальше →
Total votes 23: ↑16 and ↓7+9
Comments2

Интервью Скотта Мейерса в Яндексе. О настоящем и будущем C++

Reading time18 min
Views60K
Скотт Мейерс — один из самых известных и признанных экспертов по C++, автор серии книг «Эффективное использование C++», которые читал почти каждый профессиональный разработчик на C++ и которые оказали заметное влияние на всю экосистему и качество использование языка.

Лично я стал почти его фанатом ещё студентом, когда в начале 2000-х читал статьи Скотта, лежащие в основе его книг (сами книги на тот момент в России ещё не были переведены, а на английские с Амазона у меня, как бедного студента, денег не было).

Поэтому, когда он некоторое время назад приехал в Яндекс, чтобы провести тренинг для наших разработчиков, я не мог не воспользоваться этим шансом, чтобы поговорить с ним. Разговор получился о том, каким он видит будущее C++ и программирования вообще, как отличаются разработчики в разных странах и в разных индустриях, и о нём самом.



Полные тексты оригинала и перевода интервью
Total votes 99: ↑94 and ↓5+89
Comments43

Лучшие плагины для Sublime Text

Reading time5 min
Views639K

WebInspector


Мощный инструмент для дебаггинга JavaScript, полноценный инспектор кода для Sublime. Фичи: установка брейкпоинтов прямо в редакторе, показ интерактивной консоли с кликабельными объектами, остановка с показом стек трейса и управление шагами дебаггера. Все это работает на ура! А еще есть Fireplay от Mozilla, который позволяет подключаться к Firefox Developer tools и максимально простой дебаггер JSHint.



Читать дальше →
Total votes 116: ↑114 and ↓2+112
Comments101

Microsoft даёт скидку до $650 за обмен MacBook Air на Surface Pro 3

Reading time1 min
Views37K
Видимо, поговорки «хороший продукт продаёт себя сам» «Микрософту» мало для уверенности, что и без того обсуждаемый Surface Pro 3 побьёт конкурентов с обгрызенным яблоком на спине в битве за рынок. Поэтому компания запустила trade-in кампанию со скидкой до $650 за сдачу MacBook Air при покупке Surface Pro 3, которая пройдёт до 31 июля на территории США и Канады (сорри).


Читать дальше →
Total votes 52: ↑34 and ↓18+16
Comments45

Установка Windows 7/8 на Mac без использования оптического привода

Reading time4 min
Views398K
На многих компьютера Mac сегодня отсутствует оптический привод: он просто не идет в комплекте на macbook air и mac mini, на некоторых MacBook/iMac заменен на дополнительный 2.5-дюймовый диск, а некоторых компьютерах привод может просто не работать.

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

Я перепробовал много способов — пытался установить с USB флешки/диска, все было тщетно (далеко не каждый mac загружается с флешки или внешнего диска). Refit также ничего не дал — был темный экран. Данный способ был просто спасением.
Читать дальше →
Total votes 67: ↑48 and ↓19+29
Comments64

Разговорное радио на коленке

Reading time12 min
Views36K
В определённый момент, страдая от лени обновлять новостной блог про OpenStreetMap, я решил сделать еженедельную передачу про проект. Вместо трёх часов вымучивания текста — часик пообсуждать со знакомыми участниками OSM новинки и актуальные вопросы. Отличная идея, порадовались и разошлись. Через полгода со словами «ну блин хватит бездельничать, давайте послезавтра звоните в скайп» я начал разбираться, как в этом вашем линуксе записать звук с микрофона и скайпа, одновременно передавая его в интернет. Эта история — про настройку PulseAudio, про скайп и мамбл, и про удивительный JACK. Оказалось, поднять собственное радио с гостями в эфире проще, чем нарисовать для него логотип.
Читать дальше →
Total votes 53: ↑51 and ↓2+49
Comments27

Разработка и отладка UEFI-драйверов на Intel Galileo, часть 2: готовим плацдарм

Reading time9 min
Views13K

Здравствуйте, уважаемые хабровчане.
Опрос в первой части показал, что тема разработки UEFI-драйверов достаточно интересна сообществу, поэтому я приступаю к написанию дальнейших частей этого цикла. В этой речь пойдет о подготовке платы Intel Galileo к работе, необходимом и желательном железе и ПО, сборке и установке BSP. В результате получится недорогая аппаратная платформа, пригодная для аппаратной отладки UEFI-драйверов и доступная любому энтузиасту.
Поехали!
Total votes 30: ↑29 and ↓1+28
Comments22

Получаем системные привилегии с помощью ошибок в NTVDM

Reading time15 min
Views30K


Обратная совместимость — вещь хорошая, но использовать ее надо в разумных пределах. Ведь до сих пор в ядре Windows можно найти код, разработанный еще в прошлом веке. Говорить о его высокой безопасности было бы глупо. И мы докажем это на примере трех privilage escalation уязвимостей, прижившихся в подсистеме виртуальной машины DOS

В 1978 году компания Intel выпустила первый процессор семейства х86, модели 8086, который предоставлял довольно ограниченную среду для исполнения 16-битного кода, известную под названием «режим реального времени» (Real mode). Вскоре после этого началась активная разработка программных решений для новой аппаратной платформы, причем как операционных систем, так и работающих в них обычных программ. Система Disk Operating System (DOS) от Microsoft быстро утвердилась в качестве ведущей рабочей среды для десктопных ПК, а приложения под эту ОС создавались и выходили на рынок в течение более десяти лет. В качестве самых известных примеров можно привести Norton Commander, ChiWriter или Quattro Pro. При разработке в 1992 году архитектуры NT для операционной системы Windows, которая использовала преимущества уже более мощного и безопасного защищенного режима (Protected Mode), одним из ключевых решений стало сохранение обратной совместимости с DOS, то есть обеспечение возможности безопасного запуска старых программ в новом графическом окружении.
Читать дальше →
Total votes 63: ↑61 and ↓2+59
Comments22

Линейный криптоанализ для чайников

Reading time7 min
Views76K
image

Привет, %username%!
Многим известно, что стандартом по умолчанию в области симметричного шифрования долгое время считался алгоритм DES. Первая успешная атака на этот неубиваемый алгоритм была опубликована в 1993 году, спустя 16 лет после принятия его в качестве стандарта. Метод, который автор назвал линейным криптоанализом, при наличии 247 пар открытых/зашифрованных текстов, позволяет вскрыть секретный ключ шифра DES за 243 операций.
Под катом я попытаюсь кратко изложить основные моменты этой атаки.
Читать дальше →
Total votes 71: ↑67 and ↓4+63
Comments9

Information

Rating
Does not participate
Location
Portland, Oregon, США
Date of birth
Registered
Activity