CreateRemoteThread() + OpenProcess() + WirteProcessMemory()
- From
- Leonid Troyanovsky (2:5080/1003)
- To
- Grigory Tsukanov
- Date
- 2003-01-07T14:13:15Z
- Area
- SU.WINDOWS.NT.PROG
From: "Leonid Troyanovsky" <lv-t@narod.ru>
Приветствую, Grigory.
KN> Знаю что свою прогу запустить как поток в чужом процессе при помощи
KN> subjа но если только делать свою dll. А можно ли это сделать тоже
KN> самое но без всяких мерзких dll? :) При этом дополнительным условием
KN> является то что я могу писать в любые физические адреса ОЗУ.
> по идее ОС должна защитить от записи сегмент кода. Даже собственный, не говоря
> уже о иных процессах.
Если обсуждать на уровне идей, то ОС представляет собой совокупность процессов
с разными адресными пространствами, поэтому, IMHO, понятней говорить о иных
геометрических фигурах, или, скажем, о кодофонде ;)
Да и, вообще, сегменты - архаичное понятие, лучше - страницы с атрибутами.
Кстати, немногие процессоры различают read vs execute, т.е. "исполнить" можно
и то, что предполагалось данными.
Ну, а если человек умеет писать куда угодно, видимо, он знает как атрибуты менять.
Хотя, на самом деле, код потока и его данные можно засунуть в memory mapped file
и тогда записать в чужой процесс потребуется лишь 20 байт -rw (12 из которых 0).
--
С уважением, LVT.
--- ifmail v.2.15dev5
* Origin: (http://news.cca.usart.ru/) USURT's FidoNET<-> (2:5080/1003@fidonet)