Russian Qt Forum
Ноябрь 23, 2024, 17:07 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 2 [3]   Вниз
  Печать  
Автор Тема: указатели или сами объекты...  (Прочитано 13999 раз)
Tonal
Гость
« Ответ #30 : Март 01, 2012, 12:21 »

А скопировать метод вполне можно, если архитектура машины Фон Неймоновская (для большинства современных это ещё так).
...
А куда его копировать? Страницы, в которых лежит код, приложению для записи недоступны. А страницы с данными во всех современных операционках недоступны для выполнения. Да и за чтение из страниц кода операционка может по рукам надавать
Это уже отход от классической архитектуры. Улыбающийся
А зачем это делать - вопроса не было. Был вопрос можно ли и как, если можно. Улыбающийся
На вопрос можно ли - ответ - нет, если использовать только средства языка С/С++.
Но скорее всего можно, если знаешь архитектуру, ОС, компилятор+линкер.

Вопрос зачем опять же зависит от задачи.
Например пакеры и многие защитки в винде построены на возможности копировать код (распоковка/расшифровка по требованию).
В сущности они подменяют стандартный загрузчик ОС. Вроде бы это можно сделать в linux штатными методами, но даже при наличии штатных методов для реализации загрузчика нужно уметь заполнить некоторую область памяти инструкциями и отметить её выполняемой...

Другой пример - в основе оконной библиотеки OWL лежала возможность выполнять код из кучи - для каждого экземрляра окна создавался небольшой переходник который регистрировался как оконная функция WinApi.
Если не ошибаюсь, то же делается и в VCL, WTL, MFC.
Хотя две последние детально не ковырял, он это один из самых быстрых способов использовать оконное WinApi в объектных библиотеках. Улыбающийся

Так что причины могут быть. Но чисто средствами С/С++ это не решается. Улыбающийся
Записан
Страниц: 1 2 [3]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.128 секунд. Запросов: 20.