Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.30;
Скачать: CL | DM;

Вниз

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 вся ветка

Текущий архив: 2005.10.30;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.026 c
1-1127758387
NikNet
2005-09-26 22:13
2005.10.30
Где скачать хороший бесплатный компонент для СКИН?


2-1127653225
Fifajan
2005-09-25 17:00
2005.10.30
Перетаскивание окна са определенную область


1-1128335402
Merak
2005-10-03 14:30
2005.10.30
Функция для определения IP


5-1107759708
h010d
2005-02-07 10:01
2005.10.30
TreeView с колонками


2-1128722761
Serg!1!!
2005-10-08 02:06
2005.10.30
Grafika