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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2011, 00:46   #1
logitech12
Пользователь
 
Регистрация: 07.04.2011
Сообщений: 44
По умолчанию Редактирование значений в памяти других программ

Код:
var buf : Integer; //в данном случае наш буфер
    hWnd, PID, hProc, wSize : DWORD;
begin
  hWnd := FindWindow(nil, 'Безымянный - Блокнот');
  if IsWindow(hWnd) then begin
    GetWindowThreadProcessId(hWnd, @PID); //получаем pid  зная заголовок окошка интересующей нас программы
    hProc := OpenProcess(PROCESS_VM_OPERATION or PROCESS_VM_WRITE, False, PID);
    try
      if hProc <> 0 then begin
        buf := 10;
        WriteProcessMemory(hProc, ptr($00010862), @buf, SizeOf(buf),
                           wSize); 
        ShowMessage(Format('%d bytes writed...', [wSize]));
      end;
    finally
      CloseHandle(hProc);
    end;
  end;
end;

Это я нашел на форуме в поиске. Вообщем задача у меня такая, нужно чтобы по определенному адресу менялись нужные мне байты на мои. Проблема в том, что адрес динамичен..т.е. изменяется при каждом перезаходе в приложение.. редактором памяти "Cheat Engine" можно найти эту строку без проблем..но как это сделать самостоятельно средствами делфи? Спасибо заранее.
logitech12 вне форума Ответить с цитированием
Старый 06.05.2011, 01:00   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Есть 2 адреса. Реальный и Виртуальный. Виртуальный, да, он будет меняться постоянно. А вот физический(реальный) постоянен.

Возьмите ArtMoney он умеет находить адреса....
Человек_Борща вне форума Ответить с цитированием
Старый 06.05.2011, 01:08   #3
logitech12
Пользователь
 
Регистрация: 07.04.2011
Сообщений: 44
По умолчанию

кружком выделены адреса, квадратиками байты, которые нужно заменить (это пример)



хотя впринципе нужно найти строку которая статична, т.е. строчку байт.. и в ней уже изменить значения

Последний раз редактировалось Stilet; 06.05.2011 в 07:49.
logitech12 вне форума Ответить с цитированием
Старый 06.05.2011, 10:28   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Вариан открыть файл физически и найти там строку. Далее обратиться по этому адресу.
Человек_Борща вне форума Ответить с цитированием
Старый 06.05.2011, 11:01   #5
logitech12
Пользователь
 
Регистрация: 07.04.2011
Сообщений: 44
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Вариан открыть файл физически и найти там строку. Далее обратиться по этому адресу.
файлы на сервере хранятся. вообще впринципе моя задача - это создание трейнера.. но как изменять байты я не в курсе(
logitech12 вне форума Ответить с цитированием
Старый 06.05.2011, 12:38   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

ReadProcessMemory
WriteProcessMemory
Человек_Борща вне форума Ответить с цитированием
Старый 06.05.2011, 12:56   #7
logitech12
Пользователь
 
Регистрация: 07.04.2011
Сообщений: 44
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
ReadProcessMemory
WriteProcessMemory
мне бы поподробнее
logitech12 вне форума Ответить с цитированием
Старый 06.05.2011, 13:49   #8
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Уверен подробнее некуда http://social.msdn.microsoft.com/Search/en-US вбиваем в поиск и читаем.

А вообще вот. Все просто
http://www.programmersforum.ru/showthread.php?t=148833
Человек_Борща вне форума Ответить с цитированием
Старый 06.05.2011, 14:10   #9
logitech12
Пользователь
 
Регистрация: 07.04.2011
Сообщений: 44
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Уверен подробнее некуда http://social.msdn.microsoft.com/Search/en-US вбиваем в поиск и читаем.

А вообще вот. Все просто
http://www.programmersforum.ru/showthread.php?t=148833
зачем мне с++ код? я же создал тему не в с++ , а в делфи
logitech12 вне форума Ответить с цитированием
Старый 06.05.2011, 14:58   #10
logitech12
Пользователь
 
Регистрация: 07.04.2011
Сообщений: 44
По умолчанию

Адрес я знаю, как мне теперь изменить байты ?
logitech12 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отражение на листе значений из других листов alexarorel Microsoft Office Excel 1 20.04.2011 20:23
Совместимость других программ с Delphi Elitman Общие вопросы Delphi 2 10.05.2010 18:49
Изменение памяти других приложений mixer94 Общие вопросы Delphi 3 30.03.2010 20:31
Создать загрузчик других программ в свое окно fiddler Общие вопросы Delphi 4 25.11.2009 13:05
Блокирование других программ ar4i Общие вопросы Delphi 5 12.12.2006 14:59