Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.12.04;
Скачать: 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 вся ветка

Текущий архив: 2011.12.04;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.007 c
15-1312810075
Leon-Z
2011-08-08 17:27
2011.12.04
Компоненты DB.


8-1220686144
dmitry_12_08_73
2008-09-06 11:29
2011.12.04
Реализация полупрозрачной рамки, прямоугольника


2-1312985507
Kalten
2011-08-10 18:11
2011.12.04
непонятки в создании меню в проекте delphi7


2-1312296516
Foma
2011-08-02 18:48
2011.12.04
TIdMultiPartFormDataStream и русский текст


1-1276267645
crash
2010-06-11 18:47
2011.12.04
Работа с памятью