Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Значение ячейки памяти


Страницы:   1 2

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;


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо