Форум: "WinAPI";
Текущий архив: 2006.06.04;
Скачать: [xml.tar.bz2];
ВнизЧтение из памяти другой программы Найти похожие ветки
← →
_white_ (2006-03-14 09:16) [0]Вопросо у меня следующий: Имеется
программа,
которая вносит данные в память, требуется другой программой
эти данные
прочитать (адрес известен), видимо нужно вначале найти
процесс (его
адресное пространство) и затем работать уже с адресным
пространством
найденого процесса. Пожалуйста помогите советом и если
можно небольшим
примером
← →
Сергей М. © (2006-03-14 09:32) [1]
> нужно вначале найти
> процесс
Точнее - открыть процесс по известному PID.
См. OpenProcess()
> работать уже с адресным
> пространством
> найденого процесса
См. ReadProcessMemory()
← →
_white_ (2006-03-14 09:48) [2]А где лучше посмотреть описание данных функций, и как узнать PID
← →
Сергей М. © (2006-03-14 10:08) [3]
> где лучше посмотреть описание данных функций
В стандартной справке либо на msdn.microsoft.com.
> как узнать PID
NT - см. EnumProcesses() в модуле psapi.pas
← →
_white_ (2006-03-14 10:21) [4]Я вижу что Вы проффессионал в своём деле, и наверняка что-то подобное делали, я был бы вам благодарен если бы вы мне оказали одолжение приведя пример, который как вы сами знаете является куда более удобной вещью нежели перерывание кучи литературы в поисках ответа, ведь слово знающего человека важнее.
← →
_white_ (2006-03-14 10:21) [5]Я вижу что Вы проффессионал в своём деле, и наверняка что-то подобное делали, я был бы вам благодарен если бы вы мне оказали одолжение приведя пример, который как вы сами знаете является куда более удобной вещью нежели перерывание кучи литературы в поисках ответа, ведь слово знающего человека важнее.
← →
balepa © (2006-03-14 10:31) [6]Ты все таки зайди на MSDN там тоже примеры есть (на С конечно, но разобраться можно)
← →
kaZaNoVa © (2006-03-14 12:16) [7]а для чего тебе читать его память? может есть более простое и рациональное решение задачи?
а если просто хочется узнать что-нить из памяти процесса - идеальна прога Artmoney
← →
Сергей М. © (2006-03-14 12:24) [8]
> _white_ (14.03.06 10:21) [5]
http://www.torry.net/vcl/misc/games/memcheater.zip
← →
Игорь Шевченко © (2006-03-14 12:36) [9]kaZaNoVa © (14.03.06 12:16) [7]
Если у тебя есть фонтан - заткни его, дай отдохнуть и фонтану.
← →
viman © (2006-03-14 12:53) [10]_white_, уточнение. Вы желаете читать данные из чужой программы, которую не можете изменить или же вам просто нужно огранизовать обмен данными между своими программами(или копиями одной и той же)?
В 1-ом случае вам поможет ReadProcessMemory, как и было описано.
Во 2-ом - разделяемая память, например через Mapping file.
← →
kaZaNoVa © (2006-03-14 15:52) [11]Игорь Шевченко © (14.03.06 12:36) [9]
я что-то не то написал?
что-то плохое?
у Вас предвзятое мнение к моему нику????
← →
kaZaNoVa © (2006-03-14 15:54) [12]
function GetNameByPid(Pid: dword): string;
var
hProcess, Bytes: dword;
Info: PROCESS_BASIC_INFORMATION;
ProcessParametres: pointer;
ImagePath: TUnicodeString;
ImgPath: array[0..MAX_PATH] of WideChar;
begin
Result := "";
ZeroMemory(@ImgPath, MAX_PATH * SizeOf(WideChar));
hProcess := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, false, Pid);
if ZwQueryInformationProcess(hProcess, ProcessBasicInformation, @Info,
SizeOf(PROCESS_BASIC_INFORMATION), nil) = STATUS_SUCCESS then
begin
if ReadProcessMemory(hProcess, pointer(dword(Info.PebBaseAddress) + $10),
@ProcessParametres, SizeOf(pointer), Bytes) and
ReadProcessMemory(hProcess, pointer(dword(ProcessParametres) + $38),
@ImagePath, SizeOf(TUnicodeString), Bytes) and
ReadProcessMemory(hProcess, ImagePath.Buffer, @ImgPath,
ImagePath.Length, Bytes) then
begin
Result := ExtractFileName(WideCharToString(ImgPath));
end;
end;
CloseHandle(hProcess);
end;
← →
Игорь Шевченко © (2006-03-14 18:10) [13]kaZaNoVa © (14.03.06 15:52) [11]
> у Вас предвзятое мнение к моему нику????
Нет, к содержимому постов
← →
kaZaNoVa © (2006-03-14 19:43) [14]Игорь Шевченко © (14.03.06 18:10) [13]
Нет, к содержимому постов
ок ничего не буду писать ..
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2006.06.04;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.042 c