2009-12-13 2 views
3

Любые идеи о том, с чего начать?Скребковая система Память для строк, соответствующих регулярному выражению в Windows

+2

Для чего это необходимо? Это звучит очень подозрительно для меня. –

+1

Это действительно звучит почти зловеще. Я лично считаю, что это крутое упражнение! Я буду следовать этой теме. –

ответ

1

Если процесс, который вы хотите отсканировать, в данный момент запущен, вы можете подключиться к нему в качестве отладчика и очистить его адресное пространство.

Если вы хотите очистить память в общем, вам нужно будет установить драйвер или что-то подобное, чтобы выйти из пользовательского пространства.

1

SoftICE (wiki) по-прежнему, вероятно, лучший отладчик для Windows. Он обладает возможностями низкого уровня, которые вы ищете, и может приостановить все операции в Windows, что очень полезно для поиска изменений в памяти. Хотя это было прекращено, и в наши дни существует множество мер по борьбе с SoftICE (в основном для защиты коммерческого программного обеспечения), есть и некоторые скрытые варианты использования поверх этого: IceStealth или IceExt. Вам действительно нужно будет самостоятельно раскрыть источники этих программных продуктов, может быть, немного работать. В качестве альтернативы существуют и другие отладчики: Sysersoft утверждает, что занял место, где SoftICE прекратила работу (хотя я и не играл с ней), и альтернатива с открытым исходным кодом, Rasta Ring 0 Debugger, которая не видела развития с 2006 года.

1

Это очень интересная концепция, хотя она звучит зловеще, корневой набор ... Для начала вам нужно повысить привилегии вашей программы до прав администратора и каким-то образом разработать какой-то драйвер (возможно, драйвер блочного режима) и из user-land, сделать запрос опроса на драйвер, чтобы передать блок данных (следовательно, драйвер блочного режима). Длина блока передавалась в драйвере (я бы представляла себе) в качестве параметра, тогда код пользователя-земля извлекал данные и просматривал блок данных.

Недостатком является то, что, поскольку драйвер должен был находиться в режиме ядра ring0, чтобы извлечь блок памяти, вы в конечном итоге будете генерировать BSOD и много отладки. Звучит путь к мазохисту по моему вкусу, но с другой стороны вы можете использовать VirtualBox и установить Windows в виртуальную машину.

Вам понадобится корень в поиске драйвера SDK для Windows Kernel Mode, который позволит вам писать драйверы. Кроме этого, я бы не знал, как это сделать! :)

Это то, что я собираюсь придерживаться моих любимых вопросов.

Удачи и надеюсь, что это поможет, С уважением, Tom.

Смежные вопросы