Pull to refresh
13
0
Максим Чистов @MaximChistov

Java Software Developer

Send message

Уязвимости публичных терминалов: как взломать велопрокат и поликлинику

Reading time6 min
Views96K
В этом году Москву охватила настоящая велосипедная лихорадка. Количество станций велопроката было увеличено с 79 до 150, а услугами аренды воспользовались 90 тыс. человек. Пока двухколесные друзья отдыхают на зимних каникулах, расскажем об уязвимостях терминалов для оплаты аренды велосипедов, которые поставили под угрозу безопасность персональных данных и электронных кошельков пользователей, а также заставили задуматься о новой парадигме атак на корпоративные сети.

image

Платежные и информационные терминалы сегодня функционируют на улицах, в торговых центрах, в аэропортах, в поликлиниках, в метро. Большинство таких устройств работает на базе Windows, в режиме так называемого киоска, который позволяет запускать на компьютере одно основное полноэкранное приложение, заданное администратором. Функциональность терминала существенно расширяется, если выйти из режима киоска в операционную систему.
Читать дальше →

Выразительный JavaScript: Проект: Веб-сайт по обмену опытом

Reading time22 min
Views37K

Содержание




На встречах по обмену опытом люди с общими интересами встречаются и делают небольшие неформальные презентации на тему своих знаний. На встрече по обмену опытом среди фермеров кто-нибудь может рассказать о выращивании сельдерея. На встрече программистов вы можете выступить с рассказом про Node.js

Такие встречи – отличный способ расширить свой кругозор, узнать о новинках области, или просто пообщаться с людьми со схожими интересами. Во многих городах есть встречи любителей JavaScript. Обычно их посещение бесплатное, и я нашёл те, которые посещал, дружелюбными и гостеприимными.


Встречи моноциклистов

В последней главе-проекте мы устроим веб-сайт по обслуживанию выступлений, которые делаются на таких встречах. Представьте себе группу людей, которые регулярно встречаются в офисе одного из участников, чтобы поговорить о моноциклах. Проблема в том, что когда предыдущий организатор встреч переехал в другой город, никто не занял его место. Нам нужна система, которая позволит участникам предлагать и обсуждать темы друг с другом, без участия организатора.
Читать дальше →

Как показать самые опасные уязвимости

Reading time4 min
Views27K
По долгу службы мне часто приходится проводить инструментальный аудит безопасности различных предприятий. Процедура составления итогового отчета содержит одну неприятную особенность, от которой мне давно хотелось избавиться. Помимо наиболее опасных уязвимостей системы клиенту всегда надо показывать ссылки на общедоступные эксплойты для этих ошибок. И эти ссылки приходилось искать вручную.

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

image

В какой-то момент я понял, что поиск ссылок на эксплойты — работа хотя и важная, но настолько рутинная и механическая, что просто грех ее не автоматизировать. Вначале был написан простенький консольный скрипт, который постепенно обзавелся GUI и научился понимать различные форматы отчетов систем поиска уязвимостей. Все доработки и улучшения PT Exploit Explorer в дальнейшем проводились исходя из пожеланий пользователей, и этот процесс продолжается до сих пор.
Читать дальше →

Как растаращить class-файл

Reading time4 min
Views45K
Обычно при компиляции Java-файла получаются .class-файлы примерно того же размера, что и исходник. Меня заинтересовало, можно ли по небольшому исходнику сделать .class-файл, который больше, сильно больше исходника.

Можно поискать какие-то короткие конструкции языка, которые компилируются в длинные цепочки байткода, но линейный прирост меня не устраивал. Я сразу подумал про компиляцию finally-блоков: про неё уже писали на Хабре. Если вкратце, то для каждого finally-блока при непустом try-блоке создаётся минимум два варианта в байткоде: для случая нормального завершения try-блока и для случая завершения с исключением. В последнем случае исключение сохраняется в новую локальную переменную, выполняется код finally, затем исключение достаётся из локальной переменной и перебрасывается. А что если внутри finally снова разместить try-finally и так далее? Результат превзошёл все ожидания.
Читать дальше →

Роскосмос планирует построить лунную базу, наладить промышленность и добычу ископаемых

Reading time2 min
Views22K


Как сообщает ТАСС, на согласование в правительство РФ направлен проект по колонизации Луны. В первую очередь проект раскрывает потенциал спутника Земли в качестве места для размещения опасного с точки зрения экологии промышленного производства и добычи полезных ископаемых. Лунная база будет решать такие задачи, как защита от астероидов и комет, а также уменьшение концентрации промышленности на Земле.
Полёт мысли продолжается

Используем замыкания в Swift по полной

Reading time6 min
Views44K
Несмотря на то, что в Objective-C 2.0 присутствуют замыкания (известные как блоки), ранее эппловский API использовал их неохотно. Возможно, отчасти поэтому многие программисты под iOS с удовольствием эксплуатировали сторонние библиотеки, вроде AFNetworking, где блоки применяются повсеместно. С выходом Swift, а также добавлением новой функциональности в API, работать с замыканиями стало чрезвычайно удобно. Давайте рассмотрим, какими особенностями обладает их синтаксис в Swift, и какие трюки можно с ними «вытворять».



Продвигаться будем от простого к сложному, от скучного к веселому. Заранее приношу извинения за обильное использование мантр «функция», «параметр» и «Double», но из песни слов не выкинешь.
Замыкания и трюки с ними

LEGO Mindstorms EV3. Игрушечный скайнет. Начало

Reading time10 min
Views119K
— Ты кого хотел бы — сына или дочку?
— Сына!
— Почему?
— Вертолёт хочу радиоуправляемый!!!
Несмешной и баянистый анекдот, но нельзя просто так взять и начать эту публикацию не с него – он в лучшем виде отображает суть того, о чём пойдёт речь далее. Впрочем, из заголовка вы и так поняли, о чём речь.



Осторожно! Публикация может вызвать непреодолимое желание завести сына.
Читать дальше →

Blind Deconvolution — автоматическое восстановление смазанных изображений

Reading time6 min
Views148K
Смазанные изображения — один из самых неприятных дефектов в фотографии, наравне с расфокусированными изображениями. Ранее я писал про алгоритмы деконволюции для восстановления смазанных и расфокусированных изображений. Эти, относительно простые, подходы позволяют восстановить исходное изображение, если известна точная траектория смаза (или форма пятна размытия).
В большинстве случаев траектория смаза предполагается прямой линией, параметры которой должен задавать сам пользователь — для этого требуется достаточно кропотливая работа по подбору ядра, кроме того, в реальных фотографиях траектория смаза далека от линии и представляет собой замысловатую кривую переменной плотности/яркости, форму которой крайне сложно подобрать вручную.


В последние несколько лет интенсивно развивается новое направлении в теории восстановления изображений — слепая обратная свертка (Blind Deconvolution). Появилось достаточно много работ по этой теме, и начинается активное коммерческое использование результатов.
Многие из вас помнят конференцию Adobe MAX 2011, на которой они как раз показали работу одного из алгоритмов Blind Deconvolution: Исправление смазанных фотографий в новой версии Photoshop
В этой статье я хочу подробнее рассказать — как же работает эта удивительная технология, а также показать практическую реализацию SmartDeblur, который теперь тоже имеет в своем распоряжении этот алгоритм.
Внимание, под катом много картинок!
Читать дальше →

Восстановление расфокусированных и смазанных изображений. Повышаем качество

Reading time5 min
Views211K
Представляю вашему вниманию заключительную статью из трилогии «Восстановление расфокусированных и смазанных изображений». Первые две вызвали заметный интерес — область, действительно, интересная. В этой части я рассмотрю семейство методов, которые дают лучшее качество, по сравнении со стандартным Винеровским фильтром — это методы, основанные на Total Variaton prior.
Также по традиции я выложил новую версию SmartDeblur (вместе с исходниками в open-source) в которой реализовал этот метод. Итоговое качество получилось на уровне коммерческих аналогов типа Topaz InFocus. Вот пример обработки реального изображения с очень большим размытием:


Читать дальше →

Восстановление расфокусированных и смазанных изображений. Практика

Reading time10 min
Views358K
Не так давно я опубликовал на хабре первую часть статьи по восстановлению расфокусированных и смазанных изображений, где описывалась теоретическая часть. Эта тема, судя по комментариям, вызвала немало интереса и я решил продолжить это направление и показать вам какие же проблемы появляются при практической реализации казалось бы простых формул.

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

Ниже показан результат обработки реального размытого изображения (не с синтетическим размытием). Исходное изображение было получено камерой Canon 500D с объективом EF 85mm/1.8. Фокусировка была выставлена вручную, чтобы получить размытие. Как видно, текст совершенно не читается, лишь угадывается диалоговое окно Windows 7.



И вот результат обработки:



Практически весь текст читается достаточно хорошо, хотя и появились некоторые характерные искажения.

Под катом подробное описание проблем деконволюции, способов их решения, а также множество примеров и сравнений. Осторожно, много картинок!
Читать дальше →

Восстановление расфокусированных и смазанных изображений

Reading time10 min
Views226K
Восстановление искаженных изображений является одной из наиболее интересных и важных проблем в задачах обработки изображений – как с теоретической, так и с практической точек зрения. Частными случаями являются размытие из-за неправильного фокуса и смаз – эти дефекты, с которым каждый из вас хорошо знаком, очень сложны в исправлении – именно они и выбраны темой статьи. С остальными искажениями (шум, неправильная экспозиция, дисторсия) человечество научилось эффективно бороться, соответствующие инструменты есть в каждом уважающем себя фоторедакторе.

Почему же для устранения смаза и расфокусировки практически ничего нету (unsharp mask не в счет) – может быть это в принципе невозможно? На самом деле возможно – соответствующий математический аппарат начал разрабатываться примерно 70 лет назад, но, как и для многих других алгоритмов обработки изображений, все это нашло широкое применение только в недавнее время. Вот, в качестве демонстрации вау-эффекта, пара картинок:



Я не стал использовать замученную Лену, а нашел свою фотку Венеции. Правое изображение честно получено из левого, причем без использования ухищрений типа 48-битного формата (в этом случае будет 100% восстановление исходного изображения) – слева самый обычный PNG, размытый искусственно. Результат впечатляет… но на практике не все так просто. Под катом подробный обзор теории и практические результаты.
Осторожно, много картинок в формате PNG!
Читать дальше →

Игровой ноутбук? Купить два отдельных компьютера получается дешевле

Reading time4 min
Views20K
Я понимаю, что этот топик немного холиварный, но где еще его обсуждать, если не здесь? Итак, все началось с того, что ко мне обратился знакомый, выбирающий себе подарок на Новый Год. У него были деньги и явно оформленное желание – он хотел большой черный мощный и производительный ноутбук с большим дисплеем, позволяющий легко справляться с тяжелыми играми.

Стали выбирать. Долго присматривались к серии Republic of Gamers от Asus — современные модели в линейке ROG750 стартуют где-то от 60-ти тысяч рублей. Моделька с меньшей диагональю, к слову, получившая хороший обзор на Хабре, стартует где-то от 45..50 тысяч. Это пока еще в старых ценах. В общем, недешево, зато это хорошая, производительная машинка. Но, блин, тяжелая. И большая.

Читать дальше →

Опыт использования MVVM в реальных проектах

Reading time1 min
Views26K
Мы продолжаем выкладывать видео выступлений с нашей первой конференции мобильных разработчиков #MBLTDev. Следующий доклад — от iOS-разработчика компании «Одноклассники» Юрия Буянова «Опыт использования MVVM в реальных проектах».


Презентация.

Доклад был посвящён практическим аспектам разработки iOS-приложений с использованием архитектуры MVVM. В частности рассматривались способы осуществления навигации и реализации списков в рамках такой архитектуры. Для слушателей, незнакомых c предметом, в начале доклада было сделано небольшое введение в MVVM и ReactiveCocoa. Также были показаны слайды с белочкой, совушкой и единорогом.
Читать дальше →

PIN-код при оплате картой — точки над i

Reading time3 min
Views186K
Всем доброго дня!

После прочтения нескольких статей на хабре о пластиковых картах, POS терминалах и сопутствующих вещах, мне показалось, что эта тема довольно интересна сообществу. В данной небольшой публикации я хочу окончательно разобрать тему ввода PIN–кода на POS терминалах и ответить, наконец, в меру своих знаний, на вопрос: почему же в одних случаях требуется ввод PIN, а в других — нет?
Читать дальше →

Спать мало, но правильно?

Reading time7 min
Views904K
Навеяно этим постом от юзера case. Пост не новый, и на главную он не попал.
Но я вот наткнулся на него сегодня и решил написать кое-что о сне. Уверен, что это будет полезно многим хабравчанам, да и случайным читателям тоже.
Читать дальше →

Ноутбуки на МКС

Reading time4 min
Views50K
При просмотре фотографий и видеороликов, снятых на Международной космической станции, часто можно заметить, что интерьер станции кишит ноутбуками в специальных подставках. Как они используются в космосе?

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

PHP создан, чтобы умирать

Reading time8 min
Views157K
Дисклеймер: у меня за спиной более десяти лет разработки на PHP. Я начал использовать его, когда PHP4 был совсем малышом, а PHP5 — только мечтой компании Zend. С помощью него я сделал многое, я любил его, проклинал и не без стыда наблюдал за тем, как он растёт и развивается. Я всё ещё использую его в некоторых доставшихся по наследству проектах, но предпочитаю больше его не применять. Также хочу отметить, что я не сотрудничаю с создателями фреймворков или инструментов, упомянутых в статье.

TL;DR (англ. too long; didn't read. Так, в частности, говорят, когда лень читать статью целиком — прим. пер.): если ваш проект основан на функциях фоновых процессов (фоновых служб, демонов — прим. пер.), избегайте PHP.

По-моему, в большинстве случаев ненавистники PHP упускают один весьма важный момент: PHP создан, чтобы умирать. Это не значит, что довольно способный (в какой-то степени) язык программирования исчезнет в никуда; это всего лишь означает, что ваш PHP код не может выполняться вечно. В настоящее время, спустя 13 лет после первого официального релиза в 2000 году, эта мысль до сих пор кажется мне вполне обоснованной.
Читать дальше →

Хокинг назвал искусственный интеллект величайшей ошибкой человечества

Reading time2 min
Views244K
Британский физик Стивен Хокинг, в своей статье, рассказал, что недооценка угрозы со стороны искусственного интеллекта может стать самой большой ошибкой в истории человечества.
Читать дальше →

/dev/null as a Service

Reading time1 min
Views55K
В современном мире, все является сервисом. Вы можете создавать документы, заливать фотографии, разворачивать компьютеры, но что происходит с мусором? Он копится и занимает все вокруг. Именно поэтому мы запускаем /dev/null в облаке.

IAAS, SAAS, PAAS?
Мы называем свое детище DAAS.

Вам больше не придется избавляться от лишних данных самому. Используйте наш распределенный сервис, расположенный в более, чем 380 локациях! Не имеет значения, будете ли вы использовать его в личных целях, либо для бизнеса. Доступны тарифы даже для целых корпораций.
Читать дальше →

Обзор Apple iMac 27'' 5K — первый моноблок со сверхчётким экраном

Reading time5 min
Views25K


Каких-то два года назад мы имели удовольствие созерцать первый ноутбук с дисплеем Retina. С тех пор Apple с завидной регулярностью обновляла линейку своих ноутбуков с подобными дисплеями, и, наконец, дошла очередь и до моноблока. Apple вкладывает большие средства и усилия в создание для своей продукции имиджа инструмента для творческих людей. На этот образ работает и превосходный выверенный дизайн, и высокое качество материалов, и сборка, и цена. Естественно, моноблоки Apple всегда позиционировались как решение для профессионалов в области фотографии, видео, графического дизайна и прочих, которым требуется высокая производительность в сочетании с неким налётом принадлежности к касте избранных. Что же, оставим последнее на совести маркетологов Apple (которые, надо признать, не зря едят свой хлеб, учитывая динамику продаж моноблоков), и постараемся непредвзято оценить новое устройство — первый в мире моноблок со сверхчётким экраном и разрешением 5К.
Читать дальше →

Information

Rating
Does not participate
Location
Таллин, Эстония, Эстония
Date of birth
Registered
Activity