Pull to refresh
  • by relevance
  • by date
  • by rating

Реверс-инжиниринг как методика обучения электронике

МАСТЕР КИТ corporate blog


Привет Хабр! Ранее я публиковал пост о разработке фотополимерного 3D-принтера из CD приводов RAR Print. Сейчас занимаюсь развитием коворкинг-центра «Креатив» в Томске. Одна из задач центра — обучение людей разного возраста электронике. Я подготавливаю техническую и теоретическую базу.

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

Читать дальше →
Total votes 19: ↑17 and ↓2 +15
Views 46K
Comments 12

Реверс-инжиниринг визуальных новелл

Ruby *Game development *Reverse engineering *
Sandbox

Хочу признаться: я обожаю визуальные новеллы. Кто не в курсе — это такие то ли интерактивные книжки, то ли игры-в-которых-надо-в-основном-читать-текст, то ли радиоспектакли-с-картинками, преимущественно японские. Последние лет 5, наверное, художественную литературу в другом формате толком не вопринимаю: у визуальных новелл по сравнению с бумажными книгами, аудио-книгами и даже сериалами — в разы большее погружение, да и сюжет регулярно куда интереснее.

Читать дальше →
Total votes 49: ↑49 and ↓0 +49
Views 39K
Comments 53

Опыт полезной модификации UEFI: возвращаем Thinkpad W520 законную поддержку быстрой памяти

Assembler *System Programming *Reverse engineering *
Tutorial
Для начала предыстория:

Некоторое время назад я приобрёл на Ebay б/у ноутбук Lenovo Thinkpad W520. Как известно, W-серия — это очень мощные ноутбуки, железки в которых дадут фору многим более современным машинам. Конечно же, я начал его обустраивать под себя, и, в частности, решил проапгрейдить имеющуюся память всем, что было в наличии, а в наличии было немало: 2 свободные планки DDR3-1600 из старого ноута — 4 и 8 гигабайт. Посмотрев на то, что было установлено продавцом, я обнаружил, что из 3 установленных планок 2 — DDR3-1600, а одна — 1333. Учитывая, что первые две были по 8 гигабайт, а последняя — 2 гигабайта, от неё я и решил избавиться. Рассчитывая получить после апгрейда 8+8+8+4=28 гигабайт DDR3-1600 в рабочем ноуте, я залил всё слюной и всё это быстренько подключил. И получил 28 гигабайт… DDR3-1333. «Что за...», подумал я и полез в гугл.

После непродолжительных поисков я обнаружил, что как официально, так и неофициально W520 поддерживает только DDR3-1333, а владельцы более быстрой памяти зря тратили на неё деньги. Мне стало немного обидно за всех таких владельцев, и я решил попробовать избавиться от этой несправедливости, тем более, что контроллер памяти, нынче, как известно, в процессоре, и установленный в моей модели Intel Core i7 2720QM официально поддерживает DDR3-1600.
А теперь немного интересных подробностей
Total votes 63: ↑62 and ↓1 +61
Views 25K
Comments 52

Реверс-инжиниринг визуальных новелл (часть 2)

Open source *Programming *Game development *Debugging *Reverse engineering *
Tutorial

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


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


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


Читать дальше →
Total votes 66: ↑64 and ↓2 +62
Views 19K
Comments 33

Тащим музыку из ВК без публичного music API

Information Security *JavaScript *Programming *API *
Sandbox

Как все начиналось


Дело было вечером, делать было нечего… Точнее, я просто хотел загрузить аудиокнигу перед парами и тут меня ждал сюрприз. Кэш в кейт мобайле отключили. Как так? Что делать? Конечно же писать свое приложение с кэшем и аудиозаписями. Но для начала нужно понять, как вк превращает ссылки вида audio%user_id%_%track_id% в прямые ссылки на mp3. Что из этого вышло приложения я не написал и как скачать определенный плейлист можно прочитать под катом.
Читать дальше →
Total votes 35: ↑34 and ↓1 +33
Views 85K
Comments 46

Как у меня получилось взломать и распаковать ресурсы старой игры для PSX

Reverse engineering *Data compression *
Sandbox
«Вот бы распаковать эти игровые архивы и посмотреть что там внутри!», — наверное думал про себя, хотя бы раз, каждый геймер, который хотел понять, как устроена его любимая игра.

К счастью, сегодня большинство разработчиков не только не препятствуют изучению своих игр, но даже наоборот, делают всё, для того, чтобы игроки изменяли и дополняли игры сами. Но даже если официальной документации нет, то для 99% игр можно найти уже готовые программы для распаковки.

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

Так как само по себе, описание устройства игровых архивов вряд ли принесет какую-нибудь пользу, я опишу весь путь, который я проделал в ходе изучения игровых архивов, ход своих мыслей, а также ошибки, которые привели меня в тупики.
Читать дальше →
Total votes 58: ↑57 and ↓1 +56
Views 14K
Comments 16

IDA Pro: 11 советов, которые вы (может быть) не знали

Information Security *Reverse engineering *

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

Читать дальше →
Total votes 15: ↑15 and ↓0 +15
Views 6.7K
Comments 5

Как я нашел пасхалку в защите Android и не получил работу в Google

Development of mobile applications *Development for Android *Google API *Reverse engineering *Interview
Гугл любит пасхалки. Любит настолько, что найти их можно практически в каждом продукте компании. Традиция пасхалок в Android тянется с самых первых версий операционной системы (я думаю, все в курсе, что будет, если в настройках несколько раз нажать на строчку с версией Android).

Но бывает и так, что пасхалки обнаруживаются в самых неожиданных местах. Есть даже такая легенда: однажды один программист загуглил «mutex lock», а вместо результатов поиска попал на страницу foo.bar, решил все задачи и устроился на работу в Google.

Реконструкция событий
image

Вот такая же удивительная история (только без хэппи-энда) произошла со мной. Скрытые послания там, где их точно не может быть, реверс Java кода и нативных библиотек, секретная виртуальная машина, прохождение собеседования в Google — все это под катом.
Читать дальше →
Total votes 279: ↑277 and ↓2 +275
Views 95K
Comments 302

История взлома классической игры на Dendy или Contra на 100 жизней

Assembler *Games and game consoles
Sandbox

Поскольку некоторая японская компания, до сих пор тщательно бдит свои авторские права. Я не могу предоставить вам ни мою версию рома ни использованный мною исходник. Скажу лишь, что нашёл его в торрент сборнике "Все игры на Dendy". Взяв оттуда переведённую на русский язык японскую версию игры "Contra (J) [T+Rus_Chronix]" я несколько раз её прошёл и будучи крайне любознательным человеком решил немного расковырять ROM образ, в частности подарить немного жизней игрокам.

Читать дальше →
Total votes 21: ↑19 and ↓2 +17
Views 10K
Comments 19

История взлома классической игры на Dendy или Contra со спрэдганом в начале

Assembler *Games and game consoles
Tutorial

Раз уж прошлая моя статья, к моему большому удивлению, вас заинтересовала. Я решил дополнить её результат, хакнутую версию игры "Contra (J) [T+Rus_Chronix]", небольшим функционалом, заодно показав "code injection" на NES. В этот раз я сделаю так, чтоб игроки начинали игру с прокачанным Spreadgun, для его получения в игре нужно подобрать иконку "S", а за ней "R".



Все заинтересовавшиеся welcome под кат.

Total votes 30: ↑27 and ↓3 +24
Views 8.1K
Comments 9

Расследование по делу одного неизвестного архива

Reverse engineering *
Sandbox
Переезд. Новый город. Поиски работы. Даже для IT специалиста это может занять длительное время. Череда собеседований, которые, в общем, очень похожи друг на друга. И как оно обычно бывает, когда ты уже нашел работу, через некоторое время, объявляется одна интересная контора.

Было сложно понять, чем она конкретно занимается, однако, область ее интересов – исследование чужого ПО. Звучит интригующе, хотя когда понимаешь, что это вроде бы не вендор, который выпускает софт для кибербезопасности, на секунду останавливаешься и начинаешь чесать репу.


Читать дальше →
Total votes 29: ↑29 and ↓0 +29
Views 16K
Comments 19

Реверсим мобильную 1с под андроид. Как добавить немного функциональности и угробить несколько вечеров

Development for Android *Reverse engineering *

Сразу скажу что несмотря на громкое, как кому-то могло показаться, название статьи — тут не будет никакого прям уж совсем хардкора. А также несмотря на то что реверсинг чаще всего связывается с информационной безопасностью — здесь опять же ничего такого не будет, ибо никаких защит (за исключением небольшой минификации) обходить не было необходимости. Нет их. Мобильная 1с бесплатный продукт в который не встроено никаких проверок, защит и платных функций.


Так что обращаюсь к тем кто надеется увидеть применение деобфускаторов, использование Frida/Xposed, другого хитрого софта — ничего интересного вы для себя не найдете. Тут мы просто будем использовать apktool, baksmali, apksigner, adb, jadx, консоль, текстовый редактор, javac, d8 и все.


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

Читать дальше →
Total votes 13: ↑13 and ↓0 +13
Views 6.2K
Comments 2

Реверс USB-SATA-адаптера (история одного стажера)

НТЦ Вулкан corporate blog Information Security *Reverse engineering *Manufacture and development of electronics *Computer hardware

Предыстория


Стажировка – это процесс получения знаний и опыта. Наша команда Raccoon Security считает, что повышение уровня информационной безопасности окружающих нас устройств и ПО невозможно без передачи этих знаний и опыта будущим поколениям специалистов. Именно поэтому мы уже много лет организуем индивидуальные стажировки для талантливых студентов и выпускников.


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


Читать дальше →
Total votes 100: ↑100 and ↓0 +100
Views 22K
Comments 34

Реверс embedded: трассировка кода через SPI-flash

НТЦ Вулкан corporate blog Information Security *Reverse engineering *Programming microcontrollers *Manufacture and development of electronics *

Зачем?!


Наверное, это первая эмоция большинства людей, прочитавших название статьи. Однако, давайте представим следующую ситуацию: в процессе исследования устройства вы доходите до точки, когда можете исполнить внутри устройства свой код, и хотите вывести через UART заветное "Hello, Habr!", помигать светодиодами на плате как на новогодней ёлке или включить JTAG, но всего этого в вашем распоряжении нет.


В этой статье мы покажем необычный способ трассировки прошивки устройств с помощью эмулятора SPI-флешек.

Читать дальше →
Total votes 22: ↑22 and ↓0 +22
Views 4K
Comments 16

Вскрытие покажет: Решаем лёгкий crackme и пишем генератор ключа

Information Security *Python *Assembler *Debugging *Reverse engineering *
Sandbox
Доброго времени суток читающий. Мне хочется рассказать тебе про алгоритм решения одного лёгкого crackme и поделиться кодом генератора. Это был один из первых crackme, который я решил.

На просторах сети найден был наш подопытный. Это сrackme. Естественно, что необходимо изучить его. Для вскрытия нам понадобиться:

  • Немного языка Assembler
  • Логика вместе с отладчиком (IDA PRO)

Лекарство изготовим из яда австралийской змеи с помощью Python. Не будем терять времени.

image

Читать дальше →
Total votes 10: ↑10 and ↓0 +10
Views 5.2K
Comments 3

Шпаргалка полезных команд GDB

Reverse engineering *

Для кого она нужна?


1) начинающих реверсеров, знающих особенности обратного проектирования, и желающих изучить такой отладчик как GDB


2) как подсказка тем кто постоянно работает с IDA, Ghidra или любым другим мощным и надежным инструментом, но в силу тех или иных обстоятельств решить задачу проще и быстрее с помощью GDB, и не очень хочется залезать в официальную документацию и снова все вспоминать

Читать дальше →
Total votes 23: ↑23 and ↓0 +23
Views 9.7K
Comments 11

Еще одна стажировка, или сказ про реверс IP-камеры

НТЦ Вулкан corporate blog Information Security *Network technologies *Reverse engineering *IOT

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

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

Далее вас ждет история о том, что я делал на стажировке в НТЦ "Вулкан".

Читать далее
Total votes 17: ↑17 and ↓0 +17
Views 5.5K
Comments 6

LeetD3vM4st3R

Information Security *Development for Android *Reverse engineering *
Sandbox

В APK находится функционал по генерации сигнатуры для ассоциативного массива. Постарайтесь получить подпись для следующего набора данных:

{
"user" : "LeetD3vM4st3R",
"password": "__s33cr$$tV4lu3__",
"hash": "34765983265937875692356935636464"
}

и отправить результат @****** в Telegram.

-----------------------------------------------------------------------

В случае, если вам не удается решить данное задание, но вы преодолели уже какой-то путь, то отправьте @****** список проделанных вами шагов: нам, в первую очередь, интересен ход ваших мыслей как исследователя ПО ;)

Что это?
Total votes 43: ↑40 and ↓3 +37
Views 6.6K
Comments 14