Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2012, 14:56   #1
Misha_M
 
Регистрация: 21.08.2011
Сообщений: 6
По умолчанию Указатели и адреса

Здравствуйте! Речь идет о чтении переменных с чужого процесса (ничего криминального).

Написал программу, которая читает переменную с другого процесса по адресу. Адрес узнаю из артмани. Но, проблема в том, что адрес динамический и его приходится узнавать постоянно.

Узнал, что указатель не меняется от перезапуска приложения.

Нашел указатель на этот адрес. А как теперь им пользоваться? Как с помощью указателя узнавать ту самую переменную?
Misha_M вне форума Ответить с цитированием
Старый 16.05.2012, 15:10   #2
Miha85193
Delphi, OpenGL API
Форумчанин
 
Аватар для Miha85193
 
Регистрация: 29.03.2010
Сообщений: 152
По умолчанию

Приводим разыменованый указатель к нужному типу данных. Для конкретного решения проблемы нужен исходный код.
Miha85193 вне форума Ответить с цитированием
Старый 16.05.2012, 15:19   #3
Misha_M
 
Регистрация: 21.08.2011
Сообщений: 6
По умолчанию

Код:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls;

type
TForm1 = class(TForm)
LabeledEdit1: TLabeledEdit;
LabeledEdit2: TLabeledEdit;
LabeledEdit3: TLabeledEdit;
LabeledEdit4: TLabeledEdit;
BitBtn1: TBitBtn;
Edit1: TEdit;
Edit2: TEdit;
Timer1: TTimer;
procedure BitBtn1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
If Timer1.Enabled = False then
Timer1.Enabled:= True else
Timer1.Enabled:= False;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
HP:THandle;
wread:Cardinal;
bb:LongInt;
begin
HP:= OpenProcess(PROCESS_VM_READ,False,StrToInt(LabeledEdit1.Text) {ИД процесса});
LabeledEdit3.Text := IntToStr(HP);
ReadProcessMemory(HP,Ptr($0012D698){АДРЕС},@bb,4,wread);
Edit2.Text := IntToStr(bb );
end;

procedure TForm1.FormCreate(Sender: TObject);
begin

end;

end.
Misha_M вне форума Ответить с цитированием
Старый 16.05.2012, 15:19   #4
Misha_M
 
Регистрация: 21.08.2011
Сообщений: 6
По умолчанию

Так я читаю из адреса - все работает. Но он динамический. Теперь, зная указатель, как тоже самое получить?
Misha_M вне форума Ответить с цитированием
Старый 16.05.2012, 15:22   #5
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

ReadProcessMemory.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 16.05.2012, 15:25   #6
Misha_M
 
Регистрация: 21.08.2011
Сообщений: 6
По умолчанию

Спасибо за ответы. Извините, сразу не сказал - я новичок в Delphi. Подскажите пример кода, как все это написать, имея указатель.
Misha_M вне форума Ответить с цитированием
Старый 16.05.2012, 16:04   #7
JekaDefer
Форумчанин
 
Регистрация: 07.04.2009
Сообщений: 112
По умолчанию

Кстати можешь вот из этой программки что нить подчеркнуть)
Вложения
Тип файла: rar Типа ArtMoney.rar (199.7 Кб, 15 просмотров)
JekaDefer вне форума Ответить с цитированием
Старый 16.05.2012, 16:11   #8
Misha_M
 
Регистрация: 21.08.2011
Сообщений: 6
По умолчанию

Посмотрю код, Спасибо. Но все таки? Как это сделать?

Последний раз редактировалось Misha_M; 16.05.2012 в 16:13.
Misha_M вне форума Ответить с цитированием
Старый 17.05.2012, 00:31   #9
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Друг, не тормози. ТЫ УЖЕ ЭТО ДЕЛАЕШЬ. Ты уже читаешь данные по адресу.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
указатели и адреса UmaGhost Общие вопросы C/C++ 1 15.05.2012 00:47
Известны фамилии,адреса и телефоны 25-ти человек,Найти фамилии и адреса людей,чей телефон начинается с цифры 3. Расмотреть два слу salomon93 Паскаль, Turbo Pascal, PascalABC.NET 11 01.12.2011 23:36
адреса на C ~~~ Помощь студентам 13 13.09.2010 17:27
[C] массивы, указатели, двойные указатели. Iggel Общие вопросы C/C++ 5 05.05.2009 12:39
Смена IP-адреса Македонский Работа с сетью в Delphi 13 06.02.2008 19:02