A.Lex 0 27 февраля, 2017 Опубликовано 27 февраля, 2017 · Жалоба Добрый всем день. возникла необходимость восстановить программу по HEX-файлу. Использую d52.exe, но результат неприемлемый. На выходе нечто похожее на программу, но в изобилии команды вида movx @dptr,a которые смысла не имеют при отсутствии внешней памяти (а ее нет в исходном устройстве). Есть ли вероятность получить работоспособный код, или лучше выбросить? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Палыч 10 27 февраля, 2017 Опубликовано 27 февраля, 2017 · Жалоба Есть ли вероятность получить работоспособный код, или лучше выбросить? Чтобы получить "исходники" из hex, дизассемблеру нужны подсказки от человека. Получение хороших "исходников" - итерационный процесс: подсказки человека несколько раз уточняются. Лучше (удобнее) вносить уточнения в интерактивном режиме. Лучший интерактивный дизассемблер - IDA. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
A.Lex 0 28 февраля, 2017 Опубликовано 28 февраля, 2017 · Жалоба Спасибо Я лет 20 назад пользовался DASM51, там было легко и просто. Правда, контроллеры были Intel Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vladec 12 28 февраля, 2017 Опубликовано 28 февраля, 2017 · Жалоба А не понятные команды, это могут быть какие нибудь таблицы Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
A.Lex 0 28 февраля, 2017 Опубликовано 28 февраля, 2017 · Жалоба А не понятные команды, это могут быть какие нибудь таблицы Да, таблицы там есть. Но все равно в теле программы "левые"команды. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Палыч 10 28 февраля, 2017 Опубликовано 28 февраля, 2017 · Жалоба Но все равно в теле программы "левые"команды. Большинство дисассемблеров не могут разделить команды и "константы" в памяти программ. "Константами" могут выступать, например, строки текста, выдаваемые программой на дисплей/терминал. Тогда команде "movx @dptr,a" соответствует байт со значением F0, что, вероятно, соответствует какой-то букве кириллицы (в некоторых кодировках - буква "р"). В некоторых дизассемблерах человек может подсказать, например: "с адреса ХХХХ лежит строка символов, которая заканчивается нулевым символом"... Естественно, подсказки - некие специфические команды, уникальные для каждого дизассемблера. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 38 28 февраля, 2017 Опубликовано 28 февраля, 2017 · Жалоба "Константами" могут выступать, например, строки текста, выдаваемые программой на дисплей/терминал. Тогда команде "movx @dptr,a" соответствует байт со значением F0, что, вероятно, соответствует какой-то букве кириллицы (в некоторых кодировках - буква "р"). Вот тут полезно дамп памяти в двоичном представлении иметь: текстовые строчки сразу видны будут Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
A.Lex 0 28 февраля, 2017 Опубликовано 28 февраля, 2017 · Жалоба Спасибо за ответы Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться