В этой статье я хочу поделиться практическими методами отладки, модификации и устранения багов в 32-х и 64-х разрядных приложениях под ОС Windows, разработанных на языке C/C++, исходные коды которых по тем или иным причинам не стали достоянием общественности.
Этот пробел отчасти можно попытаться устранить, например, с помощью плагина Hex-Rays для IDA Pro, и зачастую удаётся довольно качественно восстановить нужный участок исходного кода, обнаружив в нём проблемное место. Но после этого всегда возникает вопрос - что с этим исправленным кодом делать дальше, как и где его можно использовать? На данном этапе мне всегда хотелось взять этот отдельно декомпилированный фрагмент программы, поменять в нём что-нибудь и затем каким-то чудесным образом «поместить обратно» в программу.
Далее будет описан один из возможных способов реализации этой идеи на практике.
Пользователь
Взламываем игры с помощью Python
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/af7/d0e/089/af7d0e089f260147b7d4dd03f0c5f074.png)
В стародавние времена, когда по земле ходили мамонты, а я был в два раза моложе, среди игрового сообщества пользовалась популярностью компьютерная программа для "взлома" игр под названием ArtMoney. С помощью этой софтины можно было не только облегчить себе жизнь в прохождении хардкорного приключения, модифицировав значения ресурсов в игре, но и просто поразвлечься, изучив полюбившийся проект с разных сторон.
А на днях мне вдруг захотелось вспомнить молодость и поиграть в бумерский диаблойд под названием Titan Quest, выпущенный аж в 2006 году. Да вот только времени на беготню, прокачку, и вот это вот всё, у меня нет. И ArtMoney нет. Зато есть определенные знания программирования. Вот я и решил совместить приятное с полезным, написав аналог ArtMoney на Python, а заодно стать супербогатым, хотя бы в Titan Quest.
Варианты аппаратной реализации USB Type-C, или Когда не требуется Power Delivery
![](https://habrastorage.org/webt/xm/31/ba/xm31baoycfzpr_4ftbowctc7svo.png)
Когда мы в SberDevices делаем новое устройство, работаем над его аппаратной частью, перед нами встаёт вопрос выбора интерфейсов. Важным моментом при выборе является их доступность и совместимость с другими устройствами.
В своих устройствах мы не могли пройти мимо интерфейса USB-C. Помимо того, что он очень популярен в современных девайсах, он серьёзно расширил функциональность USB по сравнению со своими предшественниками. Давайте расскажу о нём поподробнее.
Мы добрались до ядра, или новые возможности AmneziaWG
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/e90/ec5/75b/e90ec575bd012bf7965237d42fded27c.png)
Добрый день!
На связи команда разработчиков Amnezia.
Обычно наши статьи посвящены оригинальному клиенту Amnezia, но сегодня мы будем упоминать AmneziaVPN весьма косвенно, так как речь пойдет в первую очередь о протоколе AmneziaWG и о связанных с ним проектах. Мы расскажем про нативный клиент AmneziaWG. Как из конфигурации с протоколом WireGuard сделать AmneziaWG, и как развернуть свой VPN с AmneziaWG на сервере без приложения.
Честно говоря, мы не ожидали столь высокой заинтересованности протоколом. Нам известно, что некоторые коммерческие VPN уже продают конфигурации с готовым VPN решением, где в качестве протокола, используют AmneziaWG вместе с приложением Amnezia. AmneziaVPN - это open source проект, который могут использовать для VPN, в том числе и для коммерческих VPN решений все желающие, мы надеемся, что эта тенденция будет продолжаться.
Также ,нам стало известно, что некоторые очень популярные производители интернет - оборудования будут поддерживать AmneziaWG, чему мы тоже очень рады. Мы уже писали об AmneziaWG в прошлых статье, но для дальнейшего рассказа важно напомнить о принципе его работы.
Windows hook: просто о сложном
![image](https://habrastorage.org/files/011/68d/bec/01168dbec07d45d78e48a598432b9ebe.png)
Что такое хук функций и для чего он нужен? В переводе с английского «hook» — ловушка. Поэтому о назначении хуков функции в Windows можно догадаться — это ловушка для функции. Иными словами, мы ловим функцию и берем управление на себя. После этого определения нам открываются заманчивые перспективы: мы можем перехватить вызов любой функции, подменить код на свой, тем самым изменив поведение любой программы на то, которое нам нужно (конечно, в рамках определенных ограничений).
Целью данной статьи является демонстрация установки хука и его непосредственная реализация.
Как root-права и альтернативные прошивки делают ваш android смартфон уязвимым
![](https://habrastorage.org/r/w780/getpro/habr/upload_files/a41/aa7/430/a41aa74304c91a1e385f8fcf8905cc19.jpg)
Если вы являетесь регулярным читателем Хабра, то должно быть заметили что за последние несколько лет вышло немало статей о сборе персональных данных с мобильных устройств, и о попытках противодействия этому, было несколько отличных статей с детальными инструкциями по превращению своего смартфона на базе ОС Android в настоящую цитадель приватности и безопасности.
Часто для этого рекомендуется получение прав суперпользователя в системе (root-права), удаление системных приложений от Google и от производителя устройства, или даже полная замена стандартной ОС на альтернативные сборки, чаще всего LineageOS (бывший CyanogenMod). При этом первым шагом в этом процессе всегда будет так называемая "разблокировка загрузчика". Во время её выполнения устройство несколько раз покажет нам страшные предупреждения о том, что теперь оно станет более уязвимо для злоумышленников, но мы смело нажимаем "подтвердить" и шьём root или самую свежую сборку кастомной прошивки, не задумываясь о том какие проблемы создаёт нам незаблокированный загрузчик.
Я хочу рассказать вам как погоня за приватностью и безопасностью может привести к бóльшим проблемам чем использование стоковых устройств, как при физическом доступе к устройству можно установить в android бэкдор который может пережить сброс до заводских настроек, как можно вытащить данные из зашифрованного устройства не зная пин-код, не входя в систему и без запущенного режима отладки в меню разработчика.
Интересующихся приглашаю под кат.
Типы данных в Python. Что нужно о них знать?
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/c6c/055/4d1/c6c0554d10e2298309fca6471eb62958.png)
Всем привет! Меня зовут Дима. Я являюсь Backend Python Developer'ом. Хочу оставить здесь скомпонованную информацию, которой когда-то давно не хватало мне. А именно, расскажу Вам про основные типы данных в Python
, как они устроены и в чём их отличие.
Реверс-инжениринг драйверов USB-устройств на примере машинки на радиоуправлении
![image](https://habrastorage.org/getpro/habr/post_images/c71/e1d/7be/c71e1d7bec576db6d95fd12b25098e03.png)
Один из аргументов любителей Windows перед любителями Linux – недостаток драйверов для оборудования под эту ОС. С течением времени ситуация выправляется. Сейчас она уже гораздо лучше, чем 10 лет назад. Но иногда можно встретить какое-то устройство, которое не распознаётся вашим любимым дистрибутивом. Обычно это будет какая-нибудь USB-периферия.
Красота свободного софта в том, что эту проблему можно решить самостоятельно (если вы программист). Конечно, всё зависит от сложности оборудования. С трёхмерной веб-камерой у вас может и не получится – зато многие USB-устройства довольно просты, и вам не придётся нырять в глубины ядра или закапываться в С. В этом уроке мы с вами при помощи Python по шагам изготовим драйвер к игрушечной радиоуправляемой машинке.
Процесс по сути будет реверс-инженирингом. Сначала мы подробно изучим устройство, затем сохраним данные, которыми оно обменивается с драйвером в Windows, и попытаемся понять, что они означают. Для нетривиальных протоколов вам может потребоваться как опыт, так и удача.
Алиса и Suno сочиняют песни
![](https://habrastorage.org/r/w780/getpro/habr/upload_files/203/0aa/21a/2030aa21a3984127b4c3b551e36fb99c.jpg)
Привет всем! Недавно я познакомился с сервисом создания музыки Suno (о котором было много публикаций на Хабре, в том числе здесь, здесь и здесь). Я был впечатлен качеством сгенерированных треков и тем, что она могёт на русском языке. Это натолкнуло меня на мысль: почему бы не объединить Suno с Алисой, чтобы Алису можно было не только попросить что-то сыграть, но также придумать, что она сыграет. Так родилась идея создания навыка для Алисы.
Если вас заинтересовало, как настроить это для себя, ниже инструкция и видео в котором Алиса придумывает песню про Хабр.
Чтение на выходные: «Вы, конечно, шутите, мистер Фейнман»… Ричарда Фейнмана
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/f80/517/43d/f8051743d5cc68591dd3be1a61d04889.png)
Сегодня в рубрике представляем книгу Ричарда Филлипса Фейнмана — американского физика, Нобелевского лауреата и вообще крайне и незаурядного человека. Сложно сказать, чем он запомнился обществу больше: своим вкладом в развитие квантовой электродинамики или разносторонними талантами и харизмой. Он проводил эксперименты, трудился как профессор, выступал с лекциями по всему миру, а ещё — играл на африканских барабанах и однажды представил в галерее собственную выставку художественных работ. Открытость всему новому сочеталась с непоколебимой честностью, в какой-то степени — настырностью, и непосредственностью в суждениях. Например, однажды на судебном заседании Ричард Фейнман стоял на том, что в танцах на сцене полуголых девушек нет ничего такого, из-за чего стоило бы поднимать сыр-бор. Тем более, если 5–10% населения штата тоже не видит в этом ничего страшного. Такой математический расчет. В тогдашние пуританские времена — смелые суждения в квадрате.
Путеводитель по Docker. От основ контейнеризации до создания собственного докера
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/6ad/310/a3b/6ad310a3b43f961dbcaeda81850bf0c1.png)
Добрый день! Сегодня мы поговорим о контейнеризации, а именно о наиболее популярной на данный момент технологии её реализации - Docker. Также вашему вниманию будут представлены уязвимости при реализации данной технологии.
Полумошеннические конторы по ремонту ПК: любопытные эпизоды и советы
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/2c0/0fc/6da/2c00fc6da4b6b586452497e3b6142735.png)
В предыдущей статье я поделился внутренней кухней полумошеннических контор по ремонту техники. Вместе с читателями мы разобрались со схемами работы самопровозглашенных мастеров и их уловками. Однако кое-что не попало в статью. Проанализировав пожелания читателей, я решил, что необходимо написать продолжение. Поэтому сегодня в блоге ЛАНИТ вас ждут не только мои личные байки, но и небольшой чек-лист по выбору действительного хорошего мастера по ремонту.
Как работают полумошеннические конторы по ремонту компьютеров: немного инсайда и советов
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/24d/8fc/0cf/24d8fc0cff157aea43f47e2a00bd4923.png)
В студенчестве мне «посчастливилось» познакомиться изнутри с одной из таких контор. Поскольку их бизнес до сих пор процветает, подумал, что не лишним будет кратко рассказать, как там все устроено, привести несколько любопытных примеров и подсказать, как избежать огромных трат, если такие дельцы вдруг пришли к кому-то из ваших знакомых, кто не сильно разбирается в технике.
Убираем YouTube Shorts из браузера
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/9ae/e6f/aef/9aee6faef5a02eb448a30eb8aeef7e7a.png)
Избавьтесь от YouTube Shorts в вашем браузере с помощью расширения Ublock Origin и ряда простых и незамысловатых шагов
Использование аккумулятора от iPhone при разработке носимой электроники
Довольно часто у меня возникает задача разработки портативных устройств с питанием от одной ячейки Li-ion аккумулятора. И, если заказчика обычно это не беспокоит, то у меня, как у опытного инженера, при виде такого ТЗ по спине пробегает дрожь. Это связано с тем, что оценка уровня заряда аккумулятора, а также оставшегося времени работы — это очень непростая задача, хотя на первый взгляд может показаться иначе.
![](https://habrastorage.org/webt/ws/kh/og/wskhog7wo9xnqs6b3-perfg2zpe.png)
Есть несколько вариантов действия в таком случае, о них поговорим ниже.
Полноценный трехпортовый USB-Serial адаптер на STM32 Blue Pill (STM32F103C8T6)
Некоторое время назад мне в очередной раз потребовался USB-Serial адаптер. И не просто адаптер c RX/TX, а чтобы еще присутствовали управляющие сигналы. И не один UART, а несколько. И еще желательно, в виде одного композитного устройства, чтобы все это хозяйство не занимало больше одного USB-порта. Так и началась эта история...
Как начать использовать USB Type-C в своих разработках
![](https://habrastorage.org/webt/so/hg/hh/sohghhosc93o-6mbiulgcvfxiv8.jpeg)
В современных embedded-устройствах используется огромное количество различных разъемов, таких как USB Type-B, miniUSB, microUSB и так далее. Все они отличаются форм-фактором, максимальной пропускной способностью и другими различными характеристиками. Самым верным решением в данной ситуации было бы минимизировать количество используемых разъемов и остановиться на каком-то одном, «едином» для большинства разработок. Наиболее перспективным выглядит использование разъема Type-C. В нем объединены невероятная пропускная способность с высокой мощностью питания. Такие производители, как Apple, Huawei, Sony уже внедряют разъем Type-C в свои разработки, постепенно отказываясь от использования «старых» разъемов. А чем embedded-разработчики хуже?
В данной статье мы приведем общую информацию, необходимую для практического применения Type-C. Наиболее полезной она будет для новичков в сфере embedded, но надеемся, что каждый найдет в ней что-то интересное.
Как получить 9В/12В от зарядного с Quick Charge (на примере STM32)
Чем может быть полезна быстрая зарядка
С увеличением ёмкости аккумуляторов телефонов потребовалось увеличить и мощность зарядных устройств, чтобы достичь маленького времени зарядки, для чего и нужно было увеличивать выходную мощность: напряжение, ток. Таким образом зарядные с Quick Charge 3.0 кроме 5 В могут выдавать 9В/12В/20В +возможность регулировки с шагом 0.2 В (до 12 В).
Ввиду распространенности ЗУ с этой технологией появляется интерес использовать их для получения повышенного напряжения без дополнительных преобразователей.
Прекратите скручивать (восклицательный знак)
От винта! Готовимся правильно к запуску беспилотника — от постановки на учет до разрешения на полеты
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/792/9d8/002/7929d80020df1dfc1dd218ba83b64958.png)
Не так давно правовое регулирование использования беспилотных летательных аппаратов (БЛА) гражданского назначения отсутствовало вовсе — как в России, так и в мире. Но быстрые темпы развития беспилотной авиации заставили законотворцев задуматься о государственном контроле в этой отрасли.
Сегодня в России существуют законодательно закрепленные процедуры регистрации и учета гражданских беспилотников, а также правила полетов. В этой статье попробуем разобраться, как легально поднять ваш беспилотник в воздух и немного поговорим о том, какие изменения нас могут ожидать в этой области в скором времени.
Информация
- В рейтинге
- 2 554-й
- Откуда
- Россия
- Зарегистрирован
- Активность