Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
OFF 2All Коллективный разум помогите в споре:
Отправлено
Nikolaj
19 января 2007 г. 14:12
Может ли выполняемая в текущий момент программа модифицировать свой код а оперативной памяти (под виндой)?
Составить ответ
|
Вернуться на конференцию
Ответы
Можно (+)
—
Радиолюбитель без лицензии
(19.01.2007 17:42:0
213.154.220.39
, 184 байт)
Кстати вспомнил свою практику ассемблера, раньше очень плотно с ним общался и пытался сделать следующее (+)
—
eXeC001er
(19.01.2007 15:57:48
83.239.13.202
, 327 байт)
При желании - все можно...
—
argus98
(19.01.2007 14:43:53
81.22.205.230
,
пустое
)
Карикатура на кибернетику 50гг: Робот ковыряется в своих кишках.
—
AZ
(19.01.2007 14:38:36
91.145.192.235
,
пустое
)
Ответ: тут такое дело...
—
Dima_Ag
(19.01.2007 14:36:27
87.236.81.130
, 936 байт)
Если прогу, у которой CS=DS под XP запустить и попробовать модифицировать сегмент данных, то XP скорее всего пошлет это дело. А 98 будет выполнять
—
Пиков
(19.01.2007 14:47:15
87.241.200.1
,
пустое
)
Если разные CS и DS указывают на дескрипторы с разными свойствами (исполняемый и для данных), но дескрипторы ссылаются на один и тот участок адресов памяти, то возможно.
—
CD_Eater
(19.01.2007 16:07:33
89.179.240.72
,
пустое
)
Суть DS = CS; MOV DS, CONST; и т.д. А затем это модифицированное ещё и выполнить.
—
Nikolaj
(19.01.2007 14:52:45
213.183.106.185
,
пустое
)
Примерно об этом и спор.
—
Nikolaj
(19.01.2007 14:49:38
213.183.106.185
,
пустое
)
И что. Ни у кого MASMа на компе не осталось уже? Я вот думал, что есть, полез посмотреть и оказывается НЕТУ. Проверить - дело 10 минут.
—
Пиков
(19.01.2007 14:54:20
87.241.200.1
,
пустое
)
неа. есть четкое разделение на сегмент данных и сегмент кода, и доступ к сегменту кода тока на чтение. может быть из нулевого кольца и можно. все это про WinXP,Win2000,WinNT. В 95-98 вроде такое еще было возмоможно. Это принцип действия полимофорных(может не правильно написал) вирусов.
—
eXeC001er
(19.01.2007 14:18:48
83.239.13.202
,
пустое
)
Кстати про нулевое кольцо, это я правду сказал! SoftIce работает на этом уровне и из него можно править сегмент кода любой программы.
—
eXeC001er
(19.01.2007 14:25:14
83.239.13.202
,
пустое
)
А сегмент кода в котором он сам находится может?
—
Nikolaj
(19.01.2007 14:54:40
213.183.106.185
,
пустое
)
если он находится в нулевом кольце, он можен создать алиас своего сегмента кодов с аттрибутами сегмента данных и править его до бесконечности... Но в нулевое кольцо таких не пускают...
—
д
(19.01.2007 15:09:57
194.44.194.11
,
пустое
)
Ответ: Спасибо! Приятно быть победителем!
—
Nikolaj
(19.01.2007 14:22:8
213.183.106.185
,
пустое
)
Не уверен я что ты победитель. Если модель памяти tiny, то сегмент один всего. 64К. А каков минимальный размер странички ММУ сегодняшних х86?? Гы-гы :-)
—
Dr_Alex
(19.01.2007 14:25:44
213.33.211.66
,
пустое
)
А разве данные и исполняемый код грузятся на одну страницу?
—
Nikolaj
(19.01.2007 14:42:42
213.183.106.185
, 499 байт)
Файлы *.СОМ - на одну страницу. Под досом самомодификация делалась просто, хоть в ЕХЕ, хоть в СОМ (+):
—
argus98
(19.01.2007 14:59:18
81.22.205.230
, 268 байт)
Не путать горох с капустой! Ограничение 64к сегмент это только в реальном или виртуальном режиме, а в защищенном режиме такого ограничения нет! Только если ты сам на себя таковое наложишь...
—
д
(19.01.2007 14:39:36
194.44.194.11
,
пустое
)
В том и вопрос - станет ли винда для 100-байтной программы выделять аж 2 сегмента или не станет.. Ответа я не знаю..
—
Dr_Alex
(19.01.2007 14:54:44
213.33.211.66
,
пустое
)
Винда вообще таких на пушечный выстрел не подпускает... Из досовского окошка она тебе позволит выполнить только досовский код(+)
—
д
(19.01.2007 15:15:21
194.44.194.11
, 177 байт)
При чём тут дос? Написал я "Хелло ворлд" в студии под вин32, и что, под него 128К в памяти выделено будет?
—
Dr_Alex
(19.01.2007 15:43:38
213.33.211.66
,
пустое
)
А раземр у вашей проги какой?! 100 байт? нет кнечна! минимум 1 кб! и обязательно выделит. в винде нет понятия com файла, тут все растыкано по своим местам. сегмент стека, кода, данных и прочие сегменты.
—
eXeC001er
(19.01.2007 15:52:25
83.239.13.202
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 45:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru