![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Значение ячейки памяти
ekap © (2004-07-21 13:30:00)у меня есть адрес в памяти запущеной программы например 0013BDAF как получить значение того что там находится?
Anatoly Podgoretsky (2004-07-21 14:39:00) [1]ekap (21.07.04 14:23) [22]
Ты же сам сказал, что у тебя два байта. если это не так, то смени тип
ekap (2004-07-21 14:36:00) [2]Вот я тут нашёл кусочек.
program Loader;
uses Windows;
const buf:array[0..1] of byte=($0,$eb);
const appname='ххх.exe';
Var
i:cardinal;
sti:tstartupinfo;
lpPi:tprocessinformation;
begin
if not CreateProcess(nil,AppName,nil,nil,false,CREATE_NEW_CONSOLE or
NORMAL_PRIORITY_CLASS,nil,nil,StI,lpPI) then
begin
messageboxa(0,'А де radmin.exe?','RA Loader',0);
halt;
end
else
//Ждем пока распакуется
while true do
if readprocessmemory(lppi.hProcess,pointer($ac0506),@buf[0],1,i)
then
if buf[0]<>$0 then
begin
//остановили процесс
suspendthread(lppi.hThread);
//записали чо хотели
writeprocessmemory(lppi.hProcess,pointer($ac0506),@buf[1],1,i);
//поехали дальше!
resumethread(lppi.hThread);
closehandle(lppi.hprocess);
halt;
end;
end.
может просто вместо if readprocessmemory пихать в переменнёю а не в условие. Как думаете это оно?
VMcL (2004-07-21 14:33:00) [3]>>ekap (21.07.04 14:27) [24]
Нет. Учите матчасть, уважаемый. Там ничего сложного нет.
Ega23 (2004-07-21 14:32:00) [4]ekap (21.07.04 14:27) [24]
Может, прежде чем хвататься кодировать, почитаешь:
1. про модель памяти в Винде (см. [16])
2. про OpenProcess(), ReadProcessMemory(), CloseHandle() (см. [23])
3. про работу с указателями вообще?
ekap (2004-07-21 14:27:00) [5]2VMcL может опубликуеш сдесь нужный кусок кода из твоего MacCheat?
VMcL (2004-07-21 14:24:00) [6]>> ekap (21.07.04 14:17) [17]
OpenProcess()
ReadProcessMemory()
CloseHandle()
> результат я потом сдесь опубликую...
Спасибо. Мне своего MacCheat© хватает (гы, надо ж иногда выпендриться).
ekap (2004-07-21 14:23:00) [7]2 Anatoly Podgoretsky
b1 - переменная какого типа?
pasha_golub (2004-07-21 14:21:00) [8]Anatoly Podgoretsky © (21.07.04 14:20) [19]
Тут интересная деталь всплыла.
pasha_golub (2004-07-21 14:20:00) [9]ekap (21.07.04 14:18) [18]
Я же не сказал, что это невозможно. Адрессные пространства у той программы, которую ты исследуешь, и твоей разные! И то что у нее находится по адресу хххх, это не то что находится по адресу ххх у тебя.
Anatoly Podgoretsky (2004-07-21 14:20:00) [10]Type
Ar2b = array[0..1] of byte
PAr2b = ^Ar2b;
b1:= PAr2b($0013BDAF)[0];
ekap (2004-07-21 14:18:00) [11]2pasha_golub ведь дрограмма ArtMooney Это както делает. причём очень хорошо...
ekap (2004-07-21 14:17:00) [12]Если кто-то можеш помочь добавте мой UIN 181085 в ICQ чтобы быстрее было а результат я потом сдесь опубликую...
Ega23 (2004-07-21 14:16:00) [13]Маааааленький такой нескромный вопрос: своей программы или другой?
Да, это мне как-то в голову даже не приходило! :о)
pasha_golub (2004-07-21 14:16:00) [14]ekap (21.07.04 14:15) [14]
Класс. Читай про модель памяти в Винде. В справке есть.
ekap (2004-07-21 14:15:00) [15]другой
ekap (2004-07-21 14:14:00) [16]да..
VMcL (2004-07-21 14:14:00) [17]>>ekap (21.07.04 13:30)
>в памяти запущеной программы
Маааааленький такой нескромный вопрос: своей программы или другой?
Ega23 (2004-07-21 14:11:00) [18]А ты по правильному адресу обратился-то?
ekap (2004-07-21 14:09:00) [19]Лейбл вывел
"юююююююююююююююююююююююююююююююююююююююю"...
:( хотя я точно знаю что там другое значение. с типом и размером я точно не ошибся!
Ega23 (2004-07-21 14:05:00) [20]ekap (21.07.04 14:00) [7]
Тьфу, конечно описАлся! :о)
Если "Текст 2 байта", то можно так:
type
PMytype=^TMyType;
TMyType=string[2];
var
p:PMyType;
begin
p:=Pointer($0013BDAF);
Label1.caption:=p^;
end;