Какие есть способы скрытого(от запущенных программ) чтения содержимого оперативной памяти в Windows 10?
Интересны способы чтения оперативной памяти скрыто от других запущенных программ, либо даже удаленно если это возможно(Удаленно - имеется ввиду, с прямым доступом к железу, но используя другой компьютер).
Только учусь, хочу посмотреть на то какие данные и где хранит приложение в оперативной памяти, при этом не получив бан в приложении за дампинг озу (речь о BE который отслеживает это).
VoidVolker, принцип работы WinMemApi довольно прозрачен для целевого процесса и очень легко определяется прямо изнутри процесса. Там же, и так же легко, купируется. Но даже на этом уровне уже требуется быть подготовленным специалистом в разработке чтобы пользоваться этим API.
BE обладает собственным драйвером уровня ядра и на более глубоком уровне отслеживает вмешательство в целевой процесс. Процесс создания контрмеры для BE от специалиста требует глубоких профессиональных навыков и понимания принципов функционирования целевой оси. Такое понимание человек может обрести только работая у майков в команде разработки оси. Разработчики BE консультируются у майков по подобным вопросам.
В этом плане автор хочет странного. Ни знаний, ни навыков у него нет вообще, но вот сделать прям сча и чтобы работало ему очень хочется. Но вот чтобы посмотреть на топологию памяти и для обучения, ему это все не нужно. На этом основании я его вопрос и оставляю без ответа.
О как все у BE серьезно, оказывается. Не знал, спасибо за объяснения. В таком случае, для обхода BE я вижу только два варианта: хакать саму винду либо спускаться еще ниже и внедрять нужный код в какой-нибудь гипервизор/виртуализатор, в котором и запускать винду с нужным приложением. Ну а для обучения - системного апи будет вполне достаточно.
Евгений Шатунов,
Вы слишком лихо судите людей, полагаю дабы самоутвердиться непонятно зачем на человеке который и так очевидно не разбирается в теме(я). Такой уж путь у меня, не обязательно ему быть правильным. Тем более не имея знаний нельзя выбрать правильный путь, т.к по определению не может быть ясно какой путь верный.
Но спасибо, за объяснение работы BE, читал об этом.
Я никогда не отказывался от знаний, если у Вас есть возможность помочь мне понять данную тему скинув материал - я засчитаю это как ответ, если ничего более профильного не поступит.
Использовать же winmemapi, не нужно быть инженером или даже программистом, достаточно уметь читать.
Мой вопрос был все таки в способах которые не будут палится софтом вроде BE. Я так полагаю, для этого мне нужен уровень ниже BE. Говорят что даже собственный драйвер не спасает.
VoidVolker, Да, я как раз думаю сейчас над тем чтоб реализовать простой софт читающий память процессов гостя с хоста. Не знаю, может BE понять что память читают с хоста, будучи запущенным на госте. Все упирается в отсутствие знаний, и тут я как раз за направлением.
Вообще, чисто технически, память приложения внутри виртуалки должна без проблем читаться с хоста, при этом в самой виртуалке оно должно быть недетектируемо. Но тут есть ньюансы в реализации механизмов работы с памятью в гипервизоре и самих механизмах виртуализации: например в виртуалбоксе выделенная для виртуалки память не видна в процессах виртуалбокса в ProcessExplorer, но при этом сама память занята (т.е., сам виртуалбокс занимает условно 300 мегабайт, но это не показывается, а виртуалка при этом съела десяток гигов). А я не знаток внутренних механизмов работы гипервизоров (предполагаю, что все остальные работают так же). Так что проще всего - взять исходники гипервизора и найти куда там можно вставить свой код. Например тот же виртуалбокс.