Шестнадцатеричные декомпиляторы для ПИК - PullRequest
6 голосов
/ 03 июня 2010

Я столкнулся с проблемой с контроллером PIC Micro.

У меня давно запрограммирован микроконтроллер, и я потерял соответствующий исходный код и принципиальные схемы. Теперь мне нужно инвертировать значение порта. Я могу сделать это, используя НЕ ворота, но это очень сложно. или, в качестве альтернативы, мне нужно написать всю программу обратно.

Я не ожидаю увидеть код обратно в PIC C или MikroC. Достаточно иметь понятный ассемблерный код.

Так есть ли у кого-нибудь опыт работы с хорошим HEX-декомпилятором, который я могу использовать для этой цели? Есть комментарии, основанные на вашем опыте? :)

РЕДАКТИРОВАТЬ: Устройство PIC 16F84A

Ответы [ 3 ]

6 голосов
/ 03 июня 2010

Декомпиляция вряд ли будет практическим решением, и даже менее вероятно, что инструмент для вашей конкретной комбинации компилятора и набора команд даже существует.

Разборка, однако, проста, хотя сможете ли вы разобраться в результирующем коде, это другой вопрос, так как в файле HEX не сохраняются никакие комментарии или символы; если у вас есть оригинальный объектный код, это может сделать разборку более читабельной. Есть много доступных дизассемблеров PIC, просто Google это; Я не могу направить вас к какому-либо конкретному, потому что есть несколько семейств PIC с разными наборами инструкций, а вы не указали.

Простым подходом к разборке было бы просто загрузить ваш HEX-файл в MPLAB и выбрать View-> Disassembly Listing, затем щелкнуть правой кнопкой мыши окна и выбрать «Вывести в файл». Этот вывод может нуждаться в некотором массаже, чтобы он подходил для ввода ассемблеру.

2 голосов
/ 23 июня 2010

Список официальных дизассемблеров PIC приведен в официальном техническом справочнике PICList.

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

http://piclist.com/techref/microchip/dissassemblers.htm

http://piclist.com/techref/microchip/simulators.htm

1 голос
/ 03 июня 2010

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

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

...