Как стать автором
Обновить
53.89
Рейтинг

Реверс-инжиниринг *

Расковырять и понять как работает

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

Исследуем игру с аркадного автомата ч. 1

Информационная безопасность *Реверс-инжиниринг *
Уф, вот меня и разбанили на хабре, и у меня есть для вас отличная статья, так что всем привет!



Введение


Никогда не задумывались, что стоит в аркадных автоматах? Какие ОС, какие технологии используются для разработки игр? Как их защищают от копирования и модифицирования? Если да, то добро пожаловать в этот топик.
Читать дальше →
Всего голосов 83: ↑76 и ↓7 +69
Просмотры 32K
Комментарии 66

Новости

В официальном издании Age of Empires Collector's Edition на DVD используются крэки из сети

Assembler *Реверс-инжиниринг *
imageПервые части игры Age of Empires уже давно стали своего рода классикой. У этой игры до сих пор есть немало поклонников. В 2007 году вышло официальное коллекционное издание игры, которое включает первую и вторую части с дополнениями. Причём во всех странах, кроме США, оно вышло на одном DVD вместо четырёх CD. Тогда я уже немного занимался реверс-инжинирингом этой игры и знал, что оригинальные версии исполняемых файлов не захотят работать с одним общим диском, поскольку в код каждой части и их дополнений зашита проверка метки соответствующего диска. Очевидно, что у одного DVD не может быть сразу четыре разных метки, и после покупки русского DVD издания я ожидал увидеть перекомпилированные разработчиками версии файлов с изменённым кодом проверки наличия диска или вовсе без него. Но всё оказалось намного интереснее.
Читать дальше →
Всего голосов 155: ↑151 и ↓4 +147
Просмотры 61K
Комментарии 75

Интервью с CYBERMANIAC

Информационная безопасность *Delphi *Реверс-инжиниринг *Софт
Если вы знаете, и помните человека под ником CYBERMANIAC, для вас этот разговор будет похож на внезапное обнаружение половины студенческой зарплаты во внутреннем кармане старой куртки. Для тех кто никогда не слышал о Станиславе, я думаю будет тоже интересно почитать о небольшой, но уникальной искре времени начал интернета в далеком от столиц городов России глазами CYBERMANIAC'а. Он мне показался неизменным с 00 годов да и настолько изолированным, что очень уж захотел написать о нем.

Мы осторожно поговорим о жизни программиста в глубинке, о языках программирования с момента появления их в России: Forth, Borland Pascal, Delphi ,C#, MegaBasic, Java, SQL, C++. о япоском языке, о змеях, о национальных напитках, о Сократе, о советских объективах, о звездах, человеческих страхах.

CYBERMANIAC носит в себе большой опыт в крекинге, написании утилит, автор Neo Sign 0f Misery, древней электронной книги “Теоретические основы крекинга”, а так же автор многим любимого windows scanner и большого фотолюбителя-звездочета. Интервью получилось многим больше, чем я рассчитывал. Но надеюсь, для вас будут звучать колокольчиками похожие мысли. Именно их мы и слушаем, когда читаем…
Читать дальше →
Всего голосов 57: ↑49 и ↓8 +41
Просмотры 29K
Комментарии 13

Что под капотом у vk.com

Информационная безопасность *Реверс-инжиниринг *
Данный пост — небольшой отчет о процессе реверсивного проектирования и анализа работы самой популярной соц. сети в СНГ — vk.com. В основном анализ проводился со стороны безопасности (хотя сама соц. сеть весьма привлекательна как high-load проект, безусловно). Для себя вынес некоторые интересные решения и просто получил удовольствие. Пост получился, возможно, немного сумбурный, так углублялся просто в интересные мне моменты.

Содержание


Обзор

Архитектура

  • php 5.2/5.3
  • Периоды нагрузки (отключения автоподгрузки ленты)
  • Врапперы в сообщениях
  • Разный код для мобильной и полной версий

Security

  • Фичи
    • Авторизация
    • Anti-CSRF токены
    • Запрет iframe
    • Отключенный POST на контент-серверах
  • Фиче-баги
    • Узнать возраст через поиск
  • Баги
    • XSS
    • Загрузка документов без имени
    • Подгрузка по ajax фото из закрытых альбомов (?)
    • Не везде anti csrf

Разное

Читать дальше →
Всего голосов 117: ↑106 и ↓11 +95
Просмотры 57K
Комментарии 54

Как мирный reverse engineering помог чуть-чуть улучшить приложение Яндекс.Деньги

Информационная безопасность *Отладка *Реверс-инжиниринг *
Существует стереотип, что reverse engineering — это занятие для злых хакеров в темных очках и блестящих кожаных пальто. Под покровом ночи, в перерывах между беготней по стенам и рукопашными схватками с толпами спецназовцев, эти компьютерные нелюди творят страшные взломы программ, пентагонов и прочих баз данных. Сами взломы как правило не требуют никакой предварительной подготовки и занимают считанные секунды. Ну и конечно в процессе практически любого взлома по чОрным экранам адских хакерских ноутбуков с непонятной ОС ползут зелёные кракозяблы и/или крутится какая-то 3D-фиговина…



Сегодня я хочу отойти от затасканных голливудских штампов про злых компьютерных взломщиков и поведать вам, дорогие читатели, о том как мирный reverse engineering помог чуть-чуть улучшить приложение Яндекс.Деньги. Надеюсь эта история пошатнет устойчивый стереотип, что reverse engineering — это обязательно плохо и нужно только нехорошим людям.
Читать дальше →
Всего голосов 178: ↑169 и ↓9 +160
Просмотры 50K
Комментарии 35

Отладка приложений для Android без исходных кодов: native методы

Информационная безопасность *Отладка *Реверс-инжиниринг *
Tutorial

О чем эта статья


В двух предыдущих статьях я рассказывал как отлаживать приложения для Android без исходного кода на Java и о некоторых особенностях установки breakpoints. Если уважаемый читатель ещё не ознакомился с этими статьями — я настоятельно рекомендую начать с них, а уже потом читать эту статью.

Так уж вышло что до сих пор я рассказывал исключительно об отладке байткода Dalvik и ни словом не обмолвился об отладке native методов. А ведь именно в native методах часто скрывается самое вкусное — хитрые защиты, интересные malware фичи, уязвимости нулевого дня. Поэтому сегодня я сжато, без «воды», расскажу как отлаживать native методы без исходного кода на C/C++ (ну или на чем, уважаемый читатель, они у вас там написаны).
Читать дальше →
Всего голосов 41: ↑39 и ↓2 +37
Просмотры 24K
Комментарии 5

Reversing Google Play Store

Информационная безопасность *Реверс-инжиниринг *
Заранее извиняюсь, что довольно таки мало технических подробностей про запросы/ответы, пока что сам разбираюсь.

Да, вслед за Реверсом AppStore, решил я взяться за то же самое, но с Google. Google Play Store. (как Бонд. Джеймс Бонд).

Весело то, что у гугла все просто и секъюрно. Юзаются подписи, nonce'ы. А также сервис разделяется на две составляющие — push и обычную. Все запаковано во что бы вы думали? Правильно — protobuffers! It's hard to decode, ибо формат бинарного сообщения сам себя не описывает, много эвристики и веселья.
Забавно, однако, что, как и в Apple, ВНЕЗАПНО, плевали они на стандарты (или я неправильно понял?) — gzip отдается плейнтекстом/binary — в protobuffers, а вот binary отдается в… gzip!
image
Добро пожаловать под кат.
Читать дальше →
Всего голосов 96: ↑80 и ↓16 +64
Просмотры 29K
Комментарии 17

Reverse-engineering одного вируса для Android

Реверс-инжиниринг *
Из песочницы
Я Java-программист и не так давно начал изучать Java для Android. Сегодня на мой планшет попало весьма любопытное уведомление «Надо обновить Flash Player», если бы не профессиональный интерес к платформе Android, то скорее всего я бы пропустил его и продолжил отдыхать, однако сегодня холодный воскресный вечер и я решил решил посмотреть что у вируса «под капотом».
Кстати, парни хорошо подгадали момент выпуска своего «FlashPlayer»: буквально за час до этого я обновлял нормальный FlashPlayer от Adobe на стационарнике.
Если Вам интересно — прошу под кат. Под катом есть несколько скриншотов.
Читать дальше →
Всего голосов 35: ↑31 и ↓4 +27
Просмотры 39K
Комментарии 18

Отладка приложений для Android без исходного кода на Java: пару слов о breakpoints

Информационная безопасность *Отладка *Реверс-инжиниринг *
Tutorial

О чем эта статья


Это продолжения моей вчерашней статьи об отладке приложений для Android без исходного кода на Java (если кто-то её не читал — я очень советую начать с неё). Вчера я давал пошаговую инструкцию как настроить и начать использовать связку Apk-tool плюс NetBeans. Два последних пункта там звучали примерно так:

13. Установите breakpoint на интересующую вас инструкцию… blah-blah-blah...

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

Дальше, в разделе «Подводные камни», я рассказывал почему мы не может начать отладку приложения с самого начала, например поставив breakpoint на какую-нибудь инструкцию метода onCreate(...) в activity, с которой начинает выполняться приложение.

В этой статье я расскажу как всё же можно начать отлаживать приложение без исходного кода на Java с самого начала. Эта статья опять-таки не для новичков. Нужно как минимум понимать синтаксис ассемблера Smali и уметь ручками патчить .smali файлы, грамотно вписывая туда свой код.

Всё равно хочу послушать!
Всего голосов 11: ↑11 и ↓0 +11
Просмотры 17K
Комментарии 0

Отладка приложений для Android без исходного кода на Java

Информационная безопасность *Отладка *Реверс-инжиниринг *
Из песочницы
Tutorial

О чем статья


В этой статье я сжато, без «воды», расскажу как отлаживать приложения для Android не имея их исходного кода на Java. Статья не совсем для новичков. Она пригодиться прежде всего тем кто более или менее понимает синтаксис Smali и имеет некоторый опыт в reversing engineering приложений для Android.

Хочу послушать
Всего голосов 21: ↑21 и ↓0 +21
Просмотры 47K
Комментарии 22

Немного огня на чистом CSS (Firefox)

CSS *HTML *Реверс-инжиниринг *
Зайдя на домашнюю страницу браузера Firefox about:home (автономная, в самом браузере), обнаружил там неплохую реализацию пылающего огня, сделанную на не очень тяжёлых анимированных спрайтах, под лицензией LGPL (по крайней мере, в стартовом about-home-Fx.js). Не каждый день встретишь качественный огонь на скриптах в браузере. При ближайшем рассмотрении оказалось, что это даже не скрипты, а целиком анимированный CSS. Небольшой скрипт используется только для старта и останова. Используя эту идею и формат, дизайнеры смогут создать свою реализацию огня, дыма или текущей воды.

Поиск по ключевым словам из кода в интернете результата не дал, поэтому, как и с машиной Тьюринга (Гитхаб), тут же возникло желание освободить скрипт и стили от оков случайности и таинственности. То есть, положить его в читаемом и рабочем виде в открытый стабильный источник. Иначе, закончится Олимпиада — и будут все шансы исчезнуть ему из поля зрения. И вот результат:
github.com/spmbt/flame-animate-css-mozilla
Немного подробностей
Всего голосов 28: ↑22 и ↓6 +16
Просмотры 5.5K
Комментарии 20

Мини reverse engineering и модификация Windows Phone приложений

Разработка под Windows Phone *Реверс-инжиниринг *
Из песочницы
Здравствуйте!

Несколько дней назад мне попалась на глаза забавная игра, в которой необходимо на мотоцикле объезжать препятствия и за это получать очки, и мы с друзьями начали меряться количеством набранных очков немного увлеклись. Немного подумав, я решил покопаться в коде игры и добавить небольшой хак для очков. Итак, о том, как разобрать Windows Phone приложение, изменить в нем что-то и собрать это все обратно:
Читать дальше →
Всего голосов 30: ↑25 и ↓5 +20
Просмотры 5.1K
Комментарии 43

Машина Тьюринга восстановлена из уплотнённого кода

JavaScript *Разработка игр *Реверс-инжиниринг *
День назад праздновали день рождения Тьюринга, и на сайте Гугла был дудл с джаваскриптовой машинкой Тьюринга. Уже не первый раз поисковик показывает нетривиальные и интересные скрипты, которые потом, после дня празднования, исчезают в небытие. Странно, что на странице всех дудлов о них есть немного слов, но нет работающих моделей, как, например, по рассматриваемому дудлу машины Тьюринга (UPD4 (26.06.2012, 5:20) — по этой ссылке появился живой скрипт, можно играть; но обфусцированный ещё сильнее, чем был на странице). Возможно, они где-то есть, но поиск в интернете не привёл к результату. Такое своевольное поведение стихии интернета начало надоедать, поэтому вчера я без особого напряжения и старания, но решил извлечь работающий код и попытаться им управлять.

Для этого понадобилось деобфусцировать гугловские коды страницы поиска (которую уже и поиском не назовёшь, судя по массе скриптов) и отвязать движок от родительского сайта. Получилось запустить алгоритм счётчика, который зашит в движок по умолчанию, но не работает механизм прохождения логических задач, который, судя по коду, в нём содержится, но не стартует по клику на кнопке с треугольником. Тем не менее, процентов 20 работы сделано, и не хотелось бы, чтобы она пропадала. Возможно, в другое свободное время я им займусь, а, возможно, кто-то подхватит и сделает форк с реквестом, и у него (или у нас вместе) получится запустить задания.
Восстановленные исходники
Всего голосов 84: ↑75 и ↓9 +66
Просмотры 6K
Комментарии 30

Создание прокси-dll для запуска DirectDraw игр в окне

C++ *Системное программирование *Реверс-инжиниринг *
В продолжение темы расширения функциональности готовых программ хотелось бы рассказать об ещё одном способе изменения логики работы уже скомпилированной программы, который не требует делать изменений в самом исполняемом файле. Это может пригодиться при распространении вашей модификации в США, где прямое вмешательство в исполняемый файл строго осуждается. Речь пойдёт о создании крошечной прокси-dll (всего ≈4 килобайта) для подмены используемой приложением библиотеки на примере ddraw.dll.
Читать дальше →
Всего голосов 71: ↑68 и ↓3 +65
Просмотры 17K
Комментарии 32

CRACKL@B Contest 2010. Анализ первого задания

Assembler *Реверс-инжиниринг *
Tutorial

Заканчивался 2010 год, шли глобальные реформы на ресурсе. Это были смутные времена. И в это суровое время зарождается идея о создание местного турнира. Эта идея была очень радостно воспринята местным сообществом. Спустя некоторое время, было создано 3 задания (хотя планировалось 5), были выбраны члены жюри и система оценивания. И так, это началось.
Читать дальше →
Всего голосов 75: ↑70 и ↓5 +65
Просмотры 9.1K
Комментарии 14

Анализ Crackme #1 от PE_Kill

Assembler *Реверс-инжиниринг *
Tutorial

Предисловие



Я уже долгое время ничего не исследую, так сказать ушел на покой. Но тут мне на глаза попалась очередная поделка немало известного в определенных кругах PE_Kill'a. Т.к. мне довелось решать его предыдущую поделку в рамках CRACKL@B Contest 2010, которая в свою очередь была довольно интересна, я решил взглянуть на его новое «детище».

Что вас ждет под катом: подделка CRC32, брут ключа для RC4, факторизация для RSA, а также использование коллизии для MD4 и генерация двух разных сообщений с одинаковыми хешеми. Всё это и многое другое под катом.
Читать дальше
Всего голосов 148: ↑143 и ↓5 +138
Просмотры 11K
Комментарии 31

Коварный и ужасный sndrec32.exe

Assembler *Системное программирование *Реверс-инжиниринг *
Sound RecorderВ этом топике вы найдете немного ностальгии, каплю гнева и килограмм реверс-инжиниринга. Посвящается тем, кто знаком с программой «Звукозапись» не понаслышке :)

Когда небо было голубее, Солнце светило ярче, а Интернет был таким недоступным… Короче, в далеком детстве мне почему-то полюбилась стандартная программа «Звукозапись» из Windows 98. Не глядя на минимальную функциональность, я даже умудрялся делать в ней простейшие «ремиксы» ей же записанных мелодий из игр.

Шли годы. Железо становилось мощнее, а ОС функциональнее. Но «Звукозапись» не менялась. Даже в Windows XP она оставалась такой же, как и тогда. Пришло время обновить железо. 3 гигабайта оперативной памяти — раньше и мечтать о таком не приходилось. Этого уж точно должно хватить всем! Так и было, пока дело не дошло до той самой «Звукозаписи». После попытки записать небольшой звук программа невозмутимо возразила, что ей недостаточно оперативной памяти.
Читать дальше →
Всего голосов 183: ↑177 и ↓6 +171
Просмотры 20K
Комментарии 98

Расширение функциональности готовых программ

Assembler *Системное программирование *Реверс-инжиниринг *
В мире ПО существует огромное количество программ, забытых своими разработчиками. Хорошо, когда уже есть хорошая альтернатива. А если ее нет? В программе может катастрофически не хватать каких-то мелочей, некоторые досадные ошибки могут годами доставлять массу неудобств пользователям, а на новых версиях ОС программа и вовсе может отказаться работать. Далеко не всегда имеются исходные коды, чтобы привести программу в порядок. Если программа простая — не составит труда за короткий срок создать альтернативу. Но если программа большая и сложная, что же делать в таком случае? Не всегда рационально тратить время и деньги на разработку полного аналога, ведь расширить в разумных рамках функциональность и исправить большинство ошибок можно уже в готовом исполняемом файле.
В этой статье будут продемонстрированы методики модификации исполняемых файлов на примере расширения функциональности легендарной игры Age of Empires II (стратегия реального времени).
Читать дальше →
Всего голосов 204: ↑203 и ↓1 +202
Просмотры 39K
Комментарии 120

Вклад авторов