Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Дисассемблирование программы скомпилированной под arm
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Программирование
Kirill_Good
Добрый день!

Столкнулся с тем, что очень хочется узнать алгоритм работы одной программы. Программа в виде бинарника под arm linux, stripped. Так как я не на ты с ассемблером, тем более под arm, то есть ли какие то программы(бесплатные) для перевода в си или псевдо какой то язык, чтобы ни читать ассемблер? Или другой вариант, я прогнал бинарник через strings, и обнаружил логи той части программы, которая мне интересна. Можно ли хотя бы через gdb и ассемблер, найти функцию где скорее всего вызывается printf() c адресом того сторокого литерала(лога)который мне нужен, чтобы не читать весь код? Или можно подсказать, что еще можно сделать. Я в этих делал не силен, поэтому тут.

Спасибо.
SM
IDA Pro может очень сильно помочь. Дизассемблируете, находите строку, xref на нее, ну и место printf-а найдено.
kolobok0
Цитата(SM @ Feb 13 2014, 23:14) *
IDA Pro может очень сильно помочь..


если человек не хочет погружаться в азм - то вряд ли далеко уедет даже с идой...
Aner
Думаю, что не сегодня это бесполезно точно, тем более без опыта писания на ассемблере! Уходит это дело в прошлое по естественно-технологическим и финансовым причинам. Заниматься дизассемблированием программы тем более под arm linux, встречал только разговоры. С исходиками под arm linux не всегда разберешься, а тут только бинарник.
Kirill_Good
А если раздобыть бинарник под х86, сможет ли это улучшить ситуацию? С ассемблером можно разобраться
Alex11
Там полегче, но все равно разбираться придется. Если нужно найти только printf - то это несложно.
Kirill_Good
Спасибо за ответы, буду разбираться
kolobok0
Цитата(Kirill_Good @ Feb 14 2014, 08:20) *
А если раздобыть бинарник под х86, сможет ли это улучшить ситуацию?...


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

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

Если программа писана без ухода от анализатора - то раскрутить не составит большого труда.
Хуже - если авторы это предвидели. И сделали код с учётом реверсинжениринга.
SM
Цитата(kolobok0 @ Feb 14 2014, 15:13) *
да, с этим будет намного легче. т.к. анализатор типа ИДы будет опираться на известные адреса функций ядра и обозначать их мнемоникой.


Для ARM тоже ids-ки можно или найти, или сделать, и тоже будут мнемоники. А если линковка динамическая (что скорее всего, раз arm linux), то тоже будут мнемоники
razoomeika
Спасибо за ответы.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.