Что нового

[Процессы] Отслеживание памяти процесса

Yoshiyuki

Новичок
Сообщения
40
Репутация
0
Всем Доброе время суток!
Есть процесс нужно сделать что бы программу что бы она следила за памятью процесса и если произойдут изменение в памяти то нужно что бы он выдал адрес который изменился, возможно ли такое сделать? И если да то как?
 

winstan

Эксплотатор)
Сообщения
406
Репутация
78
Это возможно...
Но только с малиньким приложением.
так как постоянное сканирование всей памяти процесса приведёт к огромным нагрузкам на компьютер

при этом нада не забывать что в любом процессе какиенибудь значения меняются постоянно
 
Автор
Y

Yoshiyuki

Новичок
Сообщения
40
Репутация
0
Приложение не маленькое, но изменение произойдут сразу после запуска и мне нужно узнать какие адреса изменились
 

winstan

Эксплотатор)
Сообщения
406
Репутация
78
Код:
#RequireAdmin
#include <nomadmemory.au3>

$min= ;~ начинасть сканировать с этого адреса
$max= ;~ закончить этим
$Process = "process.exe"


$size=$max-$min+1 ;~определяется размер массива для хранения данных
Global $adres[$size], $xxx[$size] ;~ создаётся массивы разсмором с количество адресов сканирования

$memory = _MemoryOpen(ProcessExists($Process)) ;~открывается процесс для чтения памяти
MsgBox (0,"1","переменные созданы")
for $i=$min To $max  ;~цикл сохраняющий в массив значения адресов
	$adres[$i] = _MemoryRead($i, $memory) ;~чтение памяти
Next

MsgBox (0,"2","значения сохранены")

for $i=$min To $max ;~цикл читающий значения адресов и сравнивающий их с преведущими
	$adre = _MemoryRead($i, $memory) 
	if $adre = $adres[$i] Then
	Else
		$xxx[$a]=$i
		$a=$a+1
		EndIf
	Next

for $i=0 To $size ;~в сообщениях MsgBox выдаёт изменившиеся адреса
	MsgBox (0,"3- изменившиеся адреса",$xxx[$i])
Next

Вот чтото вроде этого если не в чём не ошибся
но то что сканить будет долго это 100%
 
Верх