x893 55 15 декабря, 2022 Опубликовано 15 декабря, 2022 · Жалоба 25 minutes ago, Variant99 said: Поэтому, можно, плиз, на наглядном примере это показать? Это товарищ TOG покажет. main найти - плёвое дело. Сделать пустую программу и посмотреть отладчиком при RESET первым (для STM) вызывается System_Reset (пусть идёт туда) потом вызывается __main, который память и инициализирует. И потом вызывается main(). Вот его то и меняем на свой (но на бумажке записываем) куда нибудь в сводобное место флэш. Но предвательно туда записываем, что нужно поменять в РАМ и потом переходим на записанный на бумажке адрес. Раз TOG нашел адрес в РАМ, который надо поменять, значит и программа сможет его поменять. P.S. можно взять ИДУ или Гидру и всё посмотреть. Или взять Кейл и в эмуляторе (если есть для этого процессора) даже потренироваться Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Variant99 7 15 декабря, 2022 Опубликовано 15 декабря, 2022 · Жалоба Ну не факт, что все в описанной вами последовательности делается. Там в общем нет никаких жестких ограничений на порядок вызовов, поэтому... вот лично я знаю примеры, где после вектора сброса вызывается копирование и инициализация переменных, затем SystemInit, который может быть весьма развесистым, затем инит статических конструкторов языка С++, и лишь паааатооооом уже вызовется main(). Но даже если и найдете этот main, то что с того то? Массив может быть объявлен где угодно и как угодно. Ну а инициализация глобального массива, она как раз выполняется в той секции, которая сразу после вектора сброса, и еще до входа в main(). 7 минут назад, x893 сказал: Это товарищ TOG покажет. нууу... я просто подумал, что вы знаете и делали такое... Оказывается, нет. Печалька. Эх. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 55 15 декабря, 2022 Опубликовано 15 декабря, 2022 · Жалоба 5 minutes ago, Variant99 said: я просто подумал, что вы знаете и делали такое Ну если я ему написал, то можно догадаться делал или нет. Да и ничего там секретного нет. Конечно может быть проверка контрольной суммы программы, шифрация кода для исполнения и много чего можно нагородить. Но проверить то можно. 10 минут и ответ есть. 6 minutes ago, Variant99 said: Ну не факт, что все в описанной вами последовательности делается. Он про Кейл говорил. Хотя в принципе не важно С/С++ и прочее. ИДА/Гидра в помощь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться