![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#31 | |
Форумчанин
Регистрация: 08.05.2009
Сообщений: 247
|
![]()
1. Вы читаете не то что вам нужно, так как не понимаете что интересующая Вас информация не будет по абсолютному смещению
2. Вы не проверяете а считала ли функция ReadProcessMemory что нибуть
Мой сайт
Цитата:
|
|
![]() |
![]() |
![]() |
#32 | ||
Пользователь
Регистрация: 30.10.2009
Сообщений: 55
|
![]() Цитата:
Код:
Вообще как проверить правильно ли считывает память, как я понял из игры сразу глупо и трудно. Было бы приложение простенькое, из которого бы можно было проверять правильно ли он взял значение. + на буржуйском форуме нашел адрес загрузки как я понял, но не понял что да как это в делфи: Цитата:
Последний раз редактировалось Niklan; 19.11.2009 в 10:38. |
||
![]() |
![]() |
![]() |
#33 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
![]()
1. После вызова OpenProcess, надо проверять результат, и в конце закрыть дескриптор процесса. см. MSDN
2. GetProcAddress - тут не нужен, почему ? см. MSDN 3. ReadProcessMemory(h, pTemp { вот тут адресс DWORD, где распологается ваша "переменная" }, @buf, 4, outbytes); Имелось ввиду использовать коды моего "патчера", к примеру как найти адресс этих данных, без статического адресса ? 1. Подготавливаем этот процесс, удостоверяемся что все загружено (ваша искомая переменная в памяти находится) 2. Открываем данный процесс в WinHex 3. Поиском ищем ее значение 4. Нашли ее адресс, теперь смотрим вокруг, возможно где-то рядом есть постоянный кусок данных, например кода. Нашли ? 5. Нашли кусок, скопировал как hex значения, сохранили у себя в коде 6. После открытия процесса, в коде ищем этот самый кусок 7. Нашли ? теперь смещаем на точно известное кол-во байт вверх/вниз (когда смотрели в WinHex) 8. Мы на месте. Пишем/Читаем |
![]() |
![]() |
![]() |
#34 | |
Пользователь
Регистрация: 30.10.2009
Сообщений: 55
|
![]() Цитата:
Код:
Последний раз редактировалось Niklan; 19.11.2009 в 20:05. |
|
![]() |
![]() |
![]() |
#35 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
![]()
0xA2771C это 4 байта, значит
Код:
|
![]() |
![]() |
![]() |
#36 |
Пользователь
Регистрация: 30.10.2009
Сообщений: 55
|
![]() |
![]() |
![]() |
![]() |
#37 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
![]() |
![]() |
![]() |
![]() |
#38 |
Пользователь
Регистрация: 30.10.2009
Сообщений: 55
|
![]()
Ну он мне результат сразу значение выдаст? или 16-ти ричное значение или что там
То есть как значение байта вывести в лейбел? Последний раз редактировалось Niklan; 19.11.2009 в 22:46. |
![]() |
![]() |
![]() |
#39 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
![]()
Ого, даже так. Ну раз мы даже незнаем азов, а за такое беретесь. Ну да ладно, Byte как обычный Integer, так же его через IntToStr или Format и т.п.
|
![]() |
![]() |
![]() |
#40 | |
Пользователь
Регистрация: 30.10.2009
Сообщений: 55
|
![]() Цитата:
А во что записывается значение указанного адреса? ReadProcessMemory(h, Pointer(addr), @buf, 11, outbytes); в buf или outbytes? Последний раз редактировалось Niklan; 20.11.2009 в 12:30. |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
внедрение MatLab в Web-приложения | Honey | JavaScript, Ajax | 2 | 27.05.2009 20:52 |
Внедрение кода в EXE | prizrak1390 | Общие вопросы Delphi | 16 | 07.05.2008 08:10 |
Внедрение звука WAW/MP3 в файл | GAGARIN-NEW | Мультимедиа в Delphi | 26 | 02.04.2008 13:52 |
Внедрение ActiveX компонент в проект | D@rk M@k | Общие вопросы Delphi | 5 | 29.01.2008 19:40 |
внедрение Delphi приложения в КПК | shkiper | Общие вопросы Delphi | 2 | 05.04.2007 20:59 |