Cthulhu
03.07.2011 00:59 Miranda
Пстач, а вдруг среди тебя есть люди, угорающие по reverse engineering (надеюсь, я не один такой здесь)?
Тогда они наверняка знают, что китайские братья выбросили в паблик версию ida 6.1. Криво пропатченную, ну да ладно, мы коллективным разумом на exelab починили ее обратно, суть не в этом. Суть в очень годной инициативе широко известного в узких кругах товарища Sp0raw.
http://sporaw.livejournal.com/88098.html
Присоединяйтесь. Очень полезное дело ведь.
И да, порекомендуйте, плиз, меня ведь тут мало кто знает и читает :3
кулхацкер?
Нет, конечно ) Просто одним из хобби является RE. Пытаюсь найти единомышленников еще и здесь.
RE или хацкинг?
И да, спасибо за рекомендацию
Скорее все же re. Мне более интересен, например, процесс вскрытия защиты, чем результат.
мне хотелось бы получить больше информации о RE для получения спеков девайсов
Што. Конкретизируй вопрос )
дано:
1. древний мобильник со сдампанной прошивкой и бутлоадером
2. кабель по которому можно туда-сюда гонять байтики
3. спека на чип памяти
вопрос: что дешевле — реверснуть спеки на soc или отхуярить экран и купить микруху с доступными спеками?
Ну. Если бы спросили меня — я бы, однозначно, выбрал реверсинг спеки. Ибо это привычно, стандартно. Все так делают.
я реверсинг спеки поёбываю периодически уже лет 7. с минимальным результатом.
Ну этого засранца давно надо прищучить. Я в своё время хотел купить лицензионную иду после нескольких месяцев использования патченой версии, так же был послан этим школолоидом.
> порекомендуйте, плиз
ИДИ НАХУЙ БЛЯДЬ
Я тоже хотел купить, к слову. Единственная программа, за которую мне не жалко было бы заплатить. Но advanced "не продается непонятным одиночкам", а pro-версии мне не хватит. Вот и приходится сидеть на пизженной 5.5, ибо от qtшного интерфейса меня тошнит (
ИДУ РЕВЕРСНУЛ БЛЯТЬ
у меня была идея нарисовать свой интерактивный дисасм — взять кот из binutils::objdump и нарисовать гуй на qt
блядь, почитал дальше — нахуя я рекомендовать таких мудаков как это шпорав?
Да все мы тут мудаки. И ты не исключение.
Главная прелесть-то в движке, а не в гуе ) А движка, умеющего хотя бы третью часть возможностей иды, в природе в ближайшее время не появится.
Мудак-не мудак, а инициатива годная. Всяко лучше, чем предлагаемое школьниками на exelab "реверснуть, довести до компилируемого состояния, переводить постепенно в читабельный вид"
Не нравится кактус? Пусть выращивают свой. Если не умеют, то гнать из профессии ссаными тряпками.
это же варезники, не творцы
Иду писали больше пятнадцати лет. Начинать писать с нуля сейчас, без коммерческой поддержки — гиблое дело.
И никто не пишет что им "не нравится кактус". Не нравится невозможность приобрести продукт физическому лицу, даже в теории. Вот и все.
что есть в иде кроме дизассемблера?
Во-первых, не «дизассемблера», а «ДИЗАССЕМБЛЕРА».
Мне приходилось делать выгрузку дизасма из иды и импорт его для своей поделки. потому что все остальное выдавало непригодную для моего анализа хуйню даже на простых примерах.
Отладчик. Декомпилятор в c, с достаточно специфическими и интересными алгоритмами работы (аналогов, как и к движку дизассемблера, в природе не существует). Скриптовой язык. Возможность подключать посторонние скриптовые движки (пейтон, например).
Но главное, конечно, анализирующий движок дизассемблера.
>анализирующий движок дизассемблера
что под этим понимается?
Он парсит ассемблерный кот, помогая найти то, что нужно. Строит синтаксическое дерево, например.
С ходу так не вспомню, но в сравнении со стандартными дизасемблерами, IDA реально была удобнее в случаях программ размером более пары килобайт.
inb4: меня действительно интересуют фичи и как ими пользоваться
>Строит синтаксическое дерево, например.
што? AST для ассемблера?
Ты не поверишь, но каждую ассемблерную команду можно разложить еще на десяток комманд промежуточного кода.
CISC → RISC? а шо это даст?
Это даст хоть какую-то возможность исследовать код роботам.
Не AST. Не очень удачно обозвал. В общем, граф взаимосвязи компонентов программы.
CFG?
Понимается умение иды не просто переводить двоичный код в ассемблерные мнемоники, а еще и приводить его к читабельному виду.
Примеры фич:
1) Автоматическое обнаружение в коде функций из рантайм-библиотек, подгрузка их прототипов. Использование этих прототипов для определения типов задействованных переменных (если, например, вызвали функцию strcat, то те области памяти, на которые указывают параметры, скорее всего являются char* — создать там строку). И, очевидно, если поменять вручную прототип функции — все это переанализируется заново. Возможность самому генерировать эти прототипы из скомпилированных библиотек.
2) Отслеживание указателя на вершину стека в тех случаях, когда вызывается, например, много виртуальных функций в соглашении, когда параметры из стека убирает вызванная функция.
push eax
push ebx
call dword ptr [ecx+4] //нельзя точно сказать, на что сейчас показывает esp
Для этого используется интересный алгоритм на базе симплекс-метода.
3) Ну про разные мелочи вроде обнаружения switch, расстановки перекрестных ссылок на код и данные, подсветок, рисовальщика блоксхем я молчу. И абсолютно все это интерактивно.
В общем, аналогов нет и в ближайшее время не будет. Да и декомпилятор в C шустро набирает обороты. Можешь загуглить примеры получаемых листингов, если интересно.
http://hexblog.com — их блог. Можешь там хотя бы полистать what's new к последним версиям для получения примерного представления )
А зачем частному лицу такой продукт? Не лицо это, а харя пиратская!
Too fat.
Это что, что-то невозможное?
это требует некоторых эвристик для отделения мух от котлет, например. плюс упрощающие штуки вроде детектирования функций/построения графа переходов, этц
Да, это требует пошевелить мозгом. И что?
Возможно все. Перечитай внимательнее комментарий /22 .
Вот Линусу то же самое говорили, ага.
И? До того момента, пока линукс хоть как-то стало возможным использовать на десктопе, прошло около 15 лет. И даже теперь во многих аспектах он отстает от "альтернативной ос". Я не хочу столько ждать, например.
Еще раз. Учитывая отсутствие финансирования и наличие у всех основной работы, организовывать кучку энтузиастов на "догоняние" никто не станет. Потому в сложившихся условиях инициатива Андрея — единственный способ получить нужный инструмент за приемлемое время. Вот основная мысль, которую я пытался донести своим постом.
А зачем Андрею такой "инструмент"? Может ему еще и "транспорт" в виде ЗСУ-23-4 подогнать?
Ты видишь альтернативные инструменты? Покажи их нам.
А почему вы отвечаете вопросом не на тот вопрос?
Для реверс-инженеринга, очевидно же.
Потому что их нет. Потому аналогия с транспортом, очевидно, неверна.
Ага-ага, знаем мы такой реверс инжинеринг. Из-за такого реверс инженеринга скоро подтереться будет нельзя без прочтения EULA, двух ключей и авторизации на сервере.
Ты не поверишь, но реверс инжиниринг включает в себя не только взлом. Ну да пофиг, этот тред был создан не для обсуждения этической стороны процесса.
Ушел работать )
Прочитай ради интереса что-нибудь вроде первого абзаца http://ru.wikipedia.org/wiki/Реверс-инже... проежде чем спорить :)
Алсо, при разработке твоего любимого линукса тоже приходилось заниматься этим богомерзким делом, так что...
> techpriest
> любимого линукса
УШЕЛ ЗА ПОПКОРНОМ
Ну он Линуса вспоминал, как пример успешного догоняния )
Позиция, кстати, беспроигрышная, во всяком случае для меня. Либо линукс говно и тогда я набираю очки в линуксметасраче, либо догнать и перегнать можно и я превозмогаю сливом оппонентов в этом треде =3
Ну и расскажи же мне, с какой законной целью можно заниматься реверс-инженерингом софта?
Окей, линукс незаконен.
Не подменяй тезис. Даже школота до такого не опускается.
Читай внимательнее, даже школота это может )
При разработке линукс приходилось пользоваться реверс-инжинирингом. В частности для написания некоторых драйверов, когда проприетарные спеки были закрыты. Ну и вайн, конечно, который наполнен результатами re чуть менее чем полностью.
Следовательно, придется либо признать, что законные цели существуют, либо признать линукс незаконным.
А еще нельзя забывать про анализ малвари, поиск и предотвращение бекдоров, оставленных в софте etc.
Каким образом законность вдруг стала подмножеством вареза?
А законные применения так же существуют: в тех же антивирусных лабараториях без реверс-инженеринга не обойтись.
И изъятие защиты от нелегального копирования.
Да, и это. Но ты вроде как спрашивал о наличии законных целей для реверс-инжиниринга, или ты об этом забыл? )
Ок, ответ принят. А теперь расскажи, зачем этим заниматься непонятному одиночке^W^W частному лицу?
Вайн писали не "частные лица"? Или драйверы в ядро?
Чтобы написать вайн, не нужно копаться в ассемблерных листингах. Достаточно раздела MSDN про WinAPI.
там не описаны недокументированные особенности
Да неужели? ) Попробуй загуглить про недокументированные возможности, и про то, кто и зачем ими пользуется.
Они описаны в других источниках.
А теперь на секунду включаем здравый смысл и задумываемся, откуда же там взялось их описание?
например, в каких?
Ну ты и долбоёб.
Например, здесь: http://goo.gl/Z9yJL
и каким же образом их описания там появились?
Я могу придумать кучу способов, не включающих RE. Например, утечка внутренних манов.
внутренние маны — это документация => фичи документированные самими MS.
дальше?
Все жирнее и жирнее...
Похитить какого-нибудь разработчика MS и допросить.
УК РФ, Статья 163. Вымогательство.
В конце концов, раскурить утекшие исходники.
раскуривание исходников — не re?
Не тот RE, про который мы говорим. Там дизассемблер не нужен.
RE обязательно включает в себя дизассемблирование софта?
Нет. Но если есть сырцы, то это уже не вполне RE.
Алсо, особо недоверчивые могут заглянуть на википедию.
One famous case of reverse engineering was the first non-IBM implementation of the PC BIOS
which launched the historic IBM PC compatible
industry that has been the overwhelmingly dominant computer hardware platform for many years. An example of a group that reverse-engineers software for
enjoyment (and to distribute registration cracks) is CORE which stands for "Challenge Of Reverse Engineering". Reverse engineering of software is protected
in the U.S. by the fair use exception in copyright law.
The Samba software, which allows systems that are not running
Microsoft Windows
systems to share files with systems that are, is a classic example of software reverse engineering,
[10]
since the Samba project had to reverse-engineer unpublished information about how Windows file sharing worked, so that non-Windows computers could emulate
it. The Wine
project does the same thing for the Windows API,
and OpenOffice.org
is one party doing this for the Microsoft Office
file formats. The ReactOS
project is even more ambitious in its goals, as it strives to provide binary (ABI and API) compatibility with the current Windows OSes of the NT branch,
allowing software and drivers written for Windows to run on a clean-room reverse-engineered GPL
free software or open-source counterpart.
И всех этих людей похищали и допрашивали? Нафиг, нафиг, ухожу завтра с работы (
Исходники чуть старее, чем тот уровень совместимости, который реализован в вайне. Пробуй немного думать, прежде чем писать (
Ну и загугли, какие именно компоненты венды были в утекших исходниках (если ты про венду, конечно).
Вот и я говорю, лучше б они исходники почитали. Может, хоть что-то работало бы у всех без проблем.
ты наркоман и школоло. пойди почитай почему сорцы читать низзя в данном случае ни в коем случае.
"Законных применений для re вообще нет!" → "для написания вайна re не нужен!" → "лучше бы вместо re они исходники почитали".
Sapienti sat.
man clean room reverse engineering
> reverse engineering
ДА ТЫ ЖЕ НОРКОМАН!!!
Не передергивай. Я сказал, что частное лицо в RE не нуждается.
алсо: http://consumer.nm.ru/legal_ru.htm
По второму кругу пойдем, да? Trace back to /64, что ли
Да чего уж, берем тред за продолжение и подрезаем нахуй весь стек.
Вот тебя послушать, так мир вообще рухнет, если постоянно не будет производиться RE всего и вся в целях настолько законных, что правоохранительные органы будут приходить к обратным инженерам и умолять их что-нибудь отреверсить. Однако же, в оригинальном посте приводится высер какого-то шпорава, который,судя по этому высеру люто, бешено нуждается в свежей IDA Pro... для обеспечения нелегального копирования программного обеспечения. И вот эта пейраццкая харя заявляет, что Ильфак, сука такая, не желает ему эту иду давать. Сам он написать ничего подобного не способен, иначе уже бы давно начал. Следовательно, он не хороший, годный обратный инженер, который может и напрямую работать, а какое-то чмо, умеющее разве что jmp-ы на nop-ы заменять. Из профессии таких надо гнать, ссаными тряпками.
варезник — не творец, я уже сказал
Я видел, да.
тогда нахуя ты пишешь подобные высеры?
Ты знаешь, что варезник не творец, я знаю. ОП не знает.
Хаотичное рыскание твоей мысли делает меня грустной пандой. Ты либо очень толсто троллишь, либо не умеешь читать и анализировать написанное.
1) "Мир вообще рухнет..." — исключительно твои слова, неприкрытое утрирование. Я нигде не утверждал ничего подобного.
Попробую еще раз напомнить — все началось с того, что ты безапелляционно заявил "законных целей для re не существует!". Я показал, что они существуют. Привел несколько широкоизвестных примеров их применения (биос ibmpc, samba, openoffice, wine, что там еще было). И все, больше я ничего не говорил — ни про то, что "есть только законные цели", ни даже про то, что "Андрей собирается использовать иду исключительно в законных целях". Потому первую часть твоего поста можно пропустить, как заведомо лишенную смысла.
2) "написать ничего подобного не способен, иначе бы уже давно начал" — ты не поверишь, но не всем доставляет удовольствие 15 лет, забив на основную работу, изобретать велосипед. И, кстати, ответ на этот тезис тоже был в треде, примерно на четвертом десятке комментариев.
3) "чмо, умеющее разве что jmp-ы на nop-ы заменять." — судя по тому, что и как ты пишешь, Андрей умеет на порядок больше тебя.
Повторюсь — sapienti sat.
И да, при таком градусе толстоты здесь становится скучно, потому я ухожу. Можете ололокать и засчитывать слив.
1) Ты опять передергиваешь. Я сказал, что законных целей для re частным лицом не существует. Разработчики ваена — полпроцента репрезентативной выборки.
2) Лучше спиздить, да. That's why we can't have nice things.
3) Да, я с асма съебал при первой же возможности и не жалею. Пусть тебя греет мысль что этот Андрей может сходу перечислить все виды условных переходов — ведь это, несомненно, в высшей степени полезный навык.
triple facepalm.
> не существует
> полпроцента
> не существует
Десктопных пользователей ллинукс /почти/ не существует, окей.
> лучше спиздить
Если бы ты хотя бы на секунду попробовал включить мозг — ты бы увидел, что написано чуть выше по треду. Проблема в невозможности покупки программы даже теоретически. Не в отсутствии денег, а в отказе разработчика продавать ее физическим лицам. Попробуй понять разницу, это не сложно.
> да, я с асма съебал
О твоей некомпетентности говорит не то, что ты "съебал с асма", а то, с каким пафосом и упорством ты берешься рассуждать о вещах, которых не понимаешь. "Для написания вайна не нужен реверсинг" — хороший тому пример.