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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2010, 16:52   #1
Dima DDM
Форумчанин
 
Аватар для Dima DDM
 
Регистрация: 09.11.2010
Сообщений: 134
Восклицание РЕдактирование памяти процессов

Код:
var
hwin:HWND;
hProcess:HWND;
PrcResult:WORD;
PID:DWORD;
s:Cardinal;
HandleWindow:integer;
 buf:PCHAR;
 write          : cardinal;
const
PokeValue=$5E5F0FF;
 Address=$02A73D91 {0094ADD{O};
 NumberOfBytes=1;
 begin

 hwin:=FindWindow(nil, 'заголовок искомой проги');
  SendMessage(hwin,WM_SETTEXT,0,lparam(LPCTSTR('Заголовок моей программы')));

 GetWindowThreadProcessid(hwin,@PID);
HandleWindow:=OpenProcess(PROCESS_ALL_ACCESS,false,PID);
 GetMem(buf,1);
 buf^:=Chr(PokeValue);
 WriteProcessMemory(HandleWindow,ptr(Address),buf,NumberOfBytes,write);
 FreeMem(buf);
 CloseHandle(HandleWindow);
 end.     //money         0094ADDO

НЕ работает((( Что я делаю не так скажите!
http://ddmsite.ucoz.ru Мой сайт.
Бесплатный Блокировщик рекламы
http://download.adguard.ru/d/1656/adguardInstaller.exe
Dima DDM вне форума Ответить с цитированием
Старый 25.12.2010, 16:56   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Код:
buf^:=Chr(PokeValue);
В тоже время у вас
Код:
PokeValue=$5E5F0FF;
Если я правильно понял, попробуйте так
Код:
WriteProcessMemory(HandleWindow,ptr(Address),@PokeValue,4,write);
4 - это размер, по сути sizeof(PokeValue), да и сделайте наверное PokeValue типизированным в DWORD/Cardinal.

p.s. а еще есть "дурная" тенденция у программистов, проверять возвращаемый результат после вызова каких то других функций, и соответственно реагировать на возвращаемое значение.

UPD:
Вы в курсе что запрещено дублировать топики?

Последний раз редактировалось BOBAH13; 25.12.2010 в 17:04.
BOBAH13 вне форума Ответить с цитированием
Старый 26.12.2010, 09:07   #3
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

Сразу покажу на подводный камень такого способа: большинство игр имеет динамеческую память. И нужные Вам данные после каждого запуска будут на новом месте. Вам нужно сначала найти закономерности размещения адресов в памяти, потом найти "объект-якорь", которые всегда имеет одно и то же значение, и искомые вами данные разположены на одном и том же расстоянии от него. потом найти в памяти этот "якорь", вычислить место разположения нужных данных, и только потом изменять значение.
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}

Последний раз редактировалось Johnson; 26.12.2010 в 09:11.
Johnson вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отслеживание процессов. NSUstudent Безопасность, Шифрование 0 22.09.2010 19:41
Распараллеливание процессов Zooleen Общие вопросы C/C++ 0 16.06.2010 16:59
Редактирование памяти процесса (Delphi) Air Помощь студентам 4 17.10.2008 15:19
Редактирование памяти процесса Air Win Api 6 16.02.2008 20:15