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

Вниз

Read/WriteProcessMemory   Найти похожие ветки 

 
Tonich ©   (2005-08-24 16:42) [0]

начить делаю так...



 HRProcess := OpenProcess(
                           PROCESS_CREATE_THREAD or
                           PROCESS_VM_OPERATION or
                           PROCESS_VM_WRITE,
                           false,
                           PID
                           );

 if HRProcess = 0 then
    begin
     MessageBox();
     Exit;
    end;

   p_mem :=  VirtualAllocEx(HRProcess,nil,sizeof(str_proba),MEM_COMMIT,PAGE_READWRITE);

 if p_mem = nil then
    begin
     MessageBox();
     Exit;
    end;

  if not WriteProcessMemory(HRProcess,p_mem,@str_proba, sizeof(str_proba),writebytes) then
    begin
     MessageBox();
     Exit;
    end;

  if not ReadProcessMemory(HRProcess,p_mem,@BufferS,SIZEOF(BufferS),readbytes) then
    begin
     MessageBox();
     Exit;
    end;


чего это гад не хочет читать то что я туда записал в частности str_proba ???


 
begin...end ©   (2005-08-24 16:48) [1]

Что такое str_proba?


 
Tonich ©   (2005-08-24 16:49) [2]

str_proba:string


 
Digitman ©   (2005-08-24 16:51) [3]


> чего это гад не хочет


а ты у "гада" спросил, почему он "не хочет" ?

нет, не спросил.
не сподобился.
лень тебе.

тогда "чего ж тебе надобно, старче ?" (с)


 
begin...end ©   (2005-08-24 16:53) [4]

> Tonich ©   (24.08.05 16:49) [2]

Неправильно записываете, неправильно читаете.

Адрес тела строки: @S[1] или Pointer(S), а не @S.
Размер тела строки: Length(S), а не sizeof(S).
Перед чтением в строку не забываем установить нужную длину с помощью SetLength.


 
Tonich ©   (2005-08-24 16:53) [5]


> Digitman ©   (24.08.05 16:51) [3]
хмм) гад сейчас отсуцтвует, поэтому пришлось спрашивать тута)))


 
Tonich ©   (2005-08-24 16:59) [6]

блин всеравно
в

ReadProcessMemory(...)

ReadBytes = 0
и функция возвращает false


 
alpet ©   (2005-08-24 17:02) [7]

var str_proba: array [BYTE] of char;
...
ReadProcessMemory (hProcess, p_mem, @str_proba, 256, writed);
WriteProcessMemory (hProcess, p_mem, @str_proba, 256, writed);


 
begin...end ©   (2005-08-24 17:03) [8]

> Tonich ©   (24.08.05 16:59) [6]

> и функция возвращает false

Win32Check(ReadProcessMemory(...))


 
Tonich ©   (2005-08-24 17:05) [9]


> alpet ©   (24.08.05 17:02) [7]
хмм, а что есть принципиальная разница в том как объявить эту строку


 
Digitman ©   (2005-08-24 17:08) [10]


> Tonich ©   (24.08.05 16:59) [6]
> ReadProcessMemory(...)
> функция возвращает false


если функция - это "гад", возвративший вместо вожделенного True "гадское" False, то чуть ли не на каждую "гадскую" ф-цию (ДАННАЯ - в т.ч.) существует "гадское противоядие" - ф-ция GetLastError()


 
alpet ©   (2005-08-24 17:11) [11]

Tonich ©   (24.08.05 17:05) [9]

Взялся за API, учись работать с ASCIIZ строками. С ними порой удобнее обращаться бывает. В данном случае это определение строки из 256 байт.
var s: string
   str_proba: array [0..40] of char;
....
s := "Window Text";
StrPCopy (@str_proba, s);
WriteProcessMemory (..., @str_proba)


 
Digitman ©   (2005-08-24 17:12) [12]


> хмм, а что есть принципиальная разница в том как объявить
> эту строку


представь себе - есть !


 
Tonich ©   (2005-08-24 17:16) [13]

всеравно нихрена не читает
GetLastError() = 5


 
BiN ©   (2005-08-24 17:18) [14]

Access denied


 
begin...end ©   (2005-08-24 17:18) [15]

> Tonich ©   (24.08.05 17:16) [13]

SysErrorMessage(5) или [8]


 
alpet ©   (2005-08-24 17:19) [16]

Tonich ©   (24.08.05 17:16) [13]

ERROR_ACCESS_DENIED - наводит на размышления, что нельзя прочитать/записать с адрес p_mem в АП несчастного процесса.


 
alpet ©   (2005-08-24 17:20) [17]

Попробуй на время отладки присвоить HRProcess результат GetCurrentProcess.


 
Tonich ©   (2005-08-24 17:21) [18]

хм странно я когда резервирую грю ему PAGE_READWRITE


 
Tonich ©   (2005-08-24 17:22) [19]


> alpet ©   (24.08.05 17:19) [16]
ну эт я как-то понял)


 
alpet ©   (2005-08-24 17:23) [20]

Что у тебя представляет тогда BufferS?


 
Digitman ©   (2005-08-24 17:24) [21]


> Tonich ©   (24.08.05 17:21) [18]


тебе же в [4] РАЗЖЕВАЛИ !

до чего ж дубиной нужно быть(...


 
Tonich ©   (2005-08-24 17:26) [22]

а вот с локальным все канает


> alpet ©   (24.08.05 17:23) [20]
тоже что и

> str_proba: array [0..40] of char;


 
Tonich ©   (2005-08-24 17:28) [23]

ааааааааа вот я ... (не буду говорить кто) всем пасибо, нашел...


 
Digitman ©   (2005-08-24 17:29) [24]


> Tonich ©   (24.08.05 17:26) [22


дай определение термину "канать" ?

ты, чудо, вообще-то  смотрел хоть раз в ДЕКЛАРАЦИИ ф-ций Read/WriteProcessMemory() ? в Windows.pas ? Прежде чем здесь "заявы" делать на тему "канает / не канает" ?!


 
Tonich ©   (2005-08-24 17:29) [25]

HRProcess := OpenProcess(
                           PROCESS_CREATE_THREAD or
                           PROCESS_VM_OPERATION or
                           PROCESS_VM_WRITE or
                           PROCESS_VM_READ, // и не удивительно что оно не читало )))
                           false,
                           PID
                           );


 
Digitman ©   (2005-08-24 17:31) [26]

тоже мне)..

"канает" ... "не канает" ... "ааааааааа вот я" ..

олух царя небесного !)))


 
Tonich ©   (2005-08-24 17:31) [27]


> Digitman ©   (24.08.05 17:29) [24]
шо такое я не понял а?  да какой там смотрел , тыж у нас только смотришь , а все на угад пишут, так, авось проканает!!!


 
Digitman ©   (2005-08-24 17:32) [28]


> Tonich ©   (24.08.05 17:31) [27]


> все на угад пишут


аргументы ?


 
Tonich ©   (2005-08-24 17:34) [29]

количество вопросов на форумах


 
Digitman ©   (2005-08-24 17:34) [30]

угад.ру ?  

)


 
Tonich ©   (2005-08-24 17:36) [31]

именно)))

я тебе скажу как это получилось.

подразумевалась только запись, а потом думаю дай прочитаю чего там написал, ну а кто ж это смотрит в начало кода))) вот и пропустил )))


 
Digitman ©   (2005-08-24 17:36) [32]


> Tonich ©   (24.08.05 17:34) [29]


никто не получал вопросы а-ля "начить делаю так"  на угад.ру,

поверь)


 
Tonich ©   (2005-08-24 17:37) [33]

TАвось, Tа_вдруг, Tможет_проканает..... )))


 
Digitman ©   (2005-08-24 17:37) [34]


> подразумевалась только запись


ну а когда хрень ты записал - что ж ты ожидал при чтении ?)


 
Tonich ©   (2005-08-24 17:38) [35]


> Digitman ©   (24.08.05 17:36) [32]
а ты там постоялец? )))


 
Digitman ©   (2005-08-24 17:39) [36]


> Tonich ©   (24.08.05 17:37) [33]


учи ОР.

от корки до корки.

WinAPI к твоим бедам не имеет отношения - ты попросту НЕ знаешь ОР.


 
Tonich ©   (2005-08-24 17:39) [37]


> Digitman ©   (24.08.05 17:37) [34]
ну как минимум то что записал (странный вопрос)


 
Tonich ©   (2005-08-24 17:42) [38]

от народ пошел....


 
Игорь Шевченко ©   (2005-08-24 17:51) [39]

Tonich ©   (24.08.05 17:42) [38]

Это факт. Учимся себя вести в приличном обществе.



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.10.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.53 MB
Время: 0.062 c
4-1124892402
NioBium
2005-08-24 18:06
2005.10.30
TrayIcon без формы


14-1128895230
mensch
2005-10-10 02:00
2005.10.30
как сдублировать электронный ключ VIZIT?


1-1128058065
Luis Alberto (goblingaga)
2005-09-30 09:27
2005.10.30
Сохранить элементы TListView, вкючая SubItems


1-1128497138
Aleksey
2005-10-05 11:25
2005.10.30
Как передать Canvas


14-1128921696
Ega23
2005-10-10 09:21
2005.10.30
С днем рождения! 10 октября





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский