Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Изменить значение по адресу в памяти. 
:(
    Опции темы
Гость_Sergey89
Дата 25.12.2004, 21:50 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Как из программы изменить значение по известному мне адресу для определённого процесса?
  Вверх
p0s0l
Дата 26.12.2004, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 14
Всего: 112



Так:
Код
hProcess := OpenProcess (PROCESS_VM_WRITE or PROCESS_VM_OPERATION, False, ProcessID);
WriteProcessMemory (hProcess, Pointer(Адрес в чужом процесса), Pointer(Адрес записываемых данных), <Число записываемых байт>, WrittenBytes);
CloseHandle (hProcess);



--------------------
С уважением, г-н Посол.
PM   Вверх
p0s0l
Дата 26.12.2004, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 14
Всего: 112



Перенесенно из раздела Delphi


--------------------
С уважением, г-н Посол.
PM   Вверх
Guest
Дата 26.12.2004, 14:39 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(p0s0l @ 26.12.2004, 13:48)
ProcessID

Это что за переменная?

  Вверх
p0s0l
Дата 26.12.2004, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 14
Всего: 112



Цитата(Guest @ 26.12.2004, 14:39)
Это что за переменная?

Идентификатор процесса...

Как программно определить ProcessID по каким-либо признакам (имя окна, имя .exe или еще что) - это уже другой вопрос, который задавался на форуме не раз smile



--------------------
С уважением, г-н Посол.
PM   Вверх
Sergey89
Дата 29.12.2004, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 14.9.2004

Репутация: нет
Всего: нет



Чёт у меня не выходит, нельзя конкретный пример?
--------------------
mlib.com.ru
PM MAIL   Вверх
_hunter
Дата 29.12.2004, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 9
Всего: 98





--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Sergey89
Дата 29.12.2004, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 14.9.2004

Репутация: нет
Всего: нет



Допустим мне известен IDПроцесса и он равен 1340 дальше известен адрес $0034062A.
Как мне записать в эту ячейку десятичное число 255?
--------------------
mlib.com.ru
PM MAIL   Вверх
_hunter
Дата 29.12.2004, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 9
Всего: 98



ты статью читал? в чем проблема?


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Sergey89
Дата 29.12.2004, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 14.9.2004

Репутация: нет
Всего: нет



Я НЕ ЗНАЮ C++!!!
--------------------
mlib.com.ru
PM MAIL   Вверх
_hunter
Дата 29.12.2004, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 9
Всего: 98



только щас увидел что тебе p0s0l ответил.... теперь вообще не понимаю в чем проблема...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Sergey89
Дата 29.12.2004, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 14.9.2004

Репутация: нет
Всего: нет



Код

function GetIDProcess(AName : PChar ) : Cardinal; StdCall;
var
lSnapHandle, lProcHandle: THandle;
ProcStruct : PROCESSENTRY32;
lProcessPath : Pchar;
PID : Cardinal;
begin
Result := 0;
lSnapHandle := CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0);
if lSnapHandle = 0 then
 exit;
ProcStruct.dwSize := sizeof( PROCESSENTRY32 );
if Process32First(lSnapHandle, ProcStruct) then
begin
 try
   repeat
     lProcessPath := ProcStruct.szExeFile;
     if uppercase(lProcessPath) = uppercase(AName) then
     begin
       PID := ProcStruct.th32ProcessID;
       Result := PID;
       Break;
     end;
   until not Process32Next(lSnapHandle, ProcStruct);
 finally
   CloseHandle(lSnapHandle);
 end;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 ProcessID,hProcess, WritenByte: Cardinal;

begin
 ProcessID:= GetIDProcess('spm2.exe');
 hProcess := OpenProcess(PROCESS_VM_WRITE or PROCESS_VM_OPERATION, False, ProcessID);
 WritenByte:= 10;
 WriteProcessMemory(hProcess, Pointer($004282A2), Pointer($004282A2),  2, WritenByte);
 CloseHandle(hProcess);
end;

10 не записывается, появляется 64 вместо 10 smile
Вот я и хотел узнать, как правильно использовать функцию.
--------------------
mlib.com.ru
PM MAIL   Вверх
_hunter
Дата 29.12.2004, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 9
Всего: 98



а зачем два одинаковых адреса?
и пишеш ты явно не два а четыре байта


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Sergey89
Дата 29.12.2004, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 14.9.2004

Репутация: нет
Всего: нет



Цитата(_hunter @ 29.12.2004, 19:14)
а зачем два одинаковых адреса?

Смори выше, где p0ps0l постил

Цитата(_hunter @ 29.12.2004, 19:14)
и пишеш ты явно не два а четыре байта

Вот что исправить я и хочу услышать smile

--------------------
mlib.com.ru
PM MAIL   Вверх
p0s0l
Дата 30.12.2004, 00:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 14
Всего: 112



Немного неправильно понял, что я сказал...
Код

var
 Buf : word;
 WrittenBytes : cardinal;
begin
... hProcess := ...;
Buf := 10;
WriteProcessMemory(hProcess, Pointer($004282A2), @Buf, SizeOf(Buf), WrittenBytes);




--------------------
С уважением, г-н Посол.
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0890 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.