| Сейчас на форуме: _MBK_ (+5 невидимых) | 
| eXeL@B —› Вопросы новичков —› Помогите найти статический адрес (OllyDbg) | 
| Посл.ответ | Сообщение | 
| 
 | 
Создано: 21 января 2011 02:00 · Поправил: Модератор  · Личное сообщение · #1 Добрый день. Я только начал изучать Olly, поэтому мой вопрос, возможно, дилетантский - так что не бейте ногами   Для начала опишу проблему.В связи с началом изучения Olly и ассемблера, с полки был извлечён пыльный исходник собственной проги, написанной когда-то в качестве тренировки мозгофф, предназначенной для одной онлайн игры (не пугайтесь, я не взламываю игру - просто читайте дальше). В проге я реализовал поиск определённого значения в памяти подобно артмани. Далее, прога читала по этому значению dword (значение сытости питомца) и в зависимости от этого выполняла определённые действия (кормление). Таким образом, адрес был динамическим. Занявшись Olly, я решил найти статический адрес. Для всех остальных значений я нашёл статические адреса, а вот для этого не могу, т.к. в olly никогда этого не делал. Я поставил брейк на адрес, по которому лежало значение и выскочил на код: Code: 
 Регистры: Code: 
 Вот полный код процедуры (расположена в Engine.dll игры), которая имеет доступ к адресу памяти: Code: 
 Подскажите, что делать дальше? Я так понимаю, сперва данные заносятся в EDX из EBP-7C? ![]()  | 
| 
 | 
Создано: 21 января 2011 07:01 · Поправил: ARCHANGEL  · Личное сообщение · #2 toizy пишет: Далее, прога читала по этому значению dword (значение сытости питомца) и в зависимости от этого выполняла определённые действия (кормление). Таким образом, адрес был динамическим. Занявшись Olly, я решил найти статический адрес. Не верю, что человек с таких хреновым пониманием терминов "статический" и "динамический" мог написать бота для кормления питомца. Если дворд был динамическим, то как его можно сделать статиком? Допустим, прога выделяла память под это значение, а потом записывала туда число. Тогда это значение каждый раз разное. В другом случае - если это константа - оно всегда одно и то же, и один раз определив его, можно юзать без изменений. А эта процедура ассемблерная бесполезна, т.к. после первого кола идёт джамп безусловный в конец процедуры, и не ясно, какой же кусок оперирует с интересующим ТС значением. ----- Stuck to the plan, always think that we would stand up, never ran. ![]()  | 
| 
 | 
Создано: 21 января 2011 10:01  · Личное сообщение · #3  | 
| 
 | 
Создано: 21 января 2011 14:01  · Личное сообщение · #4 2ARCHANGEL: не верьте, я никого переубеждать не собираюсь. Я же сказал, что только начинаю изучать все эти прелести, т.к. в колледже нам ничего подобного не преподавали. Господа, я только учусь, как бы хреново это у меня не получалось   Под динамическим я имел в виду термин из старой статьи на чемаксе - единственное, что я тогда смог найти в сети из элементарных гайдов (для dma и не-dma игр). Постараюсь выразится точнее - я хочу найти указатель на этот адрес, откуда он изменяется, чтобы убрать поиск из бота. 2[c4]: Поиск реализован так - открытие процесса, ReadProcessMemory, сравнение, если совпало, то в список, закрытие процесса. Отсев аналогичен поиску. Что до статических адресов, как я их неверно обозвал, так их я искал методом, описанных всё в той же статье на chemax.ru, других не знаю. Я попробую разобраться, куда был джамп и что там происходит. Вопросы напишу в скором времени  
![]()  | 
| 
 | 
Создано: 21 января 2011 16:43  · Личное сообщение · #5  | 
| 
 | 
Создано: 21 января 2011 17:29  · Личное сообщение · #6 gena-m Дык чо тут думать. Взял память просканил, темже чемаксом или как там его, нашёл переменную а тут облом - она не в секции данных ![]() Олли приаттачил а там ппц тёмный лес, так как асм не знаем, ось не знаем и вобще школота. toizy Изучать маны, сурсы, реверсить.. учится в общем.   | Сообщение посчитали полезным: [c4], MORFIUS | 
| 
 | 
Создано: 21 января 2011 19:01  · Личное сообщение · #7  | 
| 
 | 
Создано: 21 января 2011 19:06  · Личное сообщение · #8  | 
| 
 | 
Создано: 21 января 2011 19:10 · Поправил: Модератор  · Личное сообщение · #9 Кстати, то не бот, как подумал ARCHANGEL, это скорее "кликер" - так иногда называют подобные тулзятины. Тупо смотрит в памяти процесса значение и отсылает клавиши в окно. Более чем примитив. ЗЫ. Clerk, за школоту ответишь   А ежели серьёзно, мы колледжах всяких давно уже отучились, азы получили, ну а в крекинге квалификации не хватает. Если это вообще можно назвать квалификацией. Смотрю в код, а там - чёрт ногу сломит, не то что я ![]() Николай, спасибо, учебник по асму для лохов - то что нужно!   Ушёл читать, вопросы потом...
![]()  | 
| 
 | 
Создано: 22 января 2011 07:27  · Личное сообщение · #10 Всегда было интересно, как можно что-то накодить, не зная асма? Часто на форумах читаю сообщения типа: "Знаю С, но не знаю асма..." Блин, а как такие люди дебажат? ----- Stuck to the plan, always think that we would stand up, never ran.   | Сообщение посчитали полезным: neomant | 
| 
 | 
Создано: 23 января 2011 11:07  · Личное сообщение · #11  | 
| eXeL@B —› Вопросы новичков —› Помогите найти статический адрес (OllyDbg) | 

 Для начала опишу проблему.



 



 Ушёл читать, вопросы потом...
 Для печати