Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Собирайте цепочки из трех и более одинаковых фишек, чтобы восстановить величие школы волшебников! Волшебство и захватывающие приключения ждут вас уже с первых шагов!

Волшебный особняк

Казуальные, Три в ряд, Головоломки

Играть

Топ прошлой недели

  • solenakrivetka solenakrivetka 7 постов
  • Animalrescueed Animalrescueed 53 поста
  • ia.panorama ia.panorama 12 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
16
andrew.svet
Arduino & Pi

Lcd 128x64 и много боли⁠⁠

5 лет назад

Пост - крик души, но вдруг кто поможет советом...

Ввязался в авантюру портировать прошивку OpenTX на мой любимый dx6i. Привык к нему, но недостатков у него полно, хотя большинство можно решить софтом. Схему зареверсить проще всего, с протоколами и алгоритмами тоже особо проблем нет, а вот экран положил свинью... С виду обычный cog 128x64 с параллельным интерфейсом. В душе тлела Надежда что что-то попсовое, что стоит только определится с распиновкой и дело в шляпе...

Lcd 128x64 и много боли

Ага, не с моим везением. По схеме видно 5 пинов управления (предположительно). Так вот логика подсказывает что 2 из них должны быть стабильно 1 а на 3 должна быть модуляция ( типа cs1, a0, rd) - но логический анализатор говорит - 2 пина 0в, 3 пина 3.3в, никакой модуляции, свободен...

Как, черт побери? Что это за зверь такой? Как разгадать что за контроллер рулит этим даже не знаю как его назвать...

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

Есть у кого идеи как этого зверя победить?

Показать полностью 1
[моё] Lcd дисплей Реверс-инжиниринг Боль
12
2093
TasH.KenT
TasH.KenT
Информационная безопасность IT

Как я нашел способ отследить всех водителей «Ситимобил»⁠⁠

5 лет назад

В субботу вечером я, как всегда, сидел и снифил трафик со своего телефона. Внезапно, открыв приложение «Ситимобил» я увидел, что один интересный запрос выполняется без какой-либо аутентификации.


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


ТЫЦ ( большая гифка, не уместилась)


С чего все началось?


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


Я использовал mitmproxy (Man In The Middle Proxy) — программа для атаки «человек посередине». Есть много инструкций по её установке и настройке, а общий принцип такой:


1. Подключаешься к домашнему WiFi с телефона и компьютера

2, Запускаешь mitmproxy на компьютере

3, В телефоне прописываешь локальный адрес компьютера как основной прокси (уже можно смотреть внутрь http)

4, Скачиваешь и подтверждаешь сертификат на телефоне (позволяет заглядывать внутрь https)


Теперь, грубо говоря, весь трафик с телефона идет сначала на компьютер, расшифровывается, показывается на экране, зашифровывается и идет дальше. И наоборот.


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


Bug bounty Mail


Я оформил всю информацию на hackerone и отправил на рассмотрение. После опыта взаимодействия с баг баунти Яндекса, я не рассчитывал на быстрый ответ, однако уже через 3 минуты некто «3apa3a» закрыл мой репорт. Отличная скорость, Mail!


В ответе написали, что данные показываются пользователю в приложении, а значит не являются чувствительными и защищать их не надо.

Ну что ж. Раз это публичные данные, давайте развлекаться!


Как получить данные?


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

https://c-api.city-mobil.ru/getdrivers

При этом в теле запроса нужно указать интуитивно-понятные параметры:

{

"latitude": LAT,

"longitude": LON,

"limit": 10,

"method": "getdrivers",

"radius": 5,

"tariff_group": [ 4, 5, 6 ],

"ver": "4.33.0"

}

Здесь tariff_group — массив классов авто. Например, эконом, комфорт, бизнес и т.п.

При этом поля radius и limit не работают, как надо, но и убрать их нельзя.


В итоге, запрос на получение информации можно отправить просто из командной строки:

curl -X POST --data '{ "latitude": 55.7, "limit": 10, "longitude": 37.6, "method": "getdrivers", "radius": 5, "tariff_group": [4], "ver": "4.33.0" }' https://c-api.city-mobil.ru/getdrivers

В ответ приходит JSON с данными о 10 ближайших к (LAT, LON) автомобилях:


Ответ сервера:

{

"drivers":[

{

"id":"1c1f6779f893af6fe5bf4509af7366cd",

"lt":"55.7025061",

"ln":"37.5954334",

"direction":"3",

"CarColorCode":"000000",

"car_type":"comfort_plus"

},

{

"id":"1a13d0daad9b6a3fa2b3d04a5b6f8c2a",

"lt":"55.7019682",

"ln":"37.6054896",

"direction":"3",

"CarColorCode":"000000",

"car_type":"comfort"

},

{

"id":"c7c1634fae41a68924083af1d496d0a7",

"lt":"55.7014223",

"ln":"37.6067352",

"direction":"3",

"CarColorCode":"000000",

"car_type":"comfort_plus"

},

{

"id":"f15ce054ccdaa268b16a0904b9eecdae",

"lt":"55.6956527",

"ln":"37.5972063",

"direction":"4",

"CarColorCode":"000000",

"car_type":"sedan"

},

{

"id":"94ebc0fcc644bb1da4b57e7d23942e6d",

"lt":"55.694786",

"ln":"37.5982642",

"direction":"4",

"CarColorCode":"000000",

"car_type":"sedan"

},

{

"id":"7251c45ee945c9cb839d69d5902b9f17",

"lt":"55.7009351",

"ln":"37.6094206",

"direction":"3",

"CarColorCode":"000000",

"car_type":"comfort"

},

{

"id":"cb9dab2ba7379c3db817dd76ec68e6c5",

"lt":"55.6950137",

"ln":"37.6041883",

"direction":"8",

"CarColorCode":"000000",

"car_type":"sedan"

},

{

"id":"761891d9c1129b1678c3eba616249e2b",

"lt":"55.6944542",

"ln":"37.5951122",

"direction":"2",

"CarColorCode":"000000",

"car_type":"sedan"

},

{

"id":"4f0e835751cadaa5d5386f0e1374f315",

"lt":"55.7066516",

"ln":"37.6011767",

"direction":"7",

"CarColorCode":"000000",

"car_type":"sedan"

},

{

"id":"2eb330cad5e5d9c87e6d0600a9ff10e8",

"lt":"55.7066801",

"ln":"37.6009127",

"direction":"8",

"CarColorCode":"000000",

"car_type":"comfort"

}

],

"nearest":{

"duration":420

},

"service_status":1

}

Посмотрим, что тут у нас

{

"id":"2eb330cad5e5d9c87e6d0600a9ff10e8",

"lt":"55.7066801",

"ln":"37.6009127",

"direction":"8",

"CarColorCode":"000000",

"car_type":"comfort"

}

Идентификатор, широта, долгота, код направления (Северо-запад), код цвета и тип авто. Отлично!

Нужно больше данных!


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


Но решение есть. Я написал алгоритм, похожий на заливку, который запускает запросы на поиск с координатами водителей, найденных на прошлом этапе. Ещё я все это дело распараллелил, а прокси подключать не пришлось — mail позволяет мне делать все несколько тысяч запросов за минуту с одного и того же ip.


В результате за пару десятков секунд собирается информация о всех таксистах «Ситимобил», которые сейчас на линии в Москве и Московской области. Именно так получается гифка из начала статьи.


Думаете, сколько водителей на линии в воскресенье утром?

В 11 утра их было 4374


Но разве нас интересует срез? Давайте посмотрим в динамике.

Найс. А как эти водители распределены в пространстве?

Ну и напоследок давайте проследим за каким-нибудь водителем.

Вот, видно маршрут. А ведь можно еще поднять частоту опроса и получить более точные данные.


И что такого?


А то, что данные вроде как важные.


Во-первых, можно оценить долю рынка и доходность компании «Ситимобил».


Во-вторых, на месте другого агрегатора (например, Яндекс.Такси) я бы использовал данные о положении таксистов конкурентов. Для ценообразования, например. Или вычислил водителей, работающих и там, и там на основе корреляций в геопозициях.


В-третьих, раз можно отследить конкретного таксиста, можно отследить и его клиента. Это уже серьёзно. По факту, можно узнать, куда уехал человек на «Ситимобиле», если вы знаете, где он сел в такси.


Заключение


Не нужно недооценивать важность данных, которые показываются клиенту.


Если Mail  все еще считают, что эту информацию не нужно защищать, то Яндекс.Такси, вот вам гора данных. С её помощью вы сможете забрать часть прибыли Ситимобила.


Если же Mail  признаёт, что данные чувствительные и закрывает к ним доступ, то будет честно выплатить вознаграждение по bug bounty.


Как ещё можно использовать данные о таксистах по вашему мнению?


Спасибо, что дочитали! Надеюсь, вам было интересно.


Успехов!


Оригинал


UPD: Ответ Ситимобила:

Показать полностью 5
Информационная безопасность Длиннопост Реверс-инжиниринг Такси Ситимобил Гифка Habr
182
71
vivaos
vivaos
Arduino & Pi

Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле⁠⁠

6 лет назад

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


Недавно я случайно наткнулся на новые выпуски программы "Форт Боярд" и увидел там на одном из испытаний такое устройство:

Задача устройства включать случайным образом 3 цвета (красный, синий, белый) на 12 светодиодах, а задача игроков запомнить эту последовательность за 10 секунд и повторить на своих табло при помощи тумблеров:

Затем устройство сравнивает то, что набрали игроки, с правильной последовательностью и сообщает об ошибках.


Мне показалось это отличным полезным развлечением для наших ребят и я принялся размышлять над сборкой подобного устройства.


Сразу спойлер - у меня получилось :)

Сперва нарисовал макет в векторном редакторе для дальнейшей лазерной резки, пазы коробочек при этом помог нарисовать open-source генератор макетов boxes.py.

Затем вырезал все это на лазерном станке LaserPro Mercury III ME-25

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


Файлы для скачивания материалов проекта будут в конце этого поста.


Далее проверил, что все собирается, и стал думать над электронной начинкой. У меня была не нужная плата Arduino UNO R3 и мне хотелось уместиться по количеству пинов в её 14 цифровых и 6 аналоговых ножек.


Но здесь возникла проблема - только 36 RGB-светодиодов в игре потребуют 108 ножек для подключения, плюс еще 25 кнопок для управления - где взять столько пинов? Расширители портов или сдвиговые регистры я брать не хотел, и вдруг вспомнил о хорошей замене RGB-светодиодам - адресной светодиодной ленте на чипах WS2812.


Эта лента хороша тем, что ей достаточно одной цифровой ножки (на которой генерируются пачки с кодами для чипов) для управления целой кучей светодиодов, а вот, собственно, и схема подключения, найденная на просторах интернета:

Вопрос со светодиодами решен - если взять ленту с 30 светодиодами на 1 метр, то выйдет 3,3 см между соседними светодиодами, что как раз подходит для нашего проекта.


Остается решить вопрос с кнопками.

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

При нажатии разных кнопок, в цепь подключается разное количество резисторов, образующих между собой делитель напряжения. В примере выше при нажатии первой кнопки на А0 появится напряжение в 2,5 В, при нажатии второй - 3В и так далее.


В итоге общая схема проекта приняла следующий вид:

Решил сделать колбочки-рассеиватели света на светодиодную ленту как в оригинальной игре:

Сперва пробовал резать трубку клея от клеевого пистолета, но получалось не очень ровно и не привлекательно. Плюнул на это дело и решил распечатать 36 колбочек на 3D-принтере, зашел в простейший онлайн 3D-редактор Tinkercad и нарисовал модель:

Распечатал на 3D-принтере Picaso Designer X

И мне оставалось только спаять все это дело и написать программу

Ну и, кажется, все готово для того, чтобы показать сие изделие моим самым строгим экспертам :)

На удивление, дети с большим удовольствием приняли игру - спрашивали, можно ли купить ее за деньги или бонусы, которые они у нас копят, и даже звали родителей и бабушек поиграть :)


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


За этим у меня все, обещанные материалы (код и макет для резки в форматах CDR, PDF, SVG) можно скачать здесь.

Показать полностью 16
[моё] Проект Лазерный станок 3D печать Реверс-инжиниринг Arduino Видео Длиннопост
17
9
tech.structure
tech.structure

Реверсинжиниринг⁠⁠

6 лет назад

Процесс обратного проектирования детали. 3д сканирование образца и отрисовка твердотельной 3д модели.

[моё] Инженерия 3D сканер Реверс-инжиниринг Видео
9
13
tech.structure
tech.structure

Обратное проектирование наглядно⁠⁠

6 лет назад

Процесс проектирования детали по имеющемуся образцу наглядно. Первоначальная деталь - 3d сканирование детали - твердотельная 3d модель.

Обратное проектирование наглядно
Показать полностью 1
[моё] Обратное проетирование Реверс-инжиниринг 3d сканирование 3D сканер Инженерия
37
474
BOMBERuss
BOMBERuss
Информационная безопасность IT

АНБ открыло доступ к одному из своих инструментов для реверс-инжиниринга⁠⁠

6 лет назад

В настоящее время инструментарий Ghidra доступен только на официальном сайте ведомства.

АНБ открыло доступ к одному из своих инструментов для реверс-инжиниринга

Агентство национальной безопасности (АНБ) США обнародовало инструмент под названием Ghidra, который ведомство уже в течение 10 лет использует для проведения обратного инжиниринга. В настоящее время программа доступна только на официальном сайте АНБ, однако агентство намерено в ближайшем будущем разместить исходный код инструмента на GitHub.


Проект активно применяется спецслужбами США для выявления закладок, анализа вредоносного кода, изучения различных исполняемых файлов и разбора скомпилированного кода. Ghidra обладает сходными возможностями с расширенной версией проприетарного пакета IDA Pro, но рассчитан исключительно на анализ кода и не содержит отладчик.


Код Ghidra написан на языке Java, инструмент включает графический интерфейс и может работать на устройствах под управлением Windows, macOS и Linux. Для работы интерфейса требуется наличие Java Development Kit (версия 11 или более поздние).


Примечательно, спустя всего несколько минут после публикации инструментария, эксперты обнаружили уязвимость в реализации серверного компонента . Проблема заключается в том, что Ghidra открывает сетевой порт 18001 для удаленной отладки приложения по протоколу JDWP (Java Debug Wire Protocol). По умолчанию сетевые соединения принимались на всех доступных сетевых интерфейсах, а не на 127.0.0.1, что предоставляло возможность подключиться к Ghidra с других систем и выполнить любой код в контексте приложения. Как отмечается, проблему легко исправить – для этого потребуется всего лишь изменить строку кода.


https://ghidra-sre.org

https://twitter.com/hackerfantastic/status/11030878690637045...

https://www.securitylab.ru/news/498229.php

Показать полностью 1
АНБ Программа Реверс-инжиниринг Хакеры Взлом США
88
86
tech.structure
tech.structure
CGI Media

3D модель плунжерного насоса⁠⁠

6 лет назад
3D модель плунжерного насоса

Разработали конструкцию плунжерного насоса для перекачки и перемешивания двухкомпонентного клея с помощью шуруповерта. 3D модель насоса визуализировали для презентации продукта для строительной выставке.

[моё] 3D Реверс-инжиниринг 3D моделирование Рендер 3д рендер
33
23
osdever
osdever
ИТ-проекты пикабушников

NFS Most Wanted Online: спустя год⁠⁠

6 лет назад

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

Начнём, пожалуй, с истории проекта. Работаем мы над ним уже почти два года, однако значимый прогресс начался только этой весной. Если быть точнее, то первая играбельная версия была собрана 23 января 2017 года, однако подробности никого не волнуют, так? Впрочем, с историей покончено. Давайте разбираться, какие у нас есть фичи, и как они устроены!

Для начала давайте рассмотрим техническую сторону нашей штуки.

Клиент написан полностью на C++ с ассемблерными вставками (не считая лаунчера и установщика на C#), использует библиотеку ASIO для сети, имеет открытый исходный код и работает только под Windows, как, собственно, и сама игра, если забыть про Wine. Исходный код сервера закрытый и его нет в открытом доступе, так что хостить свои сервера не выйдет. Написан он тоже на C++, и работает он только под Linux. У каждого сервера есть своя страница мониторинга на нашем сайте, обновляющаяся динамически, что даёт возможность смотреть, сколько людей играет, а также где они в мире. Переходим к следующему пункту!

Переходим к геймплейным фичам. MWO добавляет в игру четыре новых машины, эксклюзивных для онлайна (BMW M3 E46, BMW M3 CSL, Nissan Skyline R34 и Nissan 350z), которые можно купить, если создать новое сохранение. К слову, сохранения уберут уже в следующем обновлении вместе с оригинальным интерфейсом игры в меню, заменив идентично выглядящим интерфейсом с нашими функциями.

Также MWO добавляет в игру новый режим, для которого пока сделана всего лишь одна гонка, -- Outrun. В этом режиме игроки случайно получают гоночные машины и машины полиции, и две враждующие стороны должны угнать от (либо разбить) всех копов или арестовать всех гонщиков соответственно. Скажу честно, режим пока что не работает в 100% всех случаев по причине багов с запуском гонок не в карьере. Это будет, думаю, исправлено в следующем обновлении.

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

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

Теперь о проблемах - куда же без них? Их, собственно, не так уж и много, но они есть, и, хоть их и мало, но они довольно-таки серьёзные. Они могут не дать вам играть, а могут вообще никак не коснуться. К примеру, клиент крашится, если в игру загружается какой-либо "чужой" оверлей - тот же Evolve, когда запущен, не даёт вам играть в MWO именно по этой причине. Также игра иногда (довольно редко, но всё же) может крашиться без причины, а лобби не идеальны и иногда не дают начать гонку, когда все игроки готовы. Всё это, как вы понимаете, происходит далеко не всегда, но факт есть факт - такое бывает. Ничего из этого не ломает вам игру, за исключением крашей на старте, так что можете не волноваться. К слову, российский сервер довольно слабый, так что играйте лучше на европейском - там играет больше людей, и выкидывать вас будет гораздо реже. Думаю, что текста уже достаточно (плюс вряд ли его все прочитают, так что перейдём к скриншотам и видео, а затем к инструкции по установке. Поехали!

Понравилось, не так ли? Хотите поиграть? Это не так уж и сложно, так что вот инструкция:

1. Установите игру, если её у вас ещё нет - файлы игры не поставляются с модом;

2. Скачайте установщик MWO из нашего Discord-сервера - https://discord.gg/MRtTU77, либо по прямой ссылке - https://cdn.discordapp.com/attachments/359077822565711872/47...;

3. Снимите галочку "Только чтение" с папок GLOBAL и FRONTEND в папке с игрой, чтобы установщик мог заменить файлы;

4. Запустите установщик и выберите папку с игрой, нажмите Установить;

5. Запустите лаунчер, зарегистрируйте себе аккаунт Haont, выберите сервер и играйте!


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

Спасибо за внимание и за то, что прочитали этот длиннопост. Надеюсь, что Вам понравилось :P С вами был osdever из команды MWO, до свидания!

Показать полностью 6 2
[моё] Длиннопост Need for Speed: Most Wanted Nfs MW Программирование Реверс-инжиниринг Need for Speed Видео
8
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии