|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.08.2011, 20:02 | #11 |
Форумчанин
Регистрация: 10.02.2009
Сообщений: 815
|
|
16.08.2011, 22:15 | #12 |
Форумчанин
Регистрация: 10.02.2009
Сообщений: 815
|
Для дальнейших недоразумений скорректирую свой вопрос:
"Каким образом можно найти аргумент lpBaseAdress после перезапуска программы для получения функцией ReadProcessMemory соответствующих (надлежащих, идентичных с предварительно полученными) результатов?" Пример: Запустил программу "цель", нашел нужный адрес, прочитал значение записал его в блокнот. Перезапустил программу, нашел новый адрес нужного значения, прочитал значение, сравнил. Вероятно для поиска нового адреса придется пользоваться все той-же функцией, но "откуда начинать" и "как организовать" не понятно. Последний раз редактировалось dr.Chas; 17.08.2011 в 01:30. |
16.08.2011, 22:43 | #13 |
Недо
Участник клуба
Регистрация: 11.08.2011
Сообщений: 1,394
|
Нормальный вопрос. ReadProcessMemory - это инструмент, можно считать, вы им пользоваться умеете. Вам надо научится искать указатели. Artmoney с этой задачей не очень справляется, он максимум ищет 1 уровень указателя. Не нашли вы указатель потому, что возможно указатель указывает на какой-то объект, где значение опыта является частью этого объекта (структуры). Чтобы выйти на это значение надо знать указатель, а также смещение, как выше было отмечено.
Хотите "правильно" научится искать указатели - придется осваивать риверсинг программ. 1. Попробуйте использовать поиск указателей не на один адрес, а на блок памяти, а потом отсеиваете. Это что касается ArtMoney 2. http://chemax.ru/articles/tutorial_dma_nondma.php - вот здесь есть статья (поиск поинтера) как искать указатель на примере игры Red Alert2, с исходником. Попытайтесь понять суть поиска, сами программные средства можно разные применять. 3. Из отладчиков советую использовать IDA PRO. 4. А что за игра-то?
С помощью программирования можно разбогатеть и изменить мир к лучшему (с) Бьерн Страуструп
|
17.08.2011, 00:36 | #14 |
Форумчанин
Регистрация: 10.02.2009
Сообщений: 815
|
2 Larboss
Спасибо за совет, о использовании и поисках указателей в данной узкой теме (если говорить о играх) поведал tutorial программы Cheat Engine где в 8ми шагах рассказывалось от поиска адреса конкретного значения до Code Injection (на asm с помощью все той-же программы) и 4-х pointer to pointer ... С практическим использованием рассказанного на тестовой программе. Выглядело как квест На англоязычных форумах описывается структура данных а так-же множество смещений после адреса структуры которые ведут к нужным мне данным, но практически во всех вариантах "принцип поиска" не понятен т.к. используются не выложенные dll/описания функций классов, + ко всему написано на "скриптовых языках". Возможно создам отдельную тему для "конвертации" этого индусского добра в псевдокод) Ну и собсна артмани я использовал для поиска, ибо других инструментов под рукой нет. Игра - не хочу заострять внимание на ней |
17.08.2011, 01:04 | #15 |
Недо
Участник клуба
Регистрация: 11.08.2011
Сообщений: 1,394
|
Вам нужно что? Понять принцип поиска указателей или решить вашу конкретную задачу текущую?
С помощью программирования можно разбогатеть и изменить мир к лучшему (с) Бьерн Страуструп
|
17.08.2011, 01:08 | #16 |
Форумчанин
Регистрация: 10.02.2009
Сообщений: 815
|
Как я понял без теории сложно на практике. Я хочу понять принцип поиска указателей и при этом написать работающий пример для моей задачи.
|
17.08.2011, 01:32 | #17 |
Недо
Участник клуба
Регистрация: 11.08.2011
Сообщений: 1,394
|
http://exelab.ru/f/index.php?action=...orum=6&page=-1 - мб и поможет.
Принцип, грубо говоря, такой: найти адрес значения (можно Артмоней использовать), поставить на этот адрес брейкпоинт (точка остановки) и в отладчике смотреть, "кто" ссылается на этот адрес. В ссылке, относящиеся к RedAlert 2, принцип описан. Потребуется: 1. Минимальные знания для работы с отладчиком. 2. Знания для создания трейнеров. В общем, гуглите=)
С помощью программирования можно разбогатеть и изменить мир к лучшему (с) Бьерн Страуструп
|
17.08.2011, 02:25 | #18 |
Форумчанин
Регистрация: 10.02.2009
Сообщений: 815
|
Получается примерно то-же самое что и в приведённых Вами ссылках.
Выстраиваются "цепочки" адресов и указателей и на каком-то этапе доступ к адресу имеют слишком много мест откуда они меняются. (к примеру указательN меняется/читается в 10ти местах на ASM.. и тут уже совсем не понятно что искать дальше Зарубежные "коллеги" решили данныю задачу путём поиска структуры данных (данных о персонаже), и после нахождения адреса этой структуры дальше идут константы отступы прибавив которые к адресу найденной структуры можно сразу добратся до адресов нужных мне значений. Но как я уже говорил поиск этой структуры мне совсем не понятен. |
17.08.2011, 09:52 | #19 |
Недо
Участник клуба
Регистрация: 11.08.2011
Сообщений: 1,394
|
Названные вами "отступы" на самом деле называются смещением. Я больше склоняюсь к тому, что зарубежные коллеги получили указатель на структуру, искав какое-то значение этой структуры. А затем, найдя его адрес, вычли из него нужное смещение. Например, [[A+0x18h]+0x20h]+0x23h], где А - адрес структуры.
PS. Желательно бы, чтобы вы сказали, что это за игра такая. Когда больше информации - больше можно подсказать. У меня есть скайп, можете "постучать", вечерком буду там.
С помощью программирования можно разбогатеть и изменить мир к лучшему (с) Бьерн Страуструп
|
17.08.2011, 13:45 | #20 |
Форумчанин
Регистрация: 10.02.2009
Сообщений: 815
|
Ну отступы, смещения, оффсеты - главное чторбы смысл был понятен
Здесь пример нахождения адресса, но не совсем понятно "адрес" процесса (апсурд же, ведь PID указывается изначально) либо адрес нужной структуры в процессе (снова апсурд, зачем сравнивать имя "exe файла" если PID уже известен), даи сама структура созданная в этом примере смахивает на описание процесса после CreateToolhelp32Snapshot. http://delphiworld.narod.ru/base/get...processes.html Тут много применений под "нужды" автора. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ReadProcessMemory/Не понятные явления | coNsept | Общие вопросы C/C++ | 2 | 31.07.2011 19:33 |
Меняющийся контент | 9GYAR | HTML и CSS | 3 | 20.07.2011 16:01 |
ReadProcessMemory+TMemoryStream | Bad-XxX | Общие вопросы Delphi | 2 | 10.10.2010 20:11 |
Проблема с FindFirst, как указать меняющийся путь? | _SacreD_ | Общие вопросы Delphi | 12 | 26.12.2007 16:14 |