Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 16.02.2012, 22:57  
vitvp
Вид на жительство
 
Регистрация: 13.08.2007
Адрес: Kiev, UA
Сообщений: 431
Сказал спасибо: 423
Сказали Спасибо 214 раз(а) в 94 сообщении(ях)
vitvp на пути к лучшему
По умолчанию Re: Реверс хекскода Atmel

Сообщение от ut1wpr Посмотреть сообщение
Просто любопытно, что это всё дало нашему топикстартеру, который после своего второго поста на первой странице сюда больше не заглядывал?
Явно не "ключ от квартиры, где деньги лежат". Но, форум и создан не под "нажми на кнопку, получишь результат" - под общение и обмен опытом готовых врубаться засучив рукава.

2 ut1wpr, #69
Не стоит так категорично о RE. Для начинающих он, качественных разработок, - неплохая школа. Для профи - средство для выведения шарлатанов на чистую воду,
типа этого: https://kazus.ru/forums/showthread.php?p=491477
Реклама:
vitvp вне форума  
Непрочитано 17.02.2012, 01:44  
_Артём_
Гражданин KAZUS.RU
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: Реверс хекскода Atmel

Сообщение от anakost Посмотреть сообщение
Допустим в подрограмме идет сложная и запутанная отработка некоего массива памяти. Я думаю что имея логгер памяти и войдя в подпрограмму, поставив курсор на конец, запустив исполнение до курсора, потом открыв отчет логгера можно будет не спеша исследовать к какой области памяти было обращение и лучше понять алгоритм. Встречал ли кто то что нибудь подобное?
Вывод логгера что то типа:
1. Строка (номер), откуда было обращение.
2. Тип (R/W).
3. Байт (желательно)
В чём сложность написать такой?
Вызвать на стадиях 1 и 3 функцию SendMemory то порт.
На Com-порту повесить принимающую программу, которая сохранит в файл. Полдня работы (или меньше).
_Артём_ вне форума  
Непрочитано 17.02.2012, 03:52  
vitvp
Вид на жительство
 
Регистрация: 13.08.2007
Адрес: Kiev, UA
Сообщений: 431
Сказал спасибо: 423
Сказали Спасибо 214 раз(а) в 94 сообщении(ях)
vitvp на пути к лучшему
По умолчанию Re: Реверс хекскода Atmel

Сообщение от anakost Посмотреть сообщение
Искал ранее, не нашел, но не оставляю попыток найти логгер памяти для отладчика AVR. Обьясню что я имею в виду.
Допустим в подрограмме идет сложная и запутанная отработка некоего массива памяти. Я думаю что имея логгер памяти и войдя в подпрограмму, поставив курсор на конец, запустив исполнение до курсора, потом открыв отчет логгера можно будет не спеша исследовать к какой области памяти было обращение и лучше понять алгоритм. Встречал ли кто то что нибудь подобное?
Вывод логгера что то типа:
1. Строка (номер), откуда было обращение.
2. Тип (R/W).
3. Байт (желательно)
Для отладчика это скорее не логгер, а profiler. Для AVR не сталкивался. Во взрослых IDE, Visual Studio for examle, присутствует штатно и используется для анализа и оптимизации производительности - тайминг и частота вызова ф-ий и т.п.

По-слухам Code::Blocks (есть он и для AVR) имеет Сode Profiler в виде не бесплатного плагина. Как там с этим и его функциональностью - без понятия.
vitvp вне форума  
Непрочитано 17.02.2012, 04:20  
vitvp
Вид на жительство
 
Регистрация: 13.08.2007
Адрес: Kiev, UA
Сообщений: 431
Сказал спасибо: 423
Сказали Спасибо 214 раз(а) в 94 сообщении(ях)
vitvp на пути к лучшему
По умолчанию Re: Реверс хекскода Atmel

Сообщение от vitvp Посмотреть сообщение
Для отладчика это скорее не логгер, а profiler. Для AVR не сталкивался. Во взрослых IDE, Visual Studio for examle, присутствует штатно и используется для анализа и оптимизации производительности - тайминг и частота вызова ф-ий и т.п.

По-слухам Code::Blocks (есть он и для AVR) имеет Сode Profiler в виде не бесплатного плагина. Как там с этим и его функциональностью - без понятия.
Там скорее всего надстройка над GCC/GDB, штатно и так имеющаяся:

http://www.cs.utah.edu/dept/old/texinfo/as/gprof.html
".\Program Files\Atmel\WinAVR\doc\binutils\gprof.html"
".\Program Files\Atmel\WinAVR\bin\avr-gprof.exe"
vitvp вне форума  
Непрочитано 17.02.2012, 09:50  
anakost
Временная регистрация
 
Регистрация: 15.05.2010
Адрес: г. Липецк
Сообщений: 88
Сказал спасибо: 8
Сказали Спасибо 16 раз(а) в 10 сообщении(ях)
anakost на пути к лучшему
По умолчанию Re: Реверс хекскода Atmel

Сообщение от _Артём_ Посмотреть сообщение
В чём сложность написать такой?
Вызвать на стадиях 1 и 3 функцию SendMemory то порт.
На Com-порту повесить принимающую программу, которая сохранит в файл. Полдня работы (или меньше).
Не понял вашу мысль. Как заставить уже скомпилированный *.hex генерировать подобные вызовы?

Пока склоняюсь к использованию отладчика VMLab.
Как известно, в модели памяти AVR регистры и SRAM находятся в одной непрерывной области памяти. Адреса 0х00...0х59 занимают регистры, а 0х60...RAMEND занимает SRAM.
В VMLab есть функции обратного вызова On_register_read(ID) и On_register_write(ID). Они позволяют легко отследить обращения к регистрам по адресам 0х00...0х59. Функций On_SRAM_read(Adr) и On_SRAM_write(Adr) к сожалению нет.
Для поддержки новых кристаллов, адреса новых регистров у которых залезли в область SRAM, можно в INI файле указать их адреса.
И для того, чтобы отследить обращения к SRAM необходимо будет определить в INI файле столько фиктивных регистров, сколько имеется ячеек SRAM. Т. е. 512 для Atmega8535, 1024 для Atmega8, 2048 для ATmega16 и т. д.
И по каждому вызову On_register перебирать в цикле все вновь определенные регистры, ища нужный. Не нравится мне такой подход, но ничего лучше я пока не придумал.
Другой подход рекомендуют сами разработчики VMLab. Они советуют обратиться на официальный форум VMLab, и если требуемая функциональность реализуема, для вас могут собрать специализированную версию VMLab. Я думал о том чтобы обратиться на этот форум с просьбой включить в сборку Callback вызовы On_SRAM_read(Adr) и On_SRAM_write(Adr), но меня останавливает незнание разговорного английского.
Во всех учебных зведениях изучал немецкий, а технический английский выучил сам, работа заставила. И боюсь переводчик GOOGLE может настолько исказить мою мысль, что меня просто не поймут.
anakost вне форума  
Непрочитано 17.02.2012, 15:34  
_Артём_
Гражданин KAZUS.RU
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: Реверс хекскода Atmel

Сообщение от anakost Посмотреть сообщение
Не понял вашу мысль. Как заставить уже скомпилированный *.hex генерировать подобные вызовы?
Вставить в нужное место hex-файла вызов своей функции.

Сообщение от anakost Посмотреть сообщение
Пока склоняюсь к использованию отладчика VMLab.
По мне jtag+рабочая схема лучше.
VMLab не использовал, ничего сказать не могу (но думаю что все эти симуляторы - это несколько не то).
_Артём_ вне форума  
Непрочитано 17.02.2012, 15:57  
anakost
Временная регистрация
 
Регистрация: 15.05.2010
Адрес: г. Липецк
Сообщений: 88
Сказал спасибо: 8
Сказали Спасибо 16 раз(а) в 10 сообщении(ях)
anakost на пути к лучшему
По умолчанию Re: Реверс хекскода Atmel

Сообщение от _Артём_ Посмотреть сообщение
Вставить в нужное место hex-файла вызов своей функции.
Сомневаюсь что это вообще работоспособно. При вставке даже единственного байта в середину скомпилированного *.hex файла у вас уедет вся адресация по уже распределенным компилятором адресам.


Сообщение от _Артём_ Посмотреть сообщение
По мне jtag+рабочая схема лучше.
VMLab не использовал, ничего сказать не могу (но думаю что все эти симуляторы - это несколько не то).
Не могу с этим не согласиться. Живая отладка через JTAG всегда лучше симуляции. Но во первых JTAG есть не у всех камней. А во вторых, логгер памяти предназначен не для симуляции, а для вдумчивого и неспешного анализа кода.
anakost вне форума  
Непрочитано 17.02.2012, 18:00  
AJScorp
Почётный гражданин KAZUS.RU
 
Аватар для AJScorp
 
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 735 раз(а) в 416 сообщении(ях)
AJScorp на пути к лучшему
По умолчанию Re: Реверс хекскода Atmel

Сообщение от anakost Посмотреть сообщение
При вставке даже единственного байта в середину скомпилированного *.hex файла у вас уедет вся адресация по уже распределенным компилятором адресам.
Для этого часть команд из исходного кода переносят в свою функцию, а в освободившемся месте прописывают вызов. Порядок исполнения команд исходного кода будет тот же, плюс вызов дописанной функции.
AJScorp вне форума  
Непрочитано 17.02.2012, 18:27  
anakost
Временная регистрация
 
Регистрация: 15.05.2010
Адрес: г. Липецк
Сообщений: 88
Сказал спасибо: 8
Сказали Спасибо 16 раз(а) в 10 сообщении(ях)
anakost на пути к лучшему
По умолчанию Re: Реверс хекскода Atmel

Сообщение от AJScorp Посмотреть сообщение
Для этого часть команд из исходного кода переносят в свою функцию, а в освободившемся месте прописывают вызов. Порядок исполнения команд исходного кода будет тот же, плюс вызов дописанной функции.
Это напоминает монитор-отладчик во времена 51 камней. Если помните на время отладки средствами условной компиляции в программу добавлялся монитор, и вся отладка шла через него. После отладки монитор изымался. Возможно подобный прием применим и до сих пор, но для реверсинга это как то круто. Впрочем это только мое мнение.
anakost вне форума  
Непрочитано 17.02.2012, 20:33  
AJScorp
Почётный гражданин KAZUS.RU
 
Аватар для AJScorp
 
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 735 раз(а) в 416 сообщении(ях)
AJScorp на пути к лучшему
По умолчанию Re: Реверс хекскода Atmel

Сообщение от anakost Посмотреть сообщение
Возможно подобный прием применим и до сих пор, но для реверсинга это как то круто.
Это из моего прошлого опыта по "лечению" программ, способ применялся в том случае, когда было лень докапываться до сути, либо не было времени. И да, для реверсинга это совсем не круто.
AJScorp вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Atmel + tsk worldmasters Микроконтроллеры, АЦП, память и т.д 2 14.01.2009 11:14
[Решено] Atmel помер Snixers Отвлекитесь, эмбеддеры! 8 11.10.2008 00:24
Дизассемблирование Atmel dimmich Микроконтроллеры, АЦП, память и т.д 14 01.10.2008 12:39
ATMEL AT89C51. karik3 Микроконтроллеры, АЦП, память и т.д 0 06.12.2005 12:32


Часовой пояс GMT +4, время: 17:57.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot