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)