Зачем переписывать на C++? Разве не проще пересобрать при помощи Free Pascal?
Зачем переписывать на C++? Разве не проще пересобрать при помощи Free Pascal?
Спортивный интерес - это здорово. Хотя я бы для реверс-инжиниринга использовал бы IDA. Проще написать плагин для неё (если ещё не написан). Интерактивный режим важен. Нужно только найти спецификации obj - файлов. Они точно есть, и причём универсальные для всех OS под PDP-11. Кроме конечно Unix.
Кстати, самое интересное для реверсинга - код, генерируемый компилятором Fortran-4. Фантастически гибкое использование команд PDP-11.
До кучи могу выложить реверснутые исходники K52 под RT-11. С добавленным режимом замены текста.
Oleg N. Cher(19.11.2022)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
bitsaver. Как и всё остальное
- - - Добавлено - - -
По дистрибутивам RT-11 ошибся, думал, на битсайвер их то же выложили
Можно взять отсюда
http://pdp-11.classiccmp.org/RT-11/dists/
По анализу текстов заметил, что переменные VAR2436, VAR2556 и VAR2626 относятся точно к одному типу записи. Это видно по взаимному присвоению в процедуре L10104. Также только эти переменные передаются в качестве параметров в процедуры и функции и с ними используется оператор with. А вот с переменной VAR2506 нигде with не используется и она нигде не передается в качестве параметров в процедуры и функции. Также присвоение значения этой переменной в процедуре L10104 осуществляется отдельно по полям. Это может говорить о том, что VAR2506 это не запись, а отдельные переменные, либо небольшое различие в описании полей RE10, RE12, RE36.
Так как в текстах ещё остались ассемблерные вставки, связанные с присвоением байтовых значений полям RE10, RE12, RE36, ввел через RECORD CASE новые типы, а также ввёл новый тип записи XRECE50, отличающийся от RECE50 только описанием полей RE10, RE12, RE36. Переменные VAR2436, VAR2556 и VAR2626 стали новым типом XRECE50. Переменную VAR2506 оставил типом RECE50.
Также ввёл новый тип для поля RG02 записи RECG1012. В итоге удалось избавится от ассемблерных вставок и сделать присвоение значений на Паскале.
Правильно это или нет, надеюсь узнаем, если DimaRU найдёт и выложит исходники DECOBJ на Паскале.
Результат в присоединённом файле.
nzeemin(20.11.2022), Oleg N. Cher(20.11.2022)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)