Search
Write a publication
Pull to refresh
4
0
xRay @xRay

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

Send message

Почувствуй себя вирусным аналитиком

Reading time1 min
Views11K
Все, все, все хабролюди!

Если у вас есть тяга к исследованиям, и вы обладаете знаниями в реверс-инжениринге, то у вас есть возможность почувствовать себя настоящим вирусным аналитиком и одолеть наш квест.

image

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

Javascript наследование для чайников

Reading time6 min
Views69K
Прочитав очередную умную книжку про javascript, стал разбираться в методах реализации в нём наследования. Ну, то есть всем конечно понятно, что в реальном, большом, проекте лучше всего для этого использовать функцию из какой-нибудь библиотеки( благо их много ), но ведь хочется понять, как это вообще работает.

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

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

APNG (анимированный PNG) в Google Chrome, Safari и IE

Reading time1 min
Views14K
В последние дни при веб-сёрфинге мне попадаются разнообразные полезные «костыли», и я тотчас же пишу о них на Хабрахабре. Вот ещё один.

Как известно, анимированные PNG в формате APNG не включены в стандарт PNG, из-за чего ряд браузеров (IE, Safari, Google Chrome) анимацию в этих изображениях не поддерживают (а вместо неё показывают статический кадр). Чтобы преодолеть эту проблему, предприимчивый Lord_D даже пробовал засовывать кадры по одному в сжатый SVG. Надеюсь, его смелость даёт полное представление о том, до каких крайностей способен в отчаянии дойти веборазработчик.

К счастью, можно обойтись и без крайностей. Евгений Степанищев упомянул о том, что Давид Мзареулян сочинил и выложил на Github библиотеку apng-canvas, обеспечивающую кроссбраузерное отображение APNG во всех тех браузерах (включая стандартный браузер Android), которые сами по себе APNG не понимают. Отображение достигается отрисовкою на холсте (<canvas>).

Объём этой библиотеки — чуть больше 4 Kb.

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

Инструменты функционального тестирования — Monkey и MonkeyRunner

Reading time4 min
Views50K
В заметке пойдет речь о двух инструментах функционального тестирования android-приложений, которые поставляются вместе с Android SDK, но не очень известны. Несмотря на очень схожие названия, предназначены они для несколько различных целей, и отличаются от других известных инструментов, например, от Robotium'а. Кому интересно — прошу под кат.
Читать дальше →

Как знание MVP поможет сэкономить время и силы стартаперу?

Reading time3 min
Views2.7K
На мой взгляд, каждый стартапер должен знать и хотя бы частично использовать элементы MVP в своих проектах. В этой статье освещены основные моменты MVP, знание которых сэкономит вам время, нервы и деньги.

Что же такое MVP и чем он так хорошо? Ответ на этот вопрос ниже, а начнем с того, что многие из нас сталкиваются с такой дилеммой: «Есть отличная идея, но надо много времени и средств для реализации». Возможно, пару дней эта идея не покидает ваш разум, но потом вы понимаете своё бессилие, и на этом все заканчивается. А все могло быть по-другому…
Читать дальше →

Как защититься от SWF-декомпиляторов

Reading time3 min
Views16K
У меня в последнее время с завидной частотой спрашивают: «Как защитить данные, летающие между Flash Player и сервером?». Вместо ответа я предлагал прочитать любые книжки по криптографии, а от сильно наглых отбивался следующим кодом.

var myAge:Number = 23; //Ключ
var someTextToEncode:String = 'Sometext, or xml, or anything else'; //Текст для шифрования
var arr:Array = new Array();
var l:Number = someTextToEncode.length;
var encodedText:String = '';
for (var i:Number = 0; i< l; i++){
encodedText += String.fromCharCode(someTextToEncode.charCodeAt(i) + myAge); //Шифруем методом сдвига позиции кода символа. Просто и со вкусом. 90% "хакеров" на этом этапе уже отсеятся.
}
post(encodedText); //Метод, посылающий шифрованные данные на сервер


И от меня отвязывались, копипастя код. И всё у меня было хорошо, до тех пор, пока один из любопытных не спросил: «А как же защитить ключ? Ведь любую флешку можно утащить с сайта и декомпилировать!»

Способ, как оказалось, очень прост и не требует наличия никаких обфускаторов. Речь пойдёт о стендалон-флешках, скомпилированных одним файлом.
Читать дальше →

Об одном подходе к построению БД на начальном этапе работ над web-проектом

Reading time3 min
Views959
Здесь рассмотрен подход, который может облегчить начало работ над интернет-проектом, требования к которому может и определены, но некоторые, возможно существенные, детали нераскрыты. Считаю, что в целом все стартапы и проекты по началу редко когда могут быть описаны достаточно полно, чтобы было возможно построить требуемую архитектуру БД и грамотный код. На начальном этапе проектирование структуры БД, основанное на идее использования NoSQL-подобного подхода как черновика для проекта экономит силы и средства в условиях постоянно меняющихся требований. Данный подход позволяет получить быстрый результат и построить всю логическую схему проекта. Этот подход дает выигрыш в скорости и упрощает дело на самом бурном начальном этапе, если нам придется перекраивать архитектуру довольно часто и глубоко. При этом переход к классической, более-менее нормализованной базе достаточно безболезненный.
Читать дальше →

H.264 декодер на JavaScript

Reading time1 min
Views7.9K
Прежде чем отправить публикацию, крепко задумался, какой блог выбрать: JavaScript или Ненормальное программирование. Так или иначе круг задач, которые можно решить на детище Нетскейпа расширяется с каждым днем.

Так например разработчики из команды Mozilla смеха ради сделали H.264 декодер на JavaScript. Любопытно, что скрипт при этом не был написан вручную.

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

RTCKit: API голосового и видео общения в браузере

Reading time5 min
Views7.4K
image

Наиболее популярным протоколом IP-телефонии в настоящий момент является протокол SIP. Он позволяет взаимодействовать с большинством софтверных и железных телефонных компонентов, а также поддерживается многими сервисами. Существует несколько приличных реализаций стека данного протокола на языках C (PJSIP, Linphone) или Python (B2BUA, p2p-sip), с помощью которых легко встроить голосовые и видео коммуникации в настольное или серверное приложение.

Проблема


Совсем иначе обстоит дело с веб-приложениями: сегодняшние браузеры пока не поддерживают возможность использования телефонии без дополнительных плагинов. Работы в этом направлении, несомненно, ведутся. Есть некоторая надежда на проект WebRTC, поддерживаемый Google и W3C, но, к сожалению, даже он не является панацеей. Во-первых, перспектива его поддержки в Internet Explorer весьма туманна, а во-вторых, протокол SIP он все равно не поддерживает. И к тому же, эта технология — некоторое будущее. А что же делать, если есть желание встроить SIP-телефонию в веб-приложение уже сейчас?

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

Deface изображений или Вас могут подставить

Reading time1 min
Views3.4K
Перепосты или копирование постов с указанием авторства стали для нас чем-то обыденным и мы редко задумываемся о том, насколько небезопасно это может быть, или просто вообще не знаем, что таким образом можем быть подвергнуты deface атаке.

Лишним подтверждением стал случай (осторожно, много политики) с блогом одной девушки. Она решила разместить копипаст сообщения пользователя живого журнала avf, в котором даются рекомендации как избежать проблем с переходом на зимнее время.

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

Преподобные фрилансеры VS святые веб-студии

Reading time1 min
Views7K
Коллеги, с радостью презентуем вам результаты исследований на тему «Фри-ланс против веб-студий».
Чем завершился спор о том, кто чаще срывает дед-лайны, а кто поднимает стоимость работ до небес за одно только громкое имя, можно посмотреть на инфографике:
Читать дальше →

Очень быстрый способ выключить зимнее время для тех, кто проспал

Reading time1 min
Views5.3K
Для тех новичков, кто проспал в выходные, и забыл озаботиться выключением перевода своих Debian-систем на зимнее время – эта мини-статья. Способы это сделать – очень быстрые, не претендующие на самую правильность, но работающие. Рассмотрены будут два поколения, до Lenny и соответственно после него. Ввиду того, что у некоторых сервера работают годами, то наличие таких «древностей» еще имеет место.

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

Бди!

Reading time1 min
Views1.3K
Как известно, в большинстве европейских языков принято начертание текста слева направо, а у некоторых ближневосточных языков принято начертание текста справа налево. Если символ Юникода не является буквою алфавита (таковы знаки пунктуации и арабские цифры), то по умолчанию в браузере он принимает ориентацию предшествующего текста (например, появляется слева от текста, предшествующего ему в HTML-коде, если этот текст был семитским).

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

Традиционным средством такого экранирования является задание тексту соответствующего CSS-свойства (кодом <span style="unicode-bidi: isolate"></span>). Однако это и долго записывать, и тег span (как известно) не семантический, да и браузерам всё ещё разрешено игнорировать CSS, если такова их настройка. Было бы лучше, кабы был специальный тег HTML для такого экранирования.

И такой тег действительно оказался введён WhatWG в подразделе 4.6.23 черновика стандарта HTML5.

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

DLL HiJacking в Qt-приложениях

Reading time1 min
Views2.9K
В марте 2011 года я писал о DLL HiJacking в VirtualBox. Тогда разработчики сообщили, что проблема не в их продукте, а в Qt, на котором основана их продукция.
Наконец, найдя время, я решил проверить так ли это. Оказалось, что так.

Мной были проверены:


И они оказались уязвимы.


Видео демонстрация уязвимости (видео без звука):
Читать дальше →

Плагин для рендеринга PDF в браузере

Reading time1 min
Views13K
Кажется, только недавно ребята из Mozilla начали разработку PDF.js — движка для рендеринга PDF-документов средствами HTML5 и JavaScript, и вот они уже вышли на финишную прямую. Качество рендеринга достигло такого уровня, что разработчики решили выпустить экспериментальную версию расширения для Firefox (файл XPI).



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

OpenStreetMap в помощь велосипедистам

Reading time5 min
Views75K

Вступление


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

sjFilemanager — Reloaded. AJAX + PHP файловый менеджер версия 1.0 бета

Reading time4 min
Views7K
Много воды утекло с тех пор когда я сел за написания своего файлового менеджера. В то время поддержка ИЕ6 считалась обычным делом, а про фичи HTML5 можно было только мечтать. В общем вот ссылка на версию 0.1.0 альфа. В конце первого топика, я написал, что планирую сделать в будущем, можно сказать я сдержал свое обещание и хочу представить Вам версию 1.0b. Из того, что планировалось, была отброшена идея внедрения авторизации в менеджер, потому что, как говорили здесь, это пятое колесо. Рассмотрим, что изменилось и что улучшилось, но для начала скрин

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

Работа с изображениями средствами phpThumbOf

Reading time4 min
Views76K
phpThumbOf — это аддон для MODx, основанный на популярном скрипте phpThumb. Он позволяет модифицировать изображения средствами различных графических библиотек «на лету».

Я не буду описывать процесс установки аддона из репозитория. Будем считать, что вы уже скачали его и установили.

Причиной написания поста послужил тот факт, что официальная документация по phpThumbOf просто ужасна. Прочитав ман, я подумал, что единственной функцией, которую можно использовать для модификации изображения при его выводе является зум-кроп (zoom-crop), ибо больше там ничего не сказано. Но позже, попробовав использовать некоторые другие опции phpThumb я выяснил, что они прекрасно работают!
Читать дальше →

Быстрое вступление в rack

Reading time7 min
Views47K

Что за Rack?


По словам Christian Neukirchen — автора гема rack — он создан для обеспечения минимального API для подключения веб-серверов, поддерживающих Ruby (WEBrick, Mongrel и т.д.) и ruby веб-фреймворками (Rails, Sinatra и др.).

Такие фреймворки, как например Sinatra, построены над Rack или у них есть rack-интерфейс, позволяющий серверам веб-приложений подключаться к ним.

Цель rack проста — он позволяет с легкостью обрабатывать HTTP-запросы.

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

Information

Rating
Does not participate
Registered
Activity