Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Тут просматривал свои древние коды. Раньше блин ничего не боялся. Адреса возврата подменял аки... не знаю хто. Бес каких либо негативных последствий, значит башкой се же работал куда можно сунуть. Иногда возникают здесь подобные вопросы. Не призываю но типо вот так >>

Отправлено VasilyS (80.92.96.25) 05 ноября 2010, г. 12:31



extern void dummy( void);
extern void foo(unsigned int x);
void dummy(void ){
printf("func dummy\n");
foo((unsigned int)dummy);
}
void foo(unsigned int x){
*(unsigned int*)(SP+2) = x;
printf("func foo\n");
}
void main(void){
// Ф-ция foo() подменяет свой адрес возврата на dummy()
foo((unsigned int)dummy);
printf(":-("); // Сюда не придет никогда
}


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 89:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru