Search
Write a publication
Pull to refresh
46
0
Артур Терменжи @ara89

User

Send message

Сравнительный тест программ, предотвращающих атаку на ARP-таблицу

Reading time2 min
Views5.9K
Не так давно большой интерес (1, 2) вызвала программа DroidSheep, перехватывающая аккаунты пользователей он-лайн сервисов, которые пользуются ими через общедоступный Wi-Fi. На исконно русский вопрос: «что делать?» кто-то предложит воспользоваться программами для защиты от подобного рода атак, написанными под Андроид. Вот их я и решил протестировать.

А тестировал я её давно (ещё в 2008 году) написанной мною программкой ARPBuilder, которая создавалась для проверки уязвимости различных МСЭ к ARP-спуфинг атакам (подробнее):

image

Собственно, мне удалось разыскать всего 2-х кандидатов на тесты: DroidSheepGuard и shARPWatcher (обе программы для полноценной работы требуют наличие root-доступа).

Об удачности атаки я судил по показаниям ARP-таблицы моего подопытного Android-устройства. Показания снимал через программку Net Status:
image

Результаты тестов под катом

Особенности синхронизации в Android-приложении

Reading time5 min
Views12K
image

При разработке многих Android-приложений требуется организовать процесс синхронизации данных с данными на сервере. Есть два основных способа как данную синхронизацию можно реализовать.
Первый способ — классический (наиболее популярный и наиболее простой) — с помощью AlarmManager и Service. Например, как описано в этой статье.
Второй способ — «правильный» (но пока что, видимо, редко кем используемый) — с помощью SyncAdapter.

Разрабатывая своё приложение, изначально я попытался реализовать «правильный» (т.е. второй способ).
Читать дальше →

Android + Arduino + 4 колеса. Часть 2

Reading time15 min
Views53K
Этот пост продолжение моей статьи «Android + Arduino + 4 колеса». Совсем не то, что я планировал описать следующим шагом. Я собирался решить задачу передачи видео от робота к ПК, но до сих пор нахожусь в стадии сбора информации. К сожалению мало свободного времени, а тут ещё пришлось переставлять систему на домашнем компьютере с нуля и заново настраивать среду разработки.

На фоне вопросов, заданных мне по почте о запуске исходников Мити (имя, зацепившееся за моим роботом) и моей внеплановой перестановки системы, решил описать, какой средой пользуюсь я, как её настраивать, как развернуть исходники и как запустить Митю. Если интересно, приглашаю читать далее. Картинок почти нет, никакого видео, сухой поток текста по настройке среды разработки. Суровая изнанка робототехники.

Надеюсь, эта статья пригодиться тем любителям DIY, кто испытывает недостаток опыта в части организации программирования .NET-приложений или Android-приложений. Вопросы языков программирования я поднимать не буду, но главный вопрос: «с чего начать?», думаю, здесь будет раскрыт.
Читать дальше →

Continuous Integration для Android

Reading time7 min
Views18K
После реализации пары проектов под Android, стало понятно, что, несмотря на их небольшие размеры и кажущуюся простоту, без автоматизированных сборок и тестирования не обойтись. Родилось желание получить следующие возможности:
  • unit тестирование,
  • интеграционное тестирование,
  • тестирование интерфейса,
  • тестирование этих типов тестов на различных версиях Android и конфигурациях девайсов,
  • рассылка по email в случае сломанного билда;
  • таже не помешает автоматическая сборка релизов.
Читать дальше

Перехват сессий в беспроводных сетях

Reading time1 min
Views61K
На хабре уже была статья о Перехвате аккаунтов пользователей в Wi-Fi-сетях с Android используя утилитку DroidSheep (небольшой русский howto для ленивых).

Используя эту программу, я столкнулся с вопросом: как бы мне сохранить перехваченные сессии? DroidSheep позволяет отправлять на почту перехваченные сессии. Но это очень неудобно для меня. Я бы хотел сохранять сессии в привычном для меня pcap формате для дальнейшего анализа на стационарном компьютере через WireShark (или через его аналог на андроиде SharkReader ).

Фактически, задачу можно переформулировать: нам нужен arp-spoofing с возможностью логирования всех перехваченных пакетов в формат pcap. Предлагаемый вариант не претендует на оптимизированный в каком-либо виде. Но вполне работоспособен.

Мой вариант под катом

Живые обои на Android без нативного кода или история написания Two Hearts Live Wallpaper

Reading time6 min
Views13K
Более полу года проработав разработчиком для Android я решил попробовать написать живые обои с использованием OpenGL. Пробежав по сети было обнаружено несколько движков общего назначения и множество любительских поделок. Два достаточно взрослых движка предлагали быстрый нативный код и хорошую документацию:
Andengine;
LibGDX.

К несчастью, первый не умеет загружать модели и ограничивается двумя измерениями, во втором же работа с моделями выполнена в расширениях и написана на Java, что приводит к перерасходу памяти и медленной работе.
Unity3D не рассматривался из-за его платности, да и не заточен он для живых обоев.
Linderdaum выполнен полностью в нативном коде, но не содержит обертки для живых обоев и страшно медлителен, на Desire в простой сцене количество кадров в секунду колебалось от 3 до 8.
Просмотр маленьких проектов обнаружил min3d и Rajawali, причем первый написан для OpenGL 1.1 и уже год не поддерживается, а второй, хотя и работает с более продвинутой версией API, не содержит многих полезных функций из первого. Кроме того первый не умеет работать с живыми обоями.
Читать дальше →

Применение AOP для отладки чужой библиотеки

Reading time3 min
Views2.2K
На Хабре уже поднималась тема аспектно-ориентированного программирования (Aspect-oriented programming, AOP). Этой парадигме уже не так мало лет, но ее использование отнюдь не повсеместно. В комментариях регулярно обсуждается, а нужна ли она вообще или для каких целей всё же выгодно ее использовать.

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

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

Если вам интересно, что можно сделать в таких обстоятельствах, добро пожаловать под кат.
Читать дальше →

Навигатор по бесплатным иконкам

Reading time2 min
Views5.1K
Вчера в который раз возник вопрос по подбору нескольких иконок в очередном веб-проекте. В основном пользуюсь готовыми иконками из бесплатных наборов. До недавнего времени прибегал к услугам сайта iconpicker.deviantech.ru. Навигация по иконкам была хоть и не самая удобная, но явно лучше, чем просто проглядывать их в Finder'е (или Explorer'е). Однако в последнее время сайт недоступен.

В итоге решил сделать собственный навигатор по иконкам:


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

Стековые языки программирования

Reading time6 min
Views18K
concatenative
Функциональное программирование снова в моде. В зависимости от того, предпочитаете ли вы классику или хардкор, страдаете от навязанных промышленных стандартов или вы просто хипстер, вашим любимым предпочтением может быть Scala, Haskell, F# или даже старый добрый Lisp. Такие сочетания слов, как функция высшего порядка, отсутствие побочных эффектов, и даже монады, ласкают слух всех «неокрепших юных умов», будь-то ребят из JetBrains или студента, впервые увидевшего SICP.

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

Программа KLIK: распознавание лиц под iOS (бесплатно)

Reading time1 min
Views23K


Компания Face.com — один из ведущих в мире разработчиков систем распознавания лиц, поставщик соответствующей технологии для Facebook — несколько месяцев работала над секретным "Project Badass" (это не настоящее название), и недавно представила результат: бесплатная программа KLIK для iOS 4.3+. Она в реальном времени распознаёт лица людей, на которых вы наводите камеру смартфона. Лица распознаются среди тех, кого вы фотографировали и помечали раньше, а также среди ваших друзей на Facebook.
Читать дальше →

Размер Java объектов. Используем полученные знания

Reading time5 min
Views14K
В предыдущей статье много комментаторов были не согласны в необходимости наличия знаний о размере объектов в java. Я категорически не согласен с этим мнением и поэтому подготовил несколько практических приемов, которые потенциально могут пригодится для оптимизации в Вашем приложении. Хочу сразу отметить, что не все из данных приемов могут применяться сразу во время разработки. Для придания большего драматизма, все расчеты и цифры будут приводится для 64-х разрядной HotSpot JVM.

Денормализация модели

Итак, давайте рассмотрим следующий код:
class Cursor {
    String icon;
    Position pos;
    Cursor(String icon, int x, int y) {
         this.icon = icon;
         this.pos = new Position(x, y);
    }
}
class Position {
    int x;
    int y;
    Position(int x, int y) {
        this.x = x;
        this.y = y;
    }
}

А теперь проведем денормализацию:
class Cursor2 {
    String icon;
    int x;
    int y;
    Cursor2(String icon, int x, int y) {
        this.icon = icon;
        this.x = x;
        this.y = y;
    }
}

Казалось бы — избавились от композиции и все. Но нет. Объект класса Cursor2 потребляет приблизительно на 30% меньше памяти чем объект класса Cursor (по сути Cursor + Position). Такое вот не очевидное следствие декомпозиции. За счет ссылки и заголовка лишнего объекта. Возможно это кажется не важным и смешным, но только до тех пор, пока объектов у Вас мало, а когда счет идет на миллионы ситуация кардинально меняется. Это не призыв к созданию огромных классов по 100 полей. Ни в коем случаем. Это может пригодится исключительно в случае, когда Вы вплотную подошли к верхней границе Вашей оперативной памяти и в памяти у Вас много однотипных объектов.
Читать дальше →

Встраиваемые движки пользовательских блогов для Ruby on Rails

Reading time3 min
Views3.2K
Иногда мне кажется, что в экосистеме Ruby on Rails есть проклятое место: встраиваемые движки для ведения блогов. Это особенно мило наблюдать в свете существования бесконечного количества скринкастов «блог на Rails за 10 минут».

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

Некоторое время назад, когда я работал в «АБАК-ПРЕСС», руководство повелело внести в милый сайтик LookMart.ru весьма модную нынче «фишечку» — пользовательские блоги (на данный момент эта функциональность находится в активной разработке). Меньше всего нам хотелось изобретать велосипед и городить очевидные вагоны из контроллеров с моделями, но после небольшой разведки пришлось смириться и сделать всё самостоятельно. Почему?
Читать дальше →

Android + Arduino + 4 колеса

Reading time19 min
Views146K
Не думал, что так меня скрутит, но вот случился довольно острый приступ робототехники. Ну и как всякий уважающий себя пострадавший, я постараюсь заразить как можно больше людей.

Как развивалось помешательство, я решил описать в статье. Получилось длинно, но может кому-нибудь будет интересно. Думаю, статья ориентирована на тех, кто ещё не практиковался в робототехнике.

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



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

Пристальный взгляд на шаблоны мобильных интерфейсов

Reading time5 min
Views6.1K


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

Эти 70 шаблонов проиллюстрированы сотнями примеров приложений для операционных систем Apple, BlackBerry, Android, Symbian, Windows и WebOS будут изданы O’Reilly Media как «Mobile Design Pattern Gallery». Ниже приведена одна из моих любимых глав — Приглашение.

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

Приложение в честь Дня святого Валентина на libgdx

Reading time7 min
Views27K

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


.

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

Простой файловый хостинг на Google App Engine

Reading time5 min
Views11K
Наверняка каждый из вас в своей жизни находил удобный для себя файловый хостинг, а через какое-то время обнаруживал, что на нем от количества рекламы начинают болеть глаза, условия уже далеко не такие лояльные и вообще пора бы уже найти что-то новое. Вариантов дальнейших действий два — или найти новый, пока еще не раскрученный файлообменник и использовать его, пока он не испортится, или организовать собственное решение. Для второго варианта, в свою очередь, можно приобрести хостинг (придется правда набить шишек, пока не найдется добросовестный хостер с качественными услугами) или воспользоваться облачным сервисом.

Довольно интересной находкой оказался PaaS-хостинг от Google — Google App Engine (далее GAE), который дает возможность хранить до 5 Гб файлов при 1 Гб входящего и 1 Гб исходящего трафика в день, и кроме всего прочего, в нем используется модель High Replication, то есть ваши данные будут хранится сразу на нескольких серверах по всему миру!
Особенностью GAE является несколько нестандартный интерфейс для работы с файлами, поэтому я и сделал собственный сервис, о чем расскажу в данной статье.
Читать дальше →

Квадрокоптер своими руками: Часть I

Reading time4 min
Views345K
ВНИМАНИЕ, статья устарела, но её всё еще можно использовать в ознакомительных целях
Как и обещал, как только полечу — напишу полноценный пост по поводу сборки своего летающего агрегата. Наверняка многие давно посмотрели как «обычный» офисный сотрудник собирает это за 2 часа, сразу отмечу что я не «обычный» офисный работник, поэтому летчик из меня пока не очень, но важно что квадрокоптер летает и адекватно реагирует на управление. Первое и самое главное — если решили собирать, не экономьте и не думайте что вы умнее тех кто уже летает, так же учтите, что теория несколько расходится с практикой.
Есть большое число прошивок, готовых контроллеров, вариантов датчиков, моторов и т.д. и т.п. — выбрать есть из чего, но в статье остановлюсь только на одном варианте, основанном на Arduino Mega, прошивке MegaPirate и относительно дешевых датчиках.
много интересного читаем тут

5 гемов на все случаи жизни

Reading time3 min
Views9.4K
В блоге про Django я периодически вижу посты с обзорами интересных расширений для этого фреймворка. Идея мне понравилась, и я решил, что было бы неплохо сделать похожий цикл заметок и о Ruby on Rails.

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

LPT программатор для AVR

Reading time2 min
Views78K
Если вы задумали собрать какое-нибудь устройство на AVR микроконтроллерах Atmel (да хоть свою homemade Arduino), Вам просто не обойтись без программатора. Программатор позволит прошить микроконтроллер нужной программой или, в случае с Arduino, записать в память микроконтроллера подходящий bootloader.



Вообще-говоря, существует превеликое множество программаторов, различающихся сложностью сборки, скоростью прошивки и надежностью работы. Самым простым из них является вариант, называемый в народе «Пять проводков». Но надежность его оставляет желать лучшего, так как убить им LPT порт легче легкого=) Более надежным является программатор STK200, который содержит буферную микросхему и гарантирует нормальную работу с портом.

Но из-за наличия микросхемы он становится гораздо сложнее в изготовлении для начинающего (то есть для меня).

Как с этим бороться?
Читать дальше →

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity