реклама на сайте
подробности

 
 
> Дисассемблирование программы скомпилированной под arm
Kirill_Good
сообщение Feb 13 2014, 18:18
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 217
Регистрация: 10-12-10
Из: Москва
Пользователь №: 61 528



Добрый день!

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

Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 9)
SM
сообщение Feb 13 2014, 19:14
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



IDA Pro может очень сильно помочь. Дизассемблируете, находите строку, xref на нее, ну и место printf-а найдено.
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Feb 13 2014, 22:09
Сообщение #3


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(SM @ Feb 13 2014, 23:14) *
IDA Pro может очень сильно помочь..


если человек не хочет погружаться в азм - то вряд ли далеко уедет даже с идой...
Go to the top of the page
 
+Quote Post
Aner
сообщение Feb 13 2014, 22:40
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463



Думаю, что не сегодня это бесполезно точно, тем более без опыта писания на ассемблере! Уходит это дело в прошлое по естественно-технологическим и финансовым причинам. Заниматься дизассемблированием программы тем более под arm linux, встречал только разговоры. С исходиками под arm linux не всегда разберешься, а тут только бинарник.
Go to the top of the page
 
+Quote Post
Kirill_Good
сообщение Feb 14 2014, 04:20
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 217
Регистрация: 10-12-10
Из: Москва
Пользователь №: 61 528



А если раздобыть бинарник под х86, сможет ли это улучшить ситуацию? С ассемблером можно разобраться

Сообщение отредактировал Kirill_Good - Feb 14 2014, 04:22
Go to the top of the page
 
+Quote Post
Alex11
сообщение Feb 14 2014, 06:24
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



Там полегче, но все равно разбираться придется. Если нужно найти только printf - то это несложно.
Go to the top of the page
 
+Quote Post
Kirill_Good
сообщение Feb 14 2014, 06:36
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 217
Регистрация: 10-12-10
Из: Москва
Пользователь №: 61 528



Спасибо за ответы, буду разбираться
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Feb 14 2014, 11:13
Сообщение #8


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(Kirill_Good @ Feb 14 2014, 08:20) *
А если раздобыть бинарник под х86, сможет ли это улучшить ситуацию?...


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

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

Если программа писана без ухода от анализатора - то раскрутить не составит большого труда.
Хуже - если авторы это предвидели. И сделали код с учётом реверсинжениринга.
Go to the top of the page
 
+Quote Post
SM
сообщение Feb 15 2014, 11:42
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



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


Для ARM тоже ids-ки можно или найти, или сделать, и тоже будут мнемоники. А если линковка динамическая (что скорее всего, раз arm linux), то тоже будут мнемоники
Go to the top of the page
 
+Quote Post
razoomeika
сообщение Apr 16 2014, 10:00
Сообщение #10





Группа: Новичок
Сообщений: 3
Регистрация: 15-04-14
Из: Ростов-на-Дону, ул. Советская 19, оф. 9
Пользователь №: 81 395



Спасибо за ответы.


--------------------
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 12:15
Рейтинг@Mail.ru


Страница сгенерированна за 0.01411 секунд с 7
ELECTRONIX ©2004-2016