Pull to refresh
4
0.1
Виктор @vitecd

User

Send message

Осваиваем 3-рублёвые микроконтроллеры PADAUK

Level of difficultyMedium
Reading time8 min
Views35K
image

Тайваньская фирма Padauk по праву считается производителем самых дешевых корпусных микроконтроллеров. Большим функционалом они не обременены, но несложные задачки для простых устройств могут выполнять.
Читать дальше →
Total votes 57: ↑56 and ↓1+76
Comments56

Необычные приёмы отладки, которые браузер от вас скрывает

Level of difficultyMedium
Reading time8 min
Views16K

Список неочевидных, но при этом полезных хаков, которые позволят использовать отладчик вашего браузера1 более полноценно. Для понимания материала статьи потребуется как минимум средний уровень владения инструментами разработчика.
Читать дальше →
Total votes 72: ↑71 and ↓1+96
Comments12

Конструкторы, деструкторы, операторы — частые практики при программировании на C++

Level of difficultyMedium
Reading time16 min
Views4K

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

Читать далее
Total votes 3: ↑3 and ↓0+5
Comments2

Как я создал 175 шрифтов при помощи Rust

Level of difficultyEasy
Reading time19 min
Views7.2K

В декабре 2023 года я выпустил 175 Pixel Font Megapack, за которым вскоре последовали 42 отдельных пака для каждого из семейства шрифтов. Я создал собственный тулчейн для генерации, тестирования и развёртывания этих шрифтов... на Rust! В посте я расскажу об этом процессе.

Читать далее
Total votes 39: ↑37 and ↓2+54
Comments5

Дневник разработки настольной игры СУПЕРТАНК по «танчикам» для Dendy. Часть 17. Про грабли краудфандинга

Level of difficultyEasy
Reading time11 min
Views2.2K

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

Для начала представлюсь, если вдруг кто со мной не знаком. Меня зовут Юрий Егоров. Я автор нескольких изданных настольных игр, руководитель отдела развития продаж издательства Hobby World и коллекционер настольных игр. Настольными играми я занимаюсь практически с пеленок, когда я делал настольную игру по каждой прочитанной художественной книжке или сыгранной видеоигре. Сегодня я расскажу о своем опыте краудфандинга одной из моих игр.

Т.к. кампанию я проводил самостоятельно, за свой счет и своими силами, то собрал все вероятные грабли, которые могут поджидать того, кто выводит свой проект на краудфандинговую площадку. Как говорит мой партнер и издатель: «Если ты не разбираешься в вопросе, все расходы умножь на два, а ожидаемый результат подели на десять». Собственно о треснувших мне в лоб граблях и выводах из этого я и хочу рассказать вам сегодня и надеюсь, что мой рассказ поможет вам в дальнейших подобных граблей избежать.

Читать далее
Total votes 7: ↑5 and ↓2+5
Comments2

Математика прекрасного. Как создать красивую картинку, если ты дилетант, художник или нейросеть?

Level of difficultyMedium
Reading time19 min
Views5.4K

Привет, Хабр, я Павел Бузин, работаю аналитиком в компании Cloud.ru и занимаюсь решением задач, требующих применения различных математических методов, в том числе используемых для машинного обучения. 

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

В этой статье обсудим общие закономерности, так что если вы дизайнер, промпт-инженер или просто неравнодушны к прекрасному, вас ждет путешествие от Древней Греции до современных компьютеров с CAD и генеративными моделями. Математики и технари, добро пожаловать под кат, здесь вы будете чувствовать себя как дома. Гуманитарии, не пугайтесь, всё будет страшно только на первый взгляд.

Читать дальше
Total votes 2: ↑2 and ↓0+4
Comments6

Бложим как фрики

Level of difficultyMedium
Reading time8 min
Views2.1K

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

Будет обмазан Markdown, Hugo, GitHub (в качестве CD и халявного хостинга) и Obsidian

Страдать далее
Total votes 15: ↑12 and ↓3+15
Comments8

Взламываем головное устройство автомобиля Nissan

Reading time22 min
Views18K

В комплекте с моим Nissan Xterra поставлялось современное (на то время) головное устройство с сенсорным экраном, встроенной навигацией, дисплеем камеры заднего вида, мультимедийными функциями и возможностью подключения смартфона. Некоторые из самых продвинутых функций доступны только через приложение NissanConnect, требующее регистрации и подписки. Я никогда не пользовался им и даже не уверен, поддерживается ли оно сейчас.

Разве не здорово было бы добиться выполнения кода на устройстве и даже разрабатывать собственные расширения и приложения?

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

В статье также представлен код, позволяющий воспроизвести эти действия на вашем автомобиле, а также пример приложения, выполняющего задачу логирования GPS-данных. Однако здесь вы не найдёте абсолютно никакой информации по обходу механизмов DRM/защиты от копирования, особенно связанных с навигационными картами и онлайн-сервисами. Весь представленный в статье код и инструкции не дают никаких гарантий, воспроизводите их на собственный риск.
Читать дальше →
Total votes 86: ↑84 and ↓2+110
Comments26

SMBus аккумулятор на bq40z50 — боль, страдания, подводные камни

Level of difficultyEasy
Reading time9 min
Views2.5K

На разработку собственного супер-пупер аккумулятора с "куртизанками и преферансом" нас сподвигли статьи на Хабре:

https://habr.com/ru/articles/350142/ - читаешь и кажется все таким простым

https://habr.com/ru/articles/386099/ - очень все подробно и интересно

https://habr.com/ru/articles/386899/ - вроде тоже ничего сложного и даже кое-какие подводные камни описаны.

Ну всё, будем делать на контроллере bq40z50 супер-пупер аккумулятор, а не это вот все, собранное на коленке, что из Китая возят.

Сначала спроектировали форм-фактор, определились с напряжением 10,8, схемой сборки – 3S3P была выбрана модель ячейки, оптимальная для нас по емкости и току, под нее и будем плясать (забегая сильно вперед, можно сразу сказать, что ключевое – это модель ячейки, основные настройки контроллеров для разных сборок, будут одинаковы, но вот ТОНКИЕ настройки, от которых зависит получится ли у вас в итоге или вы уйдете в запой или, что еще хуже, на форумы техподдержки Texas instruments, вот они все настраиваются индивидуально под каждую ячейку).

Мудрый кот, из мультфильма Том и Джерри в отношении написанного другими людьми учил наc «Don’t You believe it» и только сейчас пройдя этот ад, я понял, насколько он был мудр.

Схема будущей платы была взята из datasheet (SLUSCB3 – 56 страниц) для bq40z50r1 от 2015 года, казалось бы, ничего не предвещало беды.

Ну разве что ошибки в документации, про назначение порта FUSE было написано еще в одной из вдохновивших статей, указанных ранее, поэтому это не было сюрпризом. Тем более, что мы решил «сделать по большому», то есть с дополнительным контроллером заряда и балансировки, с отдельным термистором на силовые транзисторы ну и предохранителем – это была фатальная ошибка, но мы пока об этом не знали.

Читать далее
Total votes 14: ↑13 and ↓1+20
Comments6

Правка скриптов автогенерации cubeMX/cubeIDE

Level of difficultyEasy
Reading time12 min
Views1.1K

На примере добавления дополнительных классов USB (Media Transfer Protocol (MTP) и Smart Card (CCID)) показать каким образом можно вносить изменения в скрипты автоконфигурации для ускорения создания последующих проектов, а также для исправления существующих ошибок в них, чтобы не держать в голове, какие в каком случае постоянно вносить правки для исправления тех или иных ошибок.

Читать далее
Total votes 9: ↑9 and ↓0+13
Comments0

Как фотографировать изображения на ЭЛТ

Level of difficultyMedium
Reading time37 min
Views2.3K

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

Читать далее
Total votes 7: ↑5 and ↓2+6
Comments5

Модернизация IDA Pro. Исправляем косяки процессорных модулей

Reading time10 min
Views5.3K


Привет всем,


Спустя довольно-таки продолжительное время с момента написания первой статьи я всё-таки решил, пусть и по чуть-чуть, но писать статьи на тему модификации/улучшения IDA Pro.


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

Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments1

Запуск Тетриса на осциллографе из 90-х

Level of difficultyMedium
Reading time20 min
Views11K

В этой статья я хочу рассказать о том, как я запустил Тетрис на старом цифровом осциллографе. Без пайки и бега по граблям не обошлось... Зачем я это сделал — просто Just for fun.

Читать далее
Total votes 86: ↑85 and ↓1+110
Comments8

Разбираем ресурсы Twisted Metal 4 (PSX) в Ghidra. Часть 1

Reading time9 min
Views3.6K


Всем привет,


В данной статье я расскажу о реверс-инжиниринге ресурсов игры Twisted Metal 4 для первой Playstation. В качестве основного инструмента я буду использовать Ghidra.


Наверняка вы слышали об игровой серии Twisted Metal. А кому-то, наверное, довелось и поиграть (мне нет). По словам тех, кто играл в четвёртую часть, в игре имеются некоторые неприятные баги. Так вот, реверс-инжиниринг должен помочь исправить их. Поехали…

Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments6

Модернизация IDA Pro. Учимся писать загрузчики на Python

Reading time33 min
Views12K


Привет всем,


цикл статей по написанию разных полезных штук для IDA Pro продолжается. В прошлый раз мы исправляли процессорный модуль, а сегодня речь пойдёт о написании модуля-загрузчика (лоадера) для одной винтажной операционной системы, а именно — для AmigaOS. Писать будем на Python. Также я постараюсь раскрыть некоторые тонкости при работе с релоками (они же relocations), которые встречаются во многих исполняемых файлах (PE, ELF, MS-DOS и т.п.).

Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments5

.NET+Safeguard: Реверсинг без ассемблера

Reading time5 min
Views2.2K

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

Читать далее
Total votes 8: ↑6 and ↓2+6
Comments0

Книга «Аппаратный хакинг: взлом реальных вещей»

Reading time16 min
Views7.7K
imageПривет, Хаброжители!

Встроенные системы трудно атаковать. Различных конструкций плат, процессоров и операционных систем слишком много, и это затрудняет их реверс-инжиниринг. Но теперь все станет проще — вас обучат два ведущих мировых эксперта по взлому аппаратного обеспечения. Пройдите ускоренный курс по архитектуре и безопасности встроенных устройств, узнайте об электрических сигналах, анализе образов прошивок и многом другом. Авторы объединяют теорию с практическими инструкциями, которые вы можете применить на реальном железе. Книга завершается описанием атак на такие устройства, как Sony PlayStation 3, Xbox 360 и лампы Philips Hue. В приложении приведен список всего оборудования, которое понадобится вам для домашней лаборатории, независимо от того, планируете ли вы модифицировать печатную плату или собирать и анализировать графики потребляемой мощности.

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

Мы не ждем, что у вас дома найдется лазерное оборудование, ускорители частиц или другие вещи, которые любителю не по карману. А если такое оборудование у вас есть, например в лаборатории вашего университета, то книга станет еще полезнее. Что касается целевых встроенных устройств, то мы предполагаем, что у вас есть физический доступ к ним и что вам интересно с ними поэкспериментировать. И самое главное: мы предполагаем, что вам нравится изучать новые методы, вы мыслите в рамках обратного проектирования и готовы к глубокому погружению в тему!
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments4

Сказ о том, как я дизассемблировал Supaplex и почти написал клон с 3D графикой

Reading time4 min
Views39K
Картинка для привлечения внимания

Я думаю, большинство людей, кто застал времена DOS и ранних Windows 9x, играли или хотя-бы слышали о такой замечательной игре, как Supaplex. Лично для меня — это игра-легенда. Я до сих пор с трепетом вспоминаю долгие зимние вечера, проведённые в попытке пройти какой-нибудь сложный уровень на стареньком 286-м.

Так сложилось, что я программист. И не просто программист, а программист компьютерных игр. Так что, где-то в 2008 году я занялся написанием движка-«убийцы крузиса» (или что там было круто на тот момент, я уже не помню). Примерно через год меня настигло прозрение, что моих человеко-часов на проект уровня Unreal Engine не хватит. И я решил сделать легкую, «казуальную», версию движка и написать на ней пару простеньких игрушек.

Мой выбор пал на клон Supaplex. Правда, на тот момент уже существовало несколько клонов под Windows и другие платформы, поэтому просто писать все с нуля было неинтересно. Зато в мою голову заползла крамольная мысль: а что, если дизассемблировать оригинальный Supaplex и сделать игру с логикой, «идентичной натуральной». Такая задача казалась крайне заманчивой, и я взялся за её осуществление. Я заказал 3D-модельки у одного хорошего знакомого фрилансера и, пока он был занят моделлингом, я приступил к изучению пациента. Сразу предупреждаю, что я уже не помню многих деталей и могу что-то забыть или приврать, всё-таки это было довольно давно.
Читать дальше →
Total votes 75: ↑71 and ↓4+67
Comments34

CAN sniffer

Reading time9 min
Views84K
Непосредственно сама CAN шина используется уже много где, мне интересно её использование в автомобиле, хотя этой сферой можно и не ограничиваться. Тем более пару лет назад подвернулась такая возможность. Я посмотрел на общие спецификации — вроде бы ничего особо сложного нет. Посмотрел на программы, которые встречаются в интернете — и ни одна мне не приглянулась, у каждой не хватало чего-то такого, что казалось мне нужным на тот момент. Буду изобретать свой велосипед. Делаю свой CAN sniffer далее под катом.
Читать дальше →
Total votes 57: ↑57 and ↓0+57
Comments64

Искусство написания циклов на Python

Reading time4 min
Views89K


Цикл for — самый базовый инструмент потока управления большинства языков программирования. Например, простой цикл for на C выглядит так:

int i;
for (i=0;i<N;i++)
{
  //do something
}

Не существует более изящного способа написания цикла for на C. В сложных случаях обычно приходится писать уродливые вложенные циклы или задавать множество вспомогательных переменных (например, как i в показанном выше коде).

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

Эта статья познакомит вас с самыми полезными трюками по написанию циклов на Python. Надеюсь, она поможет вам ощутить красоту этого языка.
Читать дальше →
Total votes 47: ↑40 and ↓7+45
Comments41
1
23 ...

Information

Rating
3,111-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity