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