Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
12.02.2012, 15:18
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Реверс хекскода Atmel
Сообщение от lviv21
|
А кто запрещает использовать тот же протеус или АВР студию?
|
Никто не запрещает.
Студию уже советовали.
С Протеусом чуть хуже - с исходником не сопоставишь ввиду отсутствия оного. А ещё можно Студию+Протеус в связке.
Только, похоже, советовать уже незачем - нет ТС...
|
|
|
|
12.02.2012, 20:38
|
|
Гражданин KAZUS.RU
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
|
Re: Реверс хекскода Atmel
Ребята, я писал ассемблеры и дизасемблеры, писал на ассемблерах как минимум с десятка МП и МК, и вот что я вам скажу...
В своё время у знаменитого i8080/8085(580вм80/1821вм85) была команда sphl. Она меняла указатель стека sp и регистровую пару hl. А регистровая пара позволяла делать косвенную адресацию... Это позволяло писать на ASM примерно так ...
call PrintStr
db: "выводим строку",0
mov ....
В п/п PrintStr я первым делом менял sp c hl, далее выводил строку опять менял и делал возврат. Таким образом я возвращался на команду следующую за выводимым текстом ... Это, кроме удобства (сразу видно то, что ты выводишь) давало ещё и экономию ... Потому как, в противном случае необходимо было бы загружать адрес строки вывода и т.д.
Понятно, что дизасемблирование такой проги вызывает определённые трудности.... и то только при том, что этот случай не предусматривать ...
====
Сейчас так не пишут ... И очень правильно делают! Да и AVR не позволяет впрямую обратится к указателю стека. И тоже очень правильно!!! Просто пытаются "найболее одарённым" указать, что свою энергию надо пускать в другое русло.
Итак. Какие существуют подводные камни? Скажем применительно к AVR.
Фактически это ijmp. И всё.
Я не буду говорить, про дизасемблеры, я давно ими не пользовался, но я на 99% уверен, что напишу дизасемблер за неделю и восстановление, включая таблицы сделаю почти 100%. Если потрачу на это 2 месяца, то думаю восстановлю всё с гарантированной точностью 100%. Ну если только на обратном конце не будет ставится задача обмануть дизасемблер.
===
Написание дизасемблера - достаточно примитивная задача. Начинается раскрутка с начала кода... Составляются таблицы переходов и таблицы данных. И далее опять раскручивается ...
|
|
|
|
12.02.2012, 20:53
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Реверс хекскода Atmel
Сообщение от SasaVitebsk
|
Да и AVR не позволяет впрямую обратится к указателю стека.
|
А кто запретил обращаться косвенно? Или работать с регистровым полем как с областью памяти (они ж в RAM до адреса $60)?
Сообщение от SasaVitebsk
|
Фактически это ijmp. И всё.
|
ICALL и всякие загрузки с использованием индексных пар, LPm/SPM(опять же прямые и косвенные). Кстати, а в чём они являются засадой?
|
|
|
|
13.02.2012, 00:35
|
|
Гражданин KAZUS.RU
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
|
Re: Реверс хекскода Atmel
Ввиду того, что память данных разделена с памятью програм, то имеет значение только lpm. Понятно, что всё не так просто, но всё же не безнадёжно.
Сообщение от omercury
|
в чём они являются засадой?
|
Засадой является любое динамическое программирование. Для AVR методы всё равно будут статическими, - это чуть лучше, но всё же достаточно сложно раскручивать. Скорее всего там где применяются ijmp/icall - будет всё в ручную.
Раскрутка идёт как клубок ниток. Начинаем сначала, и все переходы-п/п тоже отмечаются. Потом каждая ветка, куда идёт переход, тоже начинает раскручиваться. Выделяются п/п и прерывания.
|
|
|
|
13.02.2012, 00:54
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 7,984
Сказал спасибо: 0
Сказали Спасибо 4,943 раз(а) в 2,371 сообщении(ях)
|
Re: Реверс хекскода Atmel
в студии все видно, на копии в текстовом редакторе метки расставляем, белиберду оставляем в памяти на том же месте как массив .db, ассемблируем и проверяем. слабонервные пьют валидол
чет флудим, греемся на морозе, ТС все равно ужо не будет...
|
|
|
|
13.02.2012, 00:59
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Реверс хекскода Atmel
Сообщение от SasaVitebsk
|
имеет значение только lpm
|
SPM хуже. Можно куски кода, из EEPROM скажем, переписывать. Например вектора прерываний...
|
|
|
|
13.02.2012, 01:29
|
|
Прописка
Регистрация: 16.12.2009
Адрес: Севастополь
Сообщений: 204
Сказал спасибо: 4
Сказали Спасибо 101 раз(а) в 62 сообщении(ях)
|
Re: Реверс хекскода Atmel
Повеселитесь, посмейтесь на дедушкой
Полетел на прошлой неделе HDD, причём во время резервного копирования... Почти месяц работы... под хвост, накрылся в общем. Сгинула и модификация одного из проектов. Восстанавливаюсь со старой копии... шью в новую плату... не работает, конечно. Ушёл и список изменений в ПО, само собой.
Скачал дизассемблер для АВР и построчно сверяю коды с предыдущей версией Тяжело, блин. А я ведь в 80-х СРМ под Синклер дизассемблировал... или когда там Синклерами баловались... старею, лень все эти lpm и sbrc читать... как тот теннис... lpm налево... spm направо - это я экран по вертикали на две части разбил... ничего, за час примерно 20% окучил. Потом бросил, до утра. Я жаворонок... в общем, просыпаюсь рано...
И вот что странно: пока ни одного различия не нашёл, в самых критичных местах благолепие... но не работает... жду утра...
Последний раз редактировалось IGKo; 13.02.2012 в 01:33.
|
|
|
|
13.02.2012, 01:51
|
|
Вид на жительство
Регистрация: 14.06.2009
Адрес: Україна Київська обл. м.Буча
Сообщений: 327
Сказал спасибо: 104
Сказали Спасибо 105 раз(а) в 69 сообщении(ях)
|
Re: Реверс хекскода Atmel
Подумаешь, месяц работы. Тьфу. Вот у меня ноутбук уехал в электричке с результатами работы примерно за пять лет, а с ним в сумке и резервные копии. Примерно за полгода по новой наваял.
|
|
|
|
13.02.2012, 02:14
|
|
Прописка
Регистрация: 16.12.2009
Адрес: Севастополь
Сообщений: 204
Сказал спасибо: 4
Сказали Спасибо 101 раз(а) в 62 сообщении(ях)
|
Re: Реверс хекскода Atmel
Сообщение от Djakovskij
|
Подумаешь, месяц работы. Тьфу. Вот у меня ноутбук уехал в электричке с результатами работы примерно за пять лет, а с ним в сумке и резервные копии. Примерно за полгода по новой наваял.
|
Предохраняться надо... три флешки... нет, четыре... несколько ДВД дисков в разных местах... и писАть на них, писАть по два... нет, три раза в день. Может, это решит дело?
Что-то мне Ваше сообщение напомнило... кто-то тоже дело всей жизни с ноутбуком похерил недавно... Церетели там, или Михалков, в общем, какой-то шибко известный чел...
А вообще это Вы здорово придумали... ноут с копиями в одном месте... что б, значит, не долго мучалась старушка... логично
Нам всем надо курс лекций в ФСБ/СБУ/ГРУ прослушать... они объяснят, как надо секрет хранить... и подписку возьмут сразу...
|
|
|
|
13.02.2012, 02:19
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Реверс хекскода Atmel
Сообщение от Djakovskij
|
Вот у меня ноутбук уехал в электричке с результатами работы примерно за пять лет, а с ним в сумке и резервные копии.
|
Вот поэтому и лежат копии в 3х местах - рабочий, домашний компы и флешка в кармане... На месте последнего изменения и на флехе всегда самое свежее...
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
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, время: 14:15.
|
|