Перейти к содержанию
    

как считать программу с AVR?

можно ли превратить код записаный в АТмега8 обратно в ASM? и, если да, то как это сделать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

можно ли превратить код записаный в АТмега8 обратно в ASM? и, если да, то как это сделать?

Если не залочен - считать программатором и загрузить полученный файл в аврстудию или IDA тоже умеет авр дизассемблировать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я, извиняюсь, залочен это типа запрет на считывание? А счиывать программатором через avreal32?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я, извиняюсь, залочен это типа запрет на считывание?

Да если LOCK bits установлены то флеш не прочитать будет.

А счиывать программатором через avreal32?

Ну это смотря какой у вас программатор. Обычно тем софтом, которым шьете можно и обратно прочитать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Совсем недавно возникла такая задача. Попробовал IDA - ужаснулся. Обилие совершенно непонятных настроек, нелогичная навигация по коду (ScrollBar работает непонятно как), половина кода вообще не была сконвертирована, а осталась как .dw ...

Вобщем, не смог даже сохранить нормально файл ассемблированый.

Дальше нашел программу ReAVR - все просто и понятно, так что рекомендую!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А почему он не заменяет константы на имена портов? и где находится сегмент данных(.dseg)? имхо, если известны данные легче разбиратся с программой)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А почему он не заменяет константы на имена портов? и где находится сегмент данных(.dseg)? имхо, если известны данные легче разбиратся с программой)))

А откуда он узнает, как Вы привыкли называть 38-ю ячейку памяти? :)

В редактор, "найти - заменить все"...

Потом дебаггер, точки входа 0-й адрес или другие, в зависимости от fuses "BLB" контроллера. И вперёд. :smile3046:

Изменено пользователем Maik-vs

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А почему он не заменяет константы на имена портов? и где находится сегмент данных(.dseg)? имхо, если известны данные легче разбиратся с программой)))

Так для этого и нужна IDA, там можно все это сделать, и навигация по коду будет очень удобная, перекресные ссылки...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А откуда он узнает, как Вы привыкли называть 38-ю ячейку памяти? :)

...

Например, значение PORTD для atmega16 известно, он(ReAVR) мог бы и подставить!

 

Так для этого и нужна IDA, там можно все это сделать, и навигация по коду будет очень удобная, перекресные ссылки...

 

А .dseg? .dseq IDA покажет?

Изменено пользователем coolibin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Например, значение PORTD для atmega16 известно, он(ReAVR) мог бы и подставить!

А .dseg? .dseq IDA покажет?

 

Ну, если будет знать, что это для меги16, то таки да.

Вы знаете, замена констант - это 2% от всей работы. Вам же надо понять алгоритм, да? А понятных названий для регистров нет, для ячеек памяти нет; где массив, где переменная? Программа писалась на С или ассемблере или ещё на чём? Всё это нужно сделать головой и руками в процессе копания в коде. И никакая IDA Вам тут не поможет. Так что успехов в труде.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не всегда нужно разобраться в алгоритме, часто просто надо поменять какую-нибудь константу. В моем случае надо было самодельный AVR JTAG заставить работать с нестандартным кварцем. Нашел где записывается регистр UBRR, нашел таблицу значений битрейтов, поменял - и все работает! :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ладно, с константами согласен можно и ручками, а вот данные, строки текста, например, ох как помогают в разборе программы, а ReAVR их походу не распознает((((

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...