Pull to refresh

Учимся считать в hex, или реверс-инженеринг будильника

Development for Android *

Введение


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

Под катом вы найдете описание инструментов, процесса и результата перевода примера в hex. А также объяснение синтаксиса smali кода (язык опкодов для виртуальной машины dalvik). Картинок почти нет, буков много.
Читать дальше →
Total votes 77: ↑74 and ↓3 +71
Views 50K
Comments 20

Четыре зловещие шестнадцатеричные цифры на страницах ошибок — и как преодолеть их

Nginx *
Tutorial
С этим загадочным глюком вы столкнётесь только при сочетании сразу нескольких условий.

Ваш сайт обслуживается Apache Server. (Это условие выполнить нетрудно: сейчас Apache — один из наиболее популярных вебосерверов.)

Ваш сайт также снабжён кэширующим сервером nginx. (Закупая shared-хостинг для небольшого сайта, вы можете до последней минуты ничего и не знать о том, что хостинговый провайдер, заботясь об экономии ресурсов, навесил nginx. Если, конечно, не полезете читать заголовки HTTP-отклика.)

Вы ставите какой-нибудь движок, работающий на PHP. (Например, CMS Drupal. Или, например, вики MediaWiki.)

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

И тогда приходят они. Четыре шестнадцатеричные цифры. Они появляются в коде страницы с описанием ошибки 404 (а также и 403), они стоят в этом коде перед «<!DOCTYPE», и поэтому многие браузеры (например, Firefox) стремятся отобразить их выше всего остального текста страницы — а значит, заметно разламывают дизайн, задуманный создателями CMS или вики:

3340
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
    <head>
          <title> … … …

В чём же дело?

Читать дальше →
Total votes 118: ↑95 and ↓23 +72
Views 2.8K
Comments 39

#BADA55-цвета для веб-дизайна

CSS *HTML *
Translation
Tutorial
Я потратил несколько лет на изучение архитектуры компьютеров, и уж если одну вещь я выучил крепко, так это любовь компьютерных проектировщиков к изящным именам, используемым при инициализации или другой работе с памятью. Долгие часы своей жизни я истратил на придумывание забавно выглядящих адресов памяти для употребления в домашней работе или тестировании. Из подобных названий лучше других известен 0xDEADBEEF, а список некоторых других вы можете видеть вон там и там. Можно даже предположить, что этакие названия (особенно с подстановкою символов: например, «1» вместо «i» или «5» вместо «s») стали предтечами псевдо-крутого интернетовского жаргона, известного как leetspeak.

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

Набросав краткий PHP-скрипт, получаем довольно обширный список для подбора таких цветов. Разумеется, годятся все коды, полностью состоящие из букв, но я также дозволил подстановку «1» вместо «i», «5» вместо «s» и «0» вместо «o». Та статья Википедии, на которую я выше сослался, также предлагала использовать «7» вместо «t» и «9» вместо «g», но мне кажется, что при этом не получаются сколько-нибудь легко читаемые «шестнадцатеричные слова» (да к тому же тогда список слов, и без того длинный, оказался бы гораздо длиннее).

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

████████████████ #ABACA5 → abacas
████████████████ #ABA5ED → abased
████████████████ #ABA5E5 → abases
████████████████ #ABA51A → abasia
████████████████ #ABBE55 → abbess
████████████████ #AB1DED → abided
████████████████ #AB1DE5 → abides
████████████████ #AB0DED → aboded
████████████████ #AB0DE5 → abodes
████████████████ #ACAC1A → acacia
████████████████ #ACCEDE → accede
████████████████ #ACCE55 → access
████████████████ #ACED1A → acedia
████████████████ #AC1D1C → acidic
████████████████ #AD0BE5 → adobes
████████████████ #AD0B05 → adobos
████████████████ #A5D1C5 → asdics
Читать дальше →
Total votes 110: ↑83 and ↓27 +56
Views 15K
Comments 42

Восстановление базы 1С с помощью HEX редактора

System administration *
Sandbox
Эта статья для тех, кто уже отчаялся в восстановление своей базы и полез за бэкапами. А именно: что делать когда базу 1С убила, так называемая «утилита тестирования физической целостности базы» chdbfl.exe и её подруга платформа 1С.

Кто не знает, chdbfl.exe — это стандартная программа восстановление и тестирования физической целостности базы 1С, входящая в комплект платформы. И всем уже давно известно что chdbfl.exe делает только хуже в большинстве случаев(в моей практике именно так).

А началось всё с очень банальной ошибки. Так как программисты из 1С очень любят мудрить, то во время очередного обновления 1С: Бухгалтерии вывалилось следующее:
Читать дальше →
Total votes 8: ↑5 and ↓3 +2
Views 8.5K
Comments 4

Локализация VN на примере Hoshizora no Memoria

Game development *
Tutorial
Только не говорите, что гики не читают VN. Итак, есть одна визуалка (профиль на vndb).
Весьма неплохая, кстати, рейтинг 8.06, советую почитать тем, кого не смущает некоторое количество хентая.
Ну, в общем, не об этом статья.
Есть английский патч, есть китайский. Русского нет. Несправедливо. Попробуем это исправить.
Понадобится:
  • WinHex. Куда же без него.
  • MadEdit. Опенсорсная альтернатива Винхексу, который я так и не смог заставить нормально отображать Shift-JIS. Вообще, согласно Вики, в мэде самая богатая поддержка языков и кодировок.
  • Для сбора локализации программка на C, поэтому какая-нибудь IDE. Я использовал Visual Studio, хотя особо специфичных вещей там нет, наверное, любая пойдет.


Читать дальше →
Total votes 25: ↑20 and ↓5 +15
Views 5.5K
Comments 10

Еще одна Змейка не в 30 строк на Android

Game development *Development for Android *
Привет всем! Сегодня я хочу рассказать историю создания одной игрушки для Android. Что будет:
  • Зачем ещё одна змейка для андроида?! Объяснение (c описанием);
  • Как я это сделал — использованные приемы, немного кода;
  • Немного о дизайне;
  • Google Play Games, нестандарное использование.



Всех заинтересовавшихся прошу под кат!
Хочу подробностей!
Total votes 37: ↑32 and ↓5 +27
Views 33K
Comments 12

Превращаем Arduino в полноценный AVRISP программатор

DIY
Tutorial
image

Приветствую всех пользователей хабра, в частности тех, кто страдает темой Arduino, как и я.

Меня уже давно спрашивают — можно ли прошивать hex файлы при помощи Arduino? Изменять фьюзы? Считывать прошивку? И всякое такое… Ответ — можно, и я сегодня вам расскажу, как я это делаю.


(Данное видео дублирует представленную ниже информацию)
Интересненько...
Total votes 24: ↑19 and ↓5 +14
Views 145K
Comments 8

Создание Elixir-приложения на примере. От инициализации до публикации

Ruby *Programming *Elixir/Phoenix *
Sandbox
Tutorial

image


Данная статья участвует в конкурсе от Wunsh.ru — русскоязычное сообщество Elixir. Практики и просто сочувствующие — присоединяйтесь!


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


Вступление


"Elixir — динамический, функциональный язык программирования, разработанный для создания масштабируемых и легко поддерживаемых систем." — elixir-lang.org


Используя Elixir для создания ваших приложений вы обязательно столкнётесь с Mix. Он станет вам незаменимым помощником, так как через него вы сможете выполнять такие команды как создание, сборка, тестирование и публикация приложений, а также управление зависимостями и многое другое. Если вы знакомы с Ruby, то этот инструмент очень похож на Bundler, RubyGems и Rake, вместе взятые. В двух словах Mix — это удобный инструмент, который поставляется с Elixir и выполняет не меньше задач, чем швейцарский нож.


Инициализация нового приложения

Читать дальше →
Total votes 22: ↑20 and ↓2 +18
Views 15K
Comments 25

Использование rebar3 для управления проектами на Erlang

Erlang/OTP *Elixir/Phoenix *
Tutorial


Rebar3 — это инструмент для языка программирования Erlang, который позволяет легко и удобно управлять проектами, написанными на Erlang (иногда и на Elixir).


Люди уже давно знакомые с Erlang знают старый rebar и, возможно даже, до сих пор его используют. Многим (особенно тем, кто пришел из других языков с гораздо более развитой экосистемой) rebar не нравится и время от времени его там и тут называют "позорной подделкой", которую можно было бы заменить скриптом на Perl. К счастью много работать с rebar мне не приходилось (в отличие от автора выше приведенных слов), но с базовыми вещами rebar справлялся довольно-таки неплохо. Но "неплохо" — это не "хорошо". Несогласных с таким положением дел (с "неплохо") оказалось немало и потому решили они дать арматуре вторую жизнь в виде проекта rebar3, который нынче активно развивается. Над проектом среди прочих работает небезызваестный сир Фред Хеберт, который подарил миру книгу "Изучай Erlang во имя добра!".

Читать дальше →
Total votes 15: ↑15 and ↓0 +15
Views 9.2K
Comments 7

Обработка изображений ReactJS — NodeJS

JavaScript *Node.JS *ReactJS *
Sandbox
Доброго времени суток.

Разбор полетов провожу на Reactjs (сторона клиента) и Nodejs (сторона сервера).

Недавно в моем маленьком проекте встал вопрос, как легко и просто можно обмениваться изображениями по типу клиент — сервер.

Сегодня мы научимся отправлять бинарные данные (конкретно изображения ) со стороны клиента и обрабатывать их на сервере. Добро пожаловать в под кат.
Читать дальше →
Total votes 11: ↑9 and ↓2 +7
Views 9.2K
Comments 33

Забудьте про RGB и HEX

CSS *
Tutorial
В CSS существует несколько способов представления цветов. Один из них — система HSL. В этой статье я покажу вам, какие возможности она открывает для верстальщика.
Total votes 78: ↑75 and ↓3 +72
Views 37K
Comments 97

Руководство по цвету в UX/UI-дизайне

Alconost corporate blog Web design *Interfaces *Usability *Graphic design *
Translation

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

Читать далее
Total votes 7: ↑7 and ↓0 +7
Views 13K
Comments 2

HTML страница, встроенная в анимированный GIF

Abnormal programming *

Началось с того, что я случайно наткнулся на станицу https://lcamtuf.coredump.cx/squirrel/
Это демка представляет собой файл, который будучи сохраненным с расширением .jpg или .jpeg открывается как графический файл, а с расширением .htm или .html как веб-страница. Такого рода трюки для JPEG не новы. Насколько я понял, HTML размещается в секции комментируя .jpeg файла. Браузер проглатывает бинарные данные заголовка как мусор, потом рендерит найденный HTML. Немного CSS хитрости чтобы спрятать бинарный мусор от глаз пользователя и вуаля.

Я вооружился редактором Hex Fiend для Mac и давольно быстро смог заменить HTML и изображение на свои.

Но остановиться на этом я не мог
Total votes 24: ↑24 and ↓0 +24
Views 6.5K
Comments 11