Форум: "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.047 c