LINUX.ORG.RU

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


0

1

Нужен дизассемблер, умеющий генерить код, который потом можно скомпилировать без лишних проблем. Как, например, IDA и Sourcer умеют генерить исходник для TASM/MASM. Только нужно, чтобы дизассемблер и соответствующий ассемблер работал под Linux.

Bastard вроде умеет генерировать человеческие исходники, но чем их компилить - не знаю. Если уж никаких вариантов не существует - попытаюсь написать транслятор ЭТОГО ЖУТКОГО ФОРМАТА в NASM.

Deleted

objdump+sed/awk? По-любому, с костылями, но получится.

Или тупо та же ида для линукс.

Yareg ★★★
()
Ответ на: комментарий от Yareg

> objdump+sed/awk? По-любому, с костылями, но получится.
Уж проще:

написать транслятор ЭТОГО ЖУТКОГО ФОРМАТА в NASM.

Или вообще вооружится соотв. библиотеками и написать свой дизассемблер, с блэкджеком и шлюхами.

Или тупо та же ида для линукс.

Фриварная IDA есть только под винду, демо тоже только под винду, крякнутая - и та только под винду. И сомневаюсь очень, что она наконец научилась генерировать исходники, которые можно собрать чем-то кроме TASM/MASM или их клонов.

Deleted
()
Ответ на: комментарий от Yareg

:)))

ТС: покажи кусок жуткого формата, хочу тоже ужаснуться.

true_admin ★★★★★
()
Ответ на: комментарий от Yareg

Нет. ЖУТКИЙ ФОРМАТ основан на синтаксисе intel, отдаленно похож на nasm, но имеет несколько отличий, которые не позволяют компилить его NASM (например, между значениями, объявленными db, не стоят запятые, коих требуют и MASM, и TASM, и NASM, объявления секций отличаются, шестнадцатеричные прямо записаны, без h или 0x). Исходник впринципе понятен, но скомпилировать его нельзя. Пример потом приведу.

Deleted
()
Ответ на: комментарий от ACR

> интересно что у вас за программа для линукс но без исходников на C ?

1. Можно подумать, что ЯП кроме C не существует.
2. Можно подумать, что проприетарщины под Linux мало
3. Программа моя, исходники давно потерял. Программу нужно немножко модифицировать. Под DOS подобную задачу решал Sourcer + вменяемый текстовый редактор (коим, как ни странно, обычно выступал виндовый Notepad++) + TASM/MASM + TLINK/MS LINK. Под винды - IDA Pro + Notepad++ (его роль, правда, значительно меньше, чем в случае с Sourcer) + TASM/MASM + TLINK/MS LINK.

Deleted
()
Ответ на: комментарий от Deleted

Если задача одноразовая, то можно тот корявый выхлоп дизассемблера и вручную поправить к компилируемому виду.

Yareg ★★★
()

IDA Pro Advanced для Linux. Другого ничего хорошего не знаю. В линуксе с этим не то, чтобы беда, а почти полная ж**а. Даже аналога OllyDbg нету.

proud_anon ★★★★★
()
Ответ на: комментарий от Yareg

Уже решил проблему - несколько скриптов bash/sed/awk, маленькая программка на C++ и ура - компилируемый nasm сорц. Немного отредактировал (проклятие offset (который в nasm вовсе не offset) - ад для дизассемблера). Поменял нужную функцию, выпилил ненужный код (не знаю, что ЭТО было, но ссылок на ЭТО в коде не нашел). Теперь все работает. Но все же это очень костыльный и кривой способ.

Deleted
()
Ответ на: комментарий от proud_anon

IDA Pro Advanced не бесплатный, в крякнутом виде существует только под винду. Кроме того, там тоже понадобится та же черезж*пная процедура, что и с bastard (а может, и хуже) т.к. IDA генерирует код для MASM/TASM, а синтаксис NASM и других Linux-ассемблеров довольно сильно отличается.

Насчет OllyDbg - говорят, EDB - вполне достойный аналог, хотя сам не пользовался, не знаю. Ну и для труЪ есть gdb (который, сволочь, никак не работает с программами с выпиленными или поврежденными заголовками секций).

Слава богу, хоть с хекс-редакторами проблем нет.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.