Текущий архив: 2006.10.15;
Скачать: CL | DM;
ВнизНужна помощ!!!! Найти похожие ветки
← →
root © (2006-09-25 18:18) [0]Существет процесс в процессе есть переменная TBitmap
как из другого приложения сделать следующее:
найти эту переменную
прочитать с нее данные
записать в нее данные
← →
@!!ex © (2006-09-25 18:46) [1]Щютник, нафик.....
Где то я похожий вопрос уже видел. неть?
Процесс твой? Ты можеш его код менять?
← →
@!!ex © (2006-09-25 19:02) [2]P.S.
Кстати, стороний процесс не имеет доступа к памяти другого процесса.
Так что придется делать через Hook...
Если процесс твой, то ИМХО глупо делать хук для своего процесса....
Если процесс не твой и код его ты изменять не можеш... То толку от хука не будет. ИМХО
Объясни чего добится хочеш.
Этот тот случай, когда задачу надо знать целиком.
← →
Dmitrij_K (2006-09-25 20:03) [3]
> Кстати, стороний процесс не имеет доступа к памяти другого
> процесса.
Зато может получитьprogram Project1;
uses
Windows, Messages, Classes;
procedure DumpMemory(ProcessID: dword);
var
hProcess: THandle;
Mbi: TMemoryBasicInformation;
Buf: PByte;
adr, r: dword;
fs: TFileStream;
begin
adr := 0; r := 0;
hProcess := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ or
PROCESS_VM_OPERATION, false, ProcessID);
if hProcess <> 0 then
begin
try
fs := TFileStream.Create("C:\dump.mmr", fmCreate);
except fs := nil; end;
while VirtualQueryEx(hProcess, pointer(Adr), Mbi, SizeOf(Mbi)) <> 0 do
begin
if (Mbi.State = MEM_COMMIT) and not ((Mbi.Protect and PAGE_GUARD) = PAGE_GUARD) then
begin
GetMem(Buf, Mbi.RegionSize);
try
if ReadProcessMemory(hProcess, Mbi.BaseAddress, Buf, Mbi.RegionSize, r) then
if fs <> nil then fs.Write(Buf^, r);
finally
FreeMem(Buf);
end;
end;
adr := adr + Mbi.RegionSize;
end;
fs.Free; CloseHandle(hProcess);
end;
end;
begin
DumpMemory(GetCurrentProcessId);
end.
← →
Leonid Troyanovsky © (2006-09-25 22:39) [4]
> Dmitrij_K (25.09.06 20:03) [3]
> fs.Free; CloseHandle(hProcess);
Фу-фу. В одну-то строку.
И, вообще, ожидающие исключений от win32 вызовов -
неисправимые оптимисты.
Ну, и, наконец, серьезные люди не могут быть анонимами.
--
Regards, LVT.
← →
Dmitrij_K (2006-09-26 08:52) [5]
> Фу-фу. В одну-то строку.
Код не мой, содрал откуда-то. Критиковать каждый может, напиши тогда как правильно.
← →
Сергей М. © (2006-09-26 09:08) [6]
> root © (25.09.06 18:18)
> Существет процесс в процессе есть переменная TBitmap
Это процесс твоего приложения ? Или "чужого" ?
← →
root © (2006-09-26 10:51) [7]TBitmap находится в чужем процессе.
данные поступают в эту переменную через TImage или TPanel пока непонятно повторяю процесс чужой была задача получить HWND TPanel и перерисовать его но переменная TBitmap осталась неизменной т.е. в нее непоступили изменения из этого вопрос есть ли путь изменения значения переменной находящейся в другом процессе например из режима драйвера?
ктонибудь имеет представление как это реализовать?
← →
Сергей М. © (2006-09-26 11:27) [8]А с чего ты взял, что вражеское приложение написано в Делфи ?
← →
Leonid Troyanovsky © (2006-09-26 12:18) [9]
> Dmitrij_K (26.09.06 08:52) [5]
> > Фу-фу. В одну-то строку.
> напиши тогда как правильно.
В две :)
Насчет же, писать либо критиковать, я уж решу сам.
А для чужого кода принято приводить копирайт.
--
Regards, LVT.
PS Извини, но я избегаю длительных дискуссий с анонимами.
← →
Elen © (2006-09-26 12:31) [10]
> данные поступают в эту переменную
Если эти данные хранятся как ресурсы тебе проще выдрать-заменить их там чем нибудь типа ExeScope, а не писать свой патчер
Страницы: 1 вся ветка
Текущий архив: 2006.10.15;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.042 c