Дизассемблирование

Модератор: Модераторы разделов

BratSinot
Сообщения: 812
ОС: Slackware64

Дизассемблирование

Сообщение BratSinot »

Доброго времени суток!

Нужно дизассемблировать исполняемый, нативный файл в исходный код какого-нибудь ассемблера, чтоб можно было потом скомпилировать его. Пробовал objdump(круто, что он Intel синтаксис знает), но он выдает свои комментарии, адрес где комманда и т.д., а как это убрать я не нашел.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Дизассемблирование

Сообщение sash-kan »

grep/sed/awk/etc?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
deadhead
Сообщения: 1913
Статус: zzz..z

Re: Дизассемблирование

Сообщение deadhead »

nm?
[x] close
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: Дизассемблирование

Сообщение BratSinot »

sash-kan писал(а):
08.09.2011 23:19
grep/sed/awk/etc?

Ну да, только учитывая что адреса разные, комментарии на адреса не похожи, короче grep'нуть никак. Да и потом, мне код компилируемый нужен, а там допустим объявления секций не через ".section" и дальше код, а опять-же комментарием.

deadhead писал(а):
09.09.2011 10:16
nm?

nm не дизассемблер, он просто символы читает, коих в strip'нутом фале и в помине нет.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Дизассемблирование

Сообщение sash-kan »

BratSinot
да, правильно формализовать искомое — непростая задача·
но гораздо чаще выполнимая, нежели невыполнимая·
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Дизассемблирование

Сообщение serzh-z »

BratSinot
Лучше IDA Pro ещё, кажется, ничего не придумали. У него есть версия для Linux и старые версии, кажется, бесплатны.
Спасибо сказали:
Аватара пользователя
taaroa
Сообщения: 1319

Re: Дизассемблирование

Сообщение taaroa »

serzh-z писал(а):
09.09.2011 23:54
есть версия для Linux и старые версии, кажется, бесплатны.

старые полные версии только под nt, новые demo-версии для gnu/macos/nt кастрированы чуть более чем полностью (80x86 & arm). а новые full-версии для физ.лица даже купить-то не так уж и просто.
:wq
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: Дизассемблирование

Сообщение BratSinot »

serzh-z писал(а):
09.09.2011 23:54
BratSinot
Лучше IDA Pro ещё, кажется, ничего не придумали. У него есть версия для Linux и старые версии, кажется, бесплатны.

А зачем мне проперитарщина? Хоть сам дизассемблер пиши...
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

Re: Дизассемблирование

Сообщение frp »

BratSinot писал(а):
08.09.2011 19:06
Нужно дизассемблировать исполняемый, нативный файл в исходный код какого-нибудь ассемблера, чтоб можно было потом скомпилировать его.

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

Из свободных есть lida и bastard, но оба на деле малопригодны.
BratSinot писал(а):
10.09.2011 07:48
А зачем мне проперитарщина? Хоть сам дизассемблер пиши...

Если осилите - выкладывайте, будет интересно посмотреть. Если всерьез решили заняться - советую посмотреть на distorm - годный движок дизассемблера (то есть, умеет просто парсить последовательный блок комманд и выдает удобно обрабатываемую структуру). Если займетесь и у меня будет свободное время - помогу.
Спасибо сказали: