-
В игровом окошке есть панелька, на которой отображаются данные персонажа(жизнь, мана и броня). Хочу узнать эти цифры.
Каким способом это можно осуществить?
У меня пока одна нормальная идея - графически определять текст(правда не знаю как^^).
Еще есть мысль - если можно каким то образом получить адреса памяти, где хранятся эти данные, то будет вообще шикарно, но боюсь что адреса выделяются динамически, и их невозможно будет узнать.
У кого есть опыт подобной работы, или просто пожелания -
буду очень рад любым советам.
Заранее спасибо.
-
Есть идеи. Но только после того, как узнаю ЗАЧЕМ?
-
На дворе кризис, а им все бирюльки)
-
2ex, делаю автокликер для игры. действие должно выполнится при достижении параметрами определенного уровня(например при падении жизни < 50% пьется элексир жизни)
-
Можно ли получить хандл этой менюшки, впринципе не знания никакой информации о ней(только положение на экране)?
-
> Можно ли получить хандл
А кто тебе сказал, что эта "менюшка" является объектом опер.системы и посему обязана иметь хэндл ?
-
Да вот беда что никто не говорил)
Я просто наивно перебераю все возможные варианты)
-
> жизнь, мана и броня
Стесняюсь спросить, "мана" - это, наверно, запас манной каши ?)
-
не важно :) пусть будет так :)
Сергей, у вас есть какая-нибудь мысль по моей проблеме?)
-
> _romm (13.02.09 13:47) [8]
Мысль я уже в [2] изложил)
Ну а если абстрагироваться от бирюлек, то тут любые идеи/средства будут хороши и не лишние - от сканирования образа процесса средствами какой-нить ArtMoney и/или исследования "жертвы" под отладчиком до использования неких алгоритмов распознавания текстово-символьных графических образов.
Быстрота и сложность достижения результата напрямую зависит и от сложности/скрытности внутренней организации "жертвы" и от знаний/умений в пользовании вышеупомянутых средств.
-
Если игра сетевая, то порой проще перехватывать пакеты и анализировать их, но навыки, описанные в [9] лишними не будут :)
-
игра сетевая, с пакетами я работать не умею :)
-
> [3] _romm (12.02.09 15:18)
Так и знал, что читерство.
> [10] Asteroid (13.02.09 14:32)
Не получится. в MMORPG крутятс ябольшие бабки, поэтому канал нехило шифруется.
-
ex, не читерство, а автоматизация :)
выкладывай свою идею :)
-
Есть два реализуемых способа:
1) С помощью некой утилиты(АrtMoney, например, которую здесь уже упоминали) ищется адрес переменной. Минус в том, что при перезапуске адрес скорее всего переместится и заморачиваться придется по ноаой. Плюс в том, что любой идиот справится.
2) С помощь дизасемблера, отладчика и внедрения своих дллек ищем переменную в коде. Если даже по коду не удастся узнать где она будет располагаться в памяти, скорее всего это значение в каком то виде передается во внешние длл(простой пример: жизнь рисуется квадом. соответственно по размеру квада мы можем узнать количество жизни. Выясняем момент, когда рисуется квад(с помощью дизассемблера, отладчика и экспериментов), перехватываем координаты и получаем значение жизни.)
-
по второму способу не подскажешь литературу?
-
Побаловался с АртМаней,
выяснил, что жизни хранятся в неком адресе хххххххх.
после перезапуска игры, адрес оказался тот же, что порадовало :)
Всем спасибо за советы, пока попробую прочитать оттуда данные...
ЗЫ тему не закрывайте, не может все так просто оказаться :)
-
> ЗЫ тему не закрывайте, не может все так просто оказаться
> :)
Почему не может? Если статик переменная, но у ней адрес фиксированный в пределах билда.
-
> Не получится. в MMORPG крутятс ябольшие бабки, поэтому канал
> нехило шифруется.
Вот тут-то и пойдут в дело инструменты обратного "инженеринга" :)
Но раз адреса в памяти хватило, то тем проще :)
-
> адрес оказался тот же
пф, видимо совпадение, адрес все же меняется :(
из той же артмани узнал указатель на структуру(не уверен что это структура, но указатель на текущие жизни, и максимальные жизни одинаковый).
Подскажите как теперь используя этот указатель узнать адрес конкретного значения
-
Значение в структуре лежит по адресу (адрес структуры + смещение). Если не знаешь структуру, то смещение придется угадывать (а структура может быть весьма большой).
В случае, если все же откопаешь адрес самой структуры, поищи его через артмани. Может повезти в том, что он [адрес структуры с жизнью] хранится по некоторому фиксированному адресу в памяти. Или адрес структуры, содержащей адрес структуры с жизнью хранится в фиксированному адресу. Или (...повторять до вывиха мозга).
-
Ну эт логично :)
Допустим смешение для жизней будет "х".
Для функции чтения из памяти в качестве адреса требуется переменная типа DWORD.
Если адрес статический то DWORD a = 0xFFFFFF
а как быть с указателем, т.е. как узнать на что он ссылается? чтобы получить адрес структуры вида DWORD a = 0xFFFFFF
-
> [21] _romm (15.02.09 19:37)
Указатель хранит в себе адрес. :)
-
Я жутко туплю :)
-
я заметил что 4 года назад но всеровно, не проще Uopilot использовать?
-
-
Удалено модератором
-
Удалено модератором
-
Удалено модератором