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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> А как узнать сегмент данных проги? ???????? 
:(
    Опции темы
Underdark
  Дата 20.10.2004, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Кто пользовался самой популярной ломалкой игр - ArtMoney - тот в курсе, что ко всему она выдаёт адреса переменных(тех, которых мы имеем желание поменять).

Я хотел бы немного облегчить себе жизнь и написать программулину, которая меняет в игрушке XXX сразу группу переменных. :hehe Адреса всех переменных вводятся в параметрах и не меняются в течении работы. НО!!! Загвоздка в том, что ArtMoney нам выдаёт только смещение переменных, а сегмент данных каждый раз меняется(если я не ошибаюсь, то он у каждой программы один, иначе УМНЫЕ ЛЮДИ поправьте меня!!!). А как узнать этот сегмент при условии, что я XXX уже запустил?

З.Ы. Надеюсь, я понятно изложился... :) Буду признателен за любой ответ. :sample
PM MAIL   Вверх
Mad
Дата 20.10.2004, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Эксперт
Сообщений: 656
Регистрация: 18.10.2004
Где: Одесса

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



Поправим :)

Понятие сегментовумерло вместе с 16-ти битными системами.

Так. что тот адрес, который выдала тебе ломалка перердаеш прямо в ReadProcessMemory или WriteProcessMemory и все ок :)



--------------------
user posted image
PM MAIL   Вверх
Underdark
Дата 20.10.2004, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



То бишь, если я правильно всё понял, OS просто привязывает к процессам какие-то области памяти, в которых прога нуждается, и таким образом разбиение идет не сегментами, а "процессами"... :yasno

Тады, другой вопрос :) Handle процесса - где его наковырять? Это случайно не его мы видим в Диспетчере Задач?
PM MAIL   Вверх
Girder
Дата 20.10.2004, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй 2
***


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

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



OpenProcess

Пример использования:
Код
procedure ReadWriteDWord(pID:Cardinal; Value:DWord; lpBaseAdr:DWord);
var op:Cardinal;
   OldValue:DWord;
   i:Cardinal;
begin
op:=OpenProcess(PROCESS_VM_READ or PROCESS_VM_WRITE or PROCESS_VM_OPERATION,false,pID);
if op<>0 then
 begin
  //Читаем 4 байта
  if ReadProcessMemory(op,Pointer(lpBaseAdr),@OldValue,SizeOf(OldValue),i)and(i=SizeOf(OldValue)) then
   begin
    //...
   end;
  //Записываем 4 байта
  if WriteProcessMemory(op,Pointer(lpBaseAdr),@Value,SizeOf(Value),i)and(i=SizeOf(Value)) then
   begin
    //...
   end;
  CloseHandle(op);
 end;
end;


Это сообщение отредактировал(а) Girder - 20.10.2004, 15:23


--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
Mad
Дата 20.10.2004, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Эксперт
Сообщений: 656
Регистрация: 18.10.2004
Где: Одесса

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



Цитата(Underdark @ 20.10.2004, 13:52)
случайно не его мы видим в Диспетчере Задач

Нет, это ID процесса, передаеш его в OpenProcess() и получаеш хандл.


--------------------
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0414 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


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

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