Вниз
Скачать: CL | DM;

Дизассемблер: переводить или искать аналог?   Найти похожие ветки 

← →
ProgRAMmer Dimonych ©   (2011-08-12 14:45) [0]

Стоит задача: перенести с C++ на Delphi код, использующий сишный модуль для дизассемблирования. В этом модуле и загвоздка: очень много объявлений константных массивов из структур, да ещё и идентификаторы есть, отличающиеся только регистром. Решил замахнуться на ручной перевод, перелопатил гору кода - где-то вручную, где-то поиском и заменой - через пару часов обнаружил, что старания напрасны: некоторые идентификаторы запортил напрочь.

Рассматриваю 3 варианта:

1) Найти хороший конвертер

Поиск в Google дал несколько утилит, которые, видимо, прямо на коленке были слеплены. Например, описание константного массива структур, в которых также есть вложенные структуры, превращает в блоки begin-end и между ними - тоже ересь. :(

2) Найти аналогичный модуль на Delphi

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

3) Навороченный текстовый редактор

Не знаю, существуют ли такие вообще, но если бы найти редактор, в котором можно было бы Поиск-замену выполнять по идентификаторам. Или хотя бы задавать для поиска не просто символы, а маску (например, третье слово "operand" в строке) - это бы сильно помогло.

=====

Поделитесь, пожалуйста, информацией по этому поводу.


← →
Игорь Шевченко ©   (2011-08-12 15:06) [1]


> В сабжевом поддерживаются и 64-битные инструкции, и все
> расширения - и всё это нужно оставить


на два дня дел


← →
ProgRAMmer Dimonych ©   (2011-08-12 15:29) [2]


> на два дня дел

Только вот двух дней-то и нет :(


← →
Игорь Шевченко ©   (2011-08-12 15:56) [3]

это я имел в виду не перевод с С(++), а написать с нуля модуль дизассемлирования IA32, x64


← →
ProgRAMmer Dimonych ©   (2011-08-12 16:01) [4]

... сохранив совместимость с сишной реализацией.


← →
DiamondShark ©   (2011-08-12 17:04) [5]


> 3) Навороченный текстовый редакторНе знаю, существуют ли
> такие вообще, но если бы найти редактор, в котором можно
> было бы Поиск-замену выполнять по идентификаторам. Или хотя
> бы задавать для поиска не просто символы, а маску (например,
>  третье слово "operand" в строке) - это бы сильно помогло.

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


← →
tesseract ©   (2011-08-12 17:23) [6]


> 1) Найти хороший конвертер


c2pas заголовки и данные относительно неплохо переводил.


← →
Anatoly Podgoretsky ©   (2011-08-12 19:27) [7]

> Игорь Шевченко  (12.08.2011 15:06:01)  [1]

Значит не нужно


← →
Anatoly Podgoretsky ©   (2011-08-12 19:28) [8]

[2]


← →
Rouse_ ©   (2011-08-12 23:57) [9]

Движок дизасма пишется за полтора - два дня (большее время на сверку с азбукой интеловской уходит).
Совет - брось, и напиши сам, заодно и разберешся что и как...


← →
Компромисс   (2011-08-15 10:30) [10]

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


← →
Игорь Шевченко ©   (2011-08-15 10:35) [11]

Компромисс   (15.08.11 10:30) [10]

потому что они даром никому не нужны


← →
Компромисс   (2011-08-15 12:07) [12]

Игорь Шевченко ©   (15.08.11 10:35) [11]

Понятно, спасибо.


← →
icWasya ©   (2011-08-15 15:36) [13]

В общем случае нужно отделить ассемблерные инструкции от того, что ими не является.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.005 c
2-1313196605
Gu
2011-08-13 04:50
2011.12.04
Запущена ли Delphi IDE


15-1312959982
stas
2011-08-10 11:06
2011.12.04
DirectX вывести фигуру или текст на рабочий стол


4-1252596453
harisma
2009-09-10 19:27
2011.12.04
PasswordChar для TEdit


15-1312952292
OW
2011-08-10 08:58
2011.12.04
Дизайнеры прикалываются %)


2-1313585266
Antoxa
2011-08-17 16:47
2011.12.04
Load/Save ListView




   Наверх