|
|
||||||||||||||||||||||||||
Нарушение стека в RunDll32. Что плохого случится?07.03.2016, 21:00. Показов 675. Ответов 1
Здравствуйте!
Почитал статью от Raymond Chen What can go wrong when you mismatch the calling convention? . Я ее немного переведу: ___________________________________ Точки входа Rundll32.exe При вызове функции с помощью rundll32.exe необходимо, чтобы она имела особый прототип, задокументированный в этой MSKB. Но это не останавливает людей от использования rundll32 для вызова самых различных функций, которые не были разработаны для вызова через rundll32, подобно LockWorkStation или ExitWindowsEx из user32. Давайте разберемся, что произойдет, если попробовать вызвать rundll32.exe для выполнения функции такой, как ExitWindowsEx: rundll32 парсит свою командную строку и вызывает функцию ExitWindowsEx, предполагая, что она объявлена подобно этому:
Теперь предположим, что собирается произойти возврат из функции. (Например, неудачный выход из системы). Функция ExitWindowsEx очищает 2 параметра в стеке, не зная, что было передано 4. Результирующий стек будет таким:
__________________________________ Собственно, мне интересно всего лишь, чем это грозит для рядового приложения, которое вызывает rundll32. Ясно, что rundll32 может "упасть" от такой попытки вернуться по некорректному адресу. Есть ли другие опасности? (это чисто академический интерес) Добавлено через 23 минуты GunSmoker оказывается уже перевел.
1
|
||||||||||||||||||||||||||
| 07.03.2016, 21:00 | |
|
Ответы с готовыми решениями:
1
Что случится если ManualReset пoменять на AutoReset? Что случится если функция is executed и precondition для этой функции is not met? Может так случится, что процесс приема новых сообщений и их прорисовки превратится в бесконечный цикл? |
|
Ушел с форума
|
|
| 08.03.2016, 12:27 | |
|
Rundll32 может упасть. Она может "зациклиться" и тогда родительский процесс
никогда не дождется ее завершения. Она может вернуть "странный" код выхода. Если Rundll32 вызвана с правами администратора, то, в теории, может произойти вообще все что угодно, вплоть до форматирования системного диска ![]() Хотя вероятность такого развития событий очень маленькая. Просто как звезды станут...
1
|
|
| 08.03.2016, 12:27 | |
|
Помогаю со студенческими работами здесь
2
Что плохого в явном написании условия в if? Что плохого в 2 partial classes в одном файле? Объясните мне, что же такого плохого в goto? что плохого если я делаю ф-ю main типа void При перекомпиляции сервера перекомпилируется клиент, а что, собственно в этом плохого? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|