HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Сохранение указателя Delphi (WinApi)
  #1  
Старый 28.02.2010, 19:14
Faost
Новичок
Регистрация: 11.07.2009
Сообщений: 20
С нами: 8860535

Репутация: 2
По умолчанию Сохранение указателя Delphi (WinApi)

Здравствуйте, имеется процедура, в которую один раз на вход передается указатель на структуру, который после окончания работы процедуры естественно затирается.
Так вот, нужно его как-нибудь сохранить, чтобы уже при повторном вызове процедуры, когда ей этот указатель не передается, процедура могла достать его и работать с ним.
Глобальные переменные прямо использовать нельзя, т.к. эта процедура внедряется в посторонний процесс; писать на диск/в реестр тоже не вариант, т.е. нужно этот указатель сохранить в памяти самого процесса. Может есть в винде какие-нибудь функции для этого? (Что-то типа своеобразного контейнера).
Думал еще прямо ссылаться на указатель, а в момент внедрения процедуры в другой процесс "перебить" его (а верней адрес, который ему будет присваиваться) на новый адрес структуры, который я в последствии получаю. Но как его отыскать во внедренной функции, не представляю.
Пробовал также с дельта-смещением пошаманить, но не смог совместить асм-код с делфийским.
Код:

type
TMyStruct = record
...
...
...
end;

function ThisFunction(N: pointer = nil): Integer; stdcall;
begin
...?
with TMyStruct(N^) do
...
end;

//где N передается 1 раз при

var X: TMyStruct;
N, Proc: pointer;

...
begin
...
Внедряю структуру;
N:= Указатель на внедренную X;
Внедряю процедуру;
Proc:= Указатель на внедренную ThisFunction;
CreateRemoteThread(OtherProcess, nil, 0, Proc, N, 0, TID);
end.
 
Ответить с цитированием

  #2  
Старый 28.02.2010, 19:28
Protorus
Новичок
Регистрация: 17.01.2010
Сообщений: 23
С нами: 8586507

Репутация: 0
По умолчанию

Может SetEnvironmentVariable и GetEnvironmentVariable помогут?
 
Ответить с цитированием

  #3  
Старый 28.02.2010, 20:07
flacs
Познающий
Регистрация: 28.01.2009
Сообщений: 90
С нами: 9096406

Репутация: 80
По умолчанию

VirtualAlloc/WriteProcessMemory. Выделяем память и записываем в процесс.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books PSalm69 Избранное 273 13.02.2016 01:24
Литература Delphi Sams С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 2 19.03.2010 19:46
WinAPI в Delphi DiffiT С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 20 19.02.2010 21:47
Virus.Win32.Induc.a или "Снова записки новичка" _=(mac)=_ Защита ОС: вирусы, антивирусы, файрволы. 5 24.08.2009 23:34
Помогите с WinAPI в Delphi EST a1ien С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 13 12.10.2006 11:06



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.