Pull to refresh
27
0
hopheilalalei @m0sk1t

hahacker

Send message

Реверс-инжиниринг неизвестного микроконтроллера

Reading time44 min
Views16K


Сложная завязка


Предыстория...


В рамках моей работы над реверс-инжинирингом электронных eInk-ценников мне довелось столкнуться с интересной проблемой. Конкретная компания (Samsung Electro Mechanics/SoluM) перешла с использования сторонних чипов, происхождение которых мне удалось выявить (Marvell 88MZ100) на новый чип, который стала применять со своими ценниками следующего поколения.

Казалось, что это их собственный чип, разработанный силами компании именно для этой цели. Браться за реверс-инжиниринг такой штуки – дохлый номер. Друг дал мне несколько ценников с такими чипами – повозиться. Оказалось, они бывают двух типов: одни с сегментированным дисплеем на электронных чернилах, а другие – с обычным графическим дисплеем на электронных чернилах. Главный чип в обеих моделях один и тот же, поэтому первым делом я взялся за устройство с сегментированным дисплеем, поскольку оно проще, и на его примере легче разобраться с неизвестной системой. Было не вполне ясно, с чего начать, но, конечно же, как раз такие задачки всегда самые интересные! 

Исследование



Глупо пытаться решить кроссворд, не прочитав вопросы к нему. Столь же глупо браться за реверс-инжиниринг устройства, не собрав сперва всю информацию, которая о нем уже имеется. Итак, что нам исходно известно? Протокол беспроводной передачи данных, вероятно, такой как обычно, поскольку ни одна компания не захочет мигрировать на новый либо поддерживать для своих клиентов сразу два протокола, не спеша выполняя миграцию. Старый протокол был ZigBee-подобным на 2,4 Ггц, поэтому новый, вероятно, такой же. Вот фото платы с обеих сторон.

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

Чернобыль ч.4. Авария

Reading time23 min
Views45K

Автор: Александр Старостин

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

"...Посыпалась штукатурка, все здание заходило… свет потух, потом восстановилось аварийное питание. Я отскочил от места, где стоял, потому что ничего там не видел. Видел только, что открыты главные предохранительные клапаны. Открытие одного ГПК - это аварийная ситуация, а восемь ГПК - это уже было такое… что-то сверхъестественное..."

Лучше тех, кто видел ЭТО своими глазами, не расскажет никто.

Читать далее

Embedded Linux в двух словах. Первое

Reading time9 min
Views70K

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

Платформой послужит плата BeagleBone Black с процессором производства Техасских Инструментов AM3358 и ядром Arm Cortex-A8, и, чтобы не плодить мигающие светодиодами мануалы, основной задачей устройства будет отправка смайлов в топовый чат, широко известного в узких кругах, сайта,  в соответствии с командами от смайл-пульта. Впрочем, без мигания светодиодами тоже не обошлось.

Читать далее

Об одной недокументированной особенности умножения и деления на процессорах x86

Reading time4 min
Views9.5K

Начиная с процессора 80286 компания Intel поддерживала полную совместимость «снизу-вверх» в системе команд. То есть если какая-то из команд процессора дает такой-то результат на 8086, то и на более поздних процессорах результат будет точно таким же (сейчас не будем рассматривать ошибки типа неправильного деления в Pentium I).

Но так ли это? Что за вопрос! Ведь если бы совместимость не сохранялась, то старые программы не могли бы выполняться, а ведь до сих пор на любом компьютере можно поностальгировать запустив Norton Commander или Tetris. Однако не все так просто… Начиная с 8080 в процессорах Intel есть регистр флагов, состояние которого определяется результатом последней команды вычисления данных. Все флаги в нем давно описаны и поведение их строго зафиксировано. Кроме двух исключений.

Читать далее

Я выпустил Grafar — JS-библиотеку для визуализации

Reading time3 min
Views13K

После пяти лет в столе я готов представить свою библиотеку для визуализации — grafar. У нас есть: 3D, реактивные вычисления и самое простое АПИ для построения математических графиков прямо в браузере. В статье рассказываю, что я сделал и как этим пользоваться.

Читать далее

Топ-32 оптических иллюзий движения от японского художника @jagarikin

Reading time3 min
Views68K
image

(1)

Есть такой японский цифровой художник じゃがりきん (jagarikin), который экспериментирует с иллюзией движения (обратный фи-феномен), когда пиксели не двигаются, а просто меняют цвет. Его работы репостнули Илон Маск и Стивен Пинкер. За полгода я хорошенько поизучал его работы (отмотал «Твиттер» на 5 лет) и выбрал 32 самых крутых и залипательных. Отметьте для себя, какая иллюзия приковала ваше внимание больше всего, и поделитесь в комментариях.

Канал в Telegram Cognitive Illisions, где я буду делиться самыми вырвиглазными находками, как хакнуть мозг через восприятие.

Осторожно: 1) Гифки тяжелые! 2) Много ярких мигающих картинок!

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

200 ТОП CPA сетей для продвижения продуктов

Reading time4 min
Views90K


Довольно часто возникает вопрос, где, как и какими средствами продвигать свои продукты и решения. Одним из решений данной проблемы выступают CPA сети. CPA — Cost Per Action (англ. цена за действие) — модель оплаты интернет-рекламы, при которой оплачиваются только определенные действия пользователей на сайте рекламодателя.

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

Поскольку, на данный момент, таких сетей довольно много, возникает закономерный вопрос, как правильно подобрать CPA сети в России, Украине, или как оценить зарубежные CPA сети для максимальной отдачи. Задавшись данной цель и была собрана подборка из 200 сетей. Приятного изучения!

P.S. Большое спасибо компаниям HotTelecom, Freeje и Telnum за помощь в создании данной статьи. Отдельная благодарность Дмитрию Булгакову, за терпение и настойчивость.
Читать дальше →

Как разработать микросхему. Собственный процессор (почти)

Reading time6 min
Views43K

Как же разработать свою микросхему. Задался я этим вопросом, когда я захотел создать собственный процессор. Пошёл я гуглить и ничего годного не нашёл. Ответы в основном два։ "Ты не сделаешь свой процессор, потому что слишком сложно" и "Забей и собери компьютер из комплектующих".

Очевидно что это меня не устаивает, поэтому я решил изучить вопрос серьезнее. Оказалось можно сделать свой процессор описав его с помощью Verilog и FPGA. Купил плату в Китае, 3 года спокойным темпами написал свой процессор, оттестировал, скомпилировал и залил на FPGA. Но мне этого не достаточно.

Читать далее

Парочка интересных методов Console

Reading time3 min
Views10K
Доброго времени суток, друзья!

В этой небольшой заметке я хочу поделиться с Вами информацией о некоторых методах объекта Console, которые можно использовать наряду с console.log().

Полный список методов можно посмотреть здесь.

От слов — к делу. Да, для работы будет использоваться Chrome.

Console.debug() и сonsole.info()


Console.debug() и console.info() служат для вывода информационных сообщений в консоль и, по сути, являются аналогами console.log(). Одна из особенностей console.debug() состоит в том, что выводимое этим методом сообщение отображается только если консоль настроена на показ сообщений уровня отладки (для Chrome — галочка у Verbose вкладки Levels).
Читать дальше →

Как использовать консоль JavaScript: выход за пределы console.log ()

Reading time3 min
Views13K
Привет, Хабр! Представляю вашему вниманию перевод статьи «How to use the JavaScript console: going beyond console.log()» автора Yash Agrawal.

Один из самых простых способов отладки чего-либо в JavaScript — вывод материала с помощью console.log. Но есть много других методов, предоставляемых консолью, которые могут помочь улучшить отладку.

Давайте начнем.

Самым базовым вариантом использования является вывод строки или группы объектов JavaScript. Довольно просто,

console.log('Is this working?'); 

Теперь представьте сценарий, когда у вас есть куча объектов, которые вам нужно вывести в консоль.

const foo = { id: 1, verified: true, color: 'green};
const bar = { id: 2, verified: false, color: 'red' };

Самый интуитивно понятный способ вывода просто console.log (variable) несколько раз. Проблема становится более очевидной, когда мы видим, как оно отображается в консоли.

image

Как видите, имена переменных не видны, что не очень удобно. Это можно решить объединив все переменные в единый console.log ({foo, bar}). Это также уменьшает количество строк console.log в нашем коде.
Читать дальше →

Используем console.log() в Chrome на полную

Reading time3 min
Views43K


Сложно представить себе разработку на JS без вывода информации в консоль. Говоря метафорически, console.log() — лекарство от большинства болезней кода.


Отладка — почти как расследование преступления, где главный преступник тоже вы — Филипе Фортес


Но помимо повсеместно используемой функции console.log(), есть ещё много инструментов, позволяющий сильно упростить процесс. Давайте разберём некоторые из них на простых примерах.

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

Используй console.log () как про

Reading time2 min
Views24K

Использование console.log() для отладки JavaScript - самая распространенная практика среди разработчиков. Но есть еще кое-что ...

Объект console обеспечивает доступ к отладочной консоли браузера. Особенности того, как она работает, варьируются от браузера к браузеру, но де-факто существует набор функций, которые обычно предоставляются.

Читать далее

I2P over Yggdrasil: анонимность в меш-сетях

Reading time5 min
Views20K

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

Yggdrasil – один из немногих работоспособных протоколов меш-сетей. Основная концепция заключатся в автоматической маршрутизации во внутренней IPv6 подсети (200::/7) и абсолютной масштабируемости. Yggdrasil является полностью одноранговой сетью: не существует каких-либо «мастер-узлов», которым делегируется какая-то глобальная ответственность.

С версии 2.36.0 i2pd имеет несколько новых конфигурационных параметров, главный из которых meshnets.yggdrasil = true Этот параметр не зависит от конфигурации IPv4 и IPv6. В частности, реальные сетевые интерфейсы могут быть отключены. В таком случае I2P-роутер будет работать в режиме Yggdrasil-Only.

Подробнее об этом

Yggdrasil Network: Заря бытовых меш-сетей, или Интернет будущего

Reading time11 min
Views47K

Плавно наступает эпоха меш-сетей. Как минимум, этот термин все чаще и чаще появляется в информационной сфере. Что привлекает внимание сетевиков и почему в заголовке статьи фигурирует понятие «бытовая меш-сеть»? Попробуем разобраться в вопросе, взяв для примера сеть Yggdrasil, как один из многообещающих прототипов. Статья рассчитана на широкий круг читателей.

Читать далее

Общее введение в I2P

Reading time22 min
Views110K

В этой статье пойдет речь про I2P — некоммерческую сингулярность сетевой приватности и анонимности, где никто кроме вас не знает куда и кто передает вашу информацию. Сеть I2P (расшифровывается как «Invisible Internet Project», Проект невидимого интернета) — это оверлейная децентрализованная одноранговая сеть. Оверлейная — значит работает поверх других сетей, например, обычного интернета; децентрализованная — распределенная, не имеющая единой точки отказа: упадет один узел, полсети, или во всей сети останется 3 пользователя — I2P все равно будет функционировать. I2P является одноранговой сетью, так как все участники имеют равные права и возможности: каждый пользователь скрытой сети строит свои туннели через других участников и сам является потенциальным звеном в цепочке другого пользователя. При этом естественная сетевая активность никак не компрометирует абонента перед домашним провайдером или участниками скрытой сети.

Читать!

Дурацкие идиомы английского языка, которые не имеют смысла (на первый взгляд)

Reading time6 min
Views112K

В английском языке очень много идиом и фразеологизмов. И смысл многих из них просто невозможно понять, если не знаешь значение фразы. 

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

Читать далее

Краткая история эволюции proof-of-work в криптовалютах. Часть 1

Reading time7 min
Views21K
Предлагаю вашему вниманию перевод статьи «The Proof-of-Work in Cryptocurrencies: Brief History. Part 1» Рэя Паттерсона (Ray Patterson) с сайта Bytecoin.org.

До начала времен


Понятие Proof-of-work – «доказательство (проделанной) работы» – впервые появилось в работе “Pricing via Processing or Combatting Junk Mail” в 16 г. до рождества Bitcoin в 1993 г. И хотя в данной статье такого термина еще нет (появится через 6 лет), мы будем называть его именно так (PoW для краткости). Какую же идею предложили Cynthia Dwork и Moni Naor в своей работе?

«Чтобы получить доступ к общему ресурсу, пользователь должен вычислить некоторую функцию: достаточно сложную, но посильную; так можно защитить ресурс от злоупотребления»

Если провести аналогию, Рыбнадзор обязывает Джереми Уэйда немного потрудиться, чтобы получить доступ к местному пруду – например, посадить несколько деревьев и прислать фото саженцев. При этом Джереми должен быть в состоянии с ней справиться за разумное время: до того, как все рыбы будут отравлены выбрасываемыми в окружающую среду веществами. Но, с другой стороны, работа не должна быть элементарной, иначе толпы рыбаков быстро опустошат весь пруд.

В цифровом мире придумать пример подобной работы на самом деле не так тривиально.
Читать дальше →

Краткая история эволюции proof-of-work в криптовалютах. Часть 2

Reading time10 min
Views17K
Предлагаю вашему вниманию перевод статьи «The Proof-of-Work in Cryptocurrencies: Brief History. Part 2» Рэя Паттерсона (Ray Patterson) с сайта Bytecoin.org.

«Краткая история эволюции proof-of-work в криптовалютах. Часть 1» находится тут.


Скрещивание


К середине лета 2013 года в строю уже находилось больше сотни альткоинов, причем почти половина появилась именно за последние пару месяцев. Стоит ли говорить, что почти все «новички» были форками Litecoin и использовали scrypt? Другим трендом сезона стал новомодный Proof-of-Stake от PPcoin, так что комбинацию scrypt+PoS можно было назвать «стандартным набором начинающего алькоинера».

Такая (количественная) популярность scrypt и начало экспоненциального роста сложности Bitcoin привели к простой мысли: scrypt-ASIC’и появятся в ту же секунду, как только это станет выгодно. И хотя гигантский ноябрьский пузырь – когда Bitcoin дошел до $1200 – еще не начал даже надуваться, поиски новой PoW функции начались снова.

Как можно разнообразить стандартную хэш-функцию? Например…
Читать дальше →

Bitcoin: основные принципы майнинга

Reading time8 min
Views624K

(источник)

Про Bitcoin (BTC) на Хабре писали много (в последнее время даже чересчур много). Как он работает, об интересе к нему со стороны правительства и спецслужб. Биткойн не раз пытались похоронить и затем откопать назад. Даже проводили экскурсии на страусиную ферму. Но как-то, глядя на это, не складывалось целостной картины.

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

Чума

Reading time8 min
Views35K

Автор: Сергей Ветров

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

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

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

Читать далее

Information

Rating
Does not participate
Registered
Activity