Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.10.15;
Скачать: [xml.tar.bz2];

Вниз

Нужна помощ!!!!   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.044 c
2-1159451438
Fostr
2006-09-28 17:50
2006.10.15
Выполнение нескольких последовательных ADOSql


2-1159474413
A/A
2006-09-29 00:13
2006.10.15
TString


4-1149090395
DeeGreeZ
2006-05-31 19:46
2006.10.15
Работа с ИК портом


1-1157044552
nali
2006-08-31 21:15
2006.10.15
Что вызывать Update или Invalidate?


2-1159158945
Gool
2006-09-25 08:35
2006.10.15
Панель в IE





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский