Как стать автором
Обновить

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

Время на прочтение 13 мин
Количество просмотров 52K
Разработка под Android *

Введение


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

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

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

Время на прочтение 2 мин
Количество просмотров 2.9K
Nginx *
Туториал
С этим загадочным глюком вы столкнётесь только при сочетании сразу нескольких условий.

Ваш сайт обслуживается 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> … … …

В чём же дело?

Читать дальше →
Всего голосов 118: ↑95 и ↓23 +72
Комментарии 39

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

Время на прочтение 5 мин
Количество просмотров 16K
CSS *HTML *
Туториал
Перевод
Я потратил несколько лет на изучение архитектуры компьютеров, и уж если одну вещь я выучил крепко, так это любовь компьютерных проектировщиков к изящным именам, используемым при инициализации или другой работе с памятью. Долгие часы своей жизни я истратил на придумывание забавно выглядящих адресов памяти для употребления в домашней работе или тестировании. Из подобных названий лучше других известен 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
Читать дальше →
Всего голосов 110: ↑83 и ↓27 +56
Комментарии 42

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

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

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

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

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

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


Читать дальше →
Всего голосов 25: ↑20 и ↓5 +15
Комментарии 10

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

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



Всех заинтересовавшихся прошу под кат!
Хочу подробностей!
Всего голосов 37: ↑32 и ↓5 +27
Комментарии 12

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

Время на прочтение 5 мин
Количество просмотров 278K
DIY или Сделай сам
Туториал
image

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

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


(Данное видео дублирует представленную ниже информацию)
Интересненько...
Всего голосов 24: ↑19 и ↓5 +14
Комментарии 8

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

Время на прочтение 7 мин
Количество просмотров 16K
Ruby *Программирование *Elixir/Phoenix *
Туториал
Из песочницы

image


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


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


Вступление


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


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


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

Читать дальше →
Всего голосов 22: ↑20 и ↓2 +18
Комментарии 25

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

Время на прочтение 6 мин
Количество просмотров 10K
Erlang/OTP *Elixir/Phoenix *
Туториал


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


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

Читать дальше →
Всего голосов 15: ↑15 и ↓0 +15
Комментарии 7

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

Время на прочтение 5 мин
Количество просмотров 13K
JavaScript *Node.JS *ReactJS *
Из песочницы
Доброго времени суток.

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

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

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

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

Время на прочтение 3 мин
Количество просмотров 42K
CSS *
Туториал
В CSS существует несколько способов представления цветов. Один из них — система HSL. В этой статье я покажу вам, какие возможности она открывает для верстальщика.
Всего голосов 78: ↑75 и ↓3 +72
Комментарии 97

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

Время на прочтение 8 мин
Количество просмотров 21K
Блог компании Alconost Веб-дизайн *Интерфейсы *Usability *Графический дизайн *
Перевод

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

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 2

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

Время на прочтение 2 мин
Количество просмотров 6.9K
Ненормальное программирование *

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

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

Но остановиться на этом я не мог
Всего голосов 24: ↑24 и ↓0 +24
Комментарии 11

Пишем Hex Viewer для Flipper Zero

Время на прочтение 11 мин
Количество просмотров 11K
C *Программирование микроконтроллеров *Гаджеты DIY или Сделай сам
✏️ Технотекст 2022

Примерно месяц назад основная поставка Flipper'ов таки доехала до России. Вопреки моим ожиданиям, это не вызвало волну публикаций про создание приложений под него. Хорошие публикации есть (например, эта и вот эта), но массовости нет. Слишком долго ждали и перегорели? Пишут долго и обстоятельно? Технологический стек устройства не подходит для быстрого и легкого старта? Как бы то ни было, такой расклад ничуть не убавил мотивации поиграться с устройством!! С удовольствием уделил несколько вечеров созданию своего первого приложения под Flipper Zero: Hex Viewer, шестнадцатеричного просмотрщика. О своем опыте и интересных находках расскажу в теле статьи.

Читать далее
Всего голосов 93: ↑91 и ↓2 +89
Комментарии 30

Я купил телефон за 50 российских рублей. На что он способен?

Время на прочтение 9 мин
Количество просмотров 14K
Блог компании Timeweb Cloud Беспроводные технологии *Гаджеты Смартфоны
image

Если прямо сейчас собраться и пойти в магазин любого ритейлера, дабы посмотреть — какие телефоны можно купить до 1.000 рублей, то можно увидеть кучу наименований… которые выглядят практически одинаково. Самый дешёвый телефон с монохромным дисплеем сейчас можно купить примерно за 500 рублей, с цветным — за 650. Но что будет, если мы пойдем дальше и купим слайдер с тачскрином в розницу за 50 российских рублей (~0.9$)? Подробнее в статье!
Читать дальше →
Всего голосов 40: ↑33 и ↓7 +26
Комментарии 9