Форум: "Основная";
Текущий архив: 2011.08.28;
Скачать: [xml.tar.bz2];
ВнизКак прочитать память у DLL (ReadProcessMemory):DllName.dll+offset Найти похожие ветки
← →
Vincent (2010-02-02 22:25) [0]Как читать и изменять память у процесса я знаю:
var
h,HandleWindow,ThreadId,ProcessId : Cardinal;
buf:dword;
read:Cardinal;
const
Address = $.........;
begin
h := FindWindow(nil,"Заголовок окна");
if h = 0 then Exit;
ThreadId := GetWindowThreadProcessId(h,@ProcessId);
HandleWindow := OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId);
ReadProcessMemory(HandleWindow,ptr(Address),@result,4,read);
CloseHandle(HandleWindow);
Вот только интересующее значение находится в области загруженной DLL которую юзает программа. Как прочитать значение в этом случае?
То есть нужно прочитать данные по адресу DllName.dll+offset
← →
Сергей М. © (2010-02-02 22:36) [1]
> интересующее значение находится в области загруженной DLL
> которую юзает программа
Да по барабану где оно находится)
Выше штанов под названием "виртуальное адресное пространство процесса" все равно не прыгнуть.
> HandleWindow := OpenProcess(
Какой еще к лешему Window ?
Ф-ция OpenProcess() никаких дел дел с окнами не имеет.
← →
Vincent (2010-02-02 22:54) [2]
> Какой еще к лешему Window ?
> Ф-ция OpenProcess() никаких дел дел с окнами не имеет.
Я знаю, какая разница какие имена у переменных, я вообще это просто быстро накатал для примера.
> Да по барабану где оно находится)
> Выше штанов под названием "виртуальное адресное пространство
> процесса" все равно не прыгнуть.
??? Т.е. открыв идентификатор процесса с полными правами я могу обращаться к адресам и в загруженной ею длл?
Если я попытаюсь открыть интересующий адрес (dll+offset) напрямую я получаю неверное число.
← →
Vincent (2010-02-02 23:00) [3]Странно... Недавно не заботала. Уже заработала... Чудеса...))
Ладно всеравно спасибо)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2011.08.28;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.003 c