Сейчас на форуме: igorcauret (+8 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Проблема с бряком |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 30 июня 2014 19:44 · Личное сообщение · #1 Пытаюсь брякнуться при изменение мной конкретного числа в игре. Нашел адрес в памяти где хранится это число. Ставлю бряк на запись в память по указанному адресу. Переключаюсь в игру, бряк тут же срабатывает, хотя я даже с паузы не снял игру(естественно число не изменял). F5 можно нажимать и нажимать, брякается постоянно. До снятия игры с паузы даже не доходит. Адреса все время разные, но для примера: мне надо брякнуться при изменение значения по адресу 0321Е1С9, а игра все время пишет ноль по адресу 0321Е1В4. Почему срабатывает мой бряк? Бряк ставлю в сисере через команду : bpm 0321Е1С9 w п.с. кстати кто-нибудь знает где в сисере поменять цвет всех цифр.? может есть у кого идеи как по другому мне брякнуться? Зарание спасибо за помощь. ![]() |
|
Создано: 30 июня 2014 20:19 · Поправил: vovanre · Личное сообщение · #2 |
|
Создано: 30 июня 2014 20:28 · Личное сообщение · #3 |
|
Создано: 30 июня 2014 20:31 · Личное сообщение · #4 |
|
Создано: 30 июня 2014 20:32 · Поправил: unknownproject · Личное сообщение · #5 Kozak пишет: СЕ это что? CheatEngine, там есть встроенный дизассемблер.И, имхо, он намного удобнее для игр, так как отладчик все же имеет несколько иное предназначение.В чит энджин входит chm мануал, а так же экзе туториал, так что разобраться в нем будет не трудно. Добавлено спустя 3 минуты Kozak пишет: изменение мной конкретного числа Поправка.Не число, а целочиcленное значение, значение переменной, если уж быть точным.И оно, кстати, может быть и не целым, а просто визуально отображается таковым, а на самом деле тип float. Добавлено спустя 5 минут vovanre пишет: В се есть возможность отслеживать то и от куда пишет не останавливая игру. Ну вообще-то он подключает для сих целей свой собственный отладочный механизм и дополнительный процесс.В некоторых случаях его приходится даже патчить от определения в конкретных играх, но благо сырки доступны и можно спокойно и не напрягаяясь все поправить под свои нужды. ----- TEST YOUR MIGHT ![]() |
|
Создано: 30 июня 2014 20:39 · Личное сообщение · #6 |
|
Создано: 30 июня 2014 20:48 · Личное сообщение · #7 СЕ скачал буду изучать и разбираться. Но поверхностно глянул и думаю вряд ли он мне поможет. Думаю надо написать что конкретно мне надо сделать в игре. В игре есть заказ солдат: клик по иконке это +1 солдат шифт+клик по иконке это +5 солдат альт+клик по иконке это +50 солдат мне надо попасть в обработчик альт+клик чтоб изменить 50 на 500, потому что заказывать 1000 солдат даже по 50 это долго. Соответственно адрес в памяти где хранится значение кол-во заказанных солдат я нашел и пытаюсь брякнуться на изменении этого значения. ![]() |
|
Создано: 30 июня 2014 21:23 · Личное сообщение · #8 |
|
Создано: 30 июня 2014 21:25 · Личное сообщение · #9 Kozak пишет: Но поверхностно глянул и думаю вряд ли он мне поможет. Там вроде все просто. Вводишь свое число солдат, она тебе найдет множество адресов, в игре изменяешь число солдат, в проге этой делаешь отсеивание. И так пока не останется 1-2 адреса, а потом просто в них запишешь сколько тебе хочется. ![]() |
|
Создано: 30 июня 2014 21:28 · Поправил: vovanre · Личное сообщение · #10 kola1357 пишет: Там вроде все просто. Вводишь свое число солдат, она тебе найдет множество адресов, в игре изменяешь число солдат, в проге этой делаешь отсеивание. И так пока не останется 1-2 адреса, а потом просто в них запишешь сколько тебе хочется. Перенесите значение дбл кликом и нажмите внизу по значению пкм, а далее поочерёдно переводите список который выпал. И вы поймёте на сколько се много чего умеет. ![]() |
|
Создано: 30 июня 2014 23:36 · Личное сообщение · #11 Если есть задача отследить некий адрес во множестве адресов в пределах окна ап, эта задача довольно сложна, особенно если есть защита. Но если имеется ссылка на необходимый адрес, а это почти всегда и везде, то задача превращается в простейшую - элементарно мониторим разыменование(IDP). Минута коденга. ![]() |
![]() Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 01 июля 2014 08:09 · Личное сообщение · #12 Kozak пишет: В игре есть заказ солдат: клик по иконке это +1 солдат шифт+клик по иконке это +5 солдат альт+клик по иконке это +50 солдат 1) у игры есть название? 2) наверняка 1, 5, 50 это константы, т.е. в коде будет это выглядеть как: Code:
можно пошукать данные конструкции в целевом образе или если есть какая нибудь подгружаемая явно-говорящая за себя dll(например, engine.dll)-то смотреть там. Ctrl+F ![]() |
|
Создано: 01 июля 2014 16:20 · Личное сообщение · #13 Вчера не смог ответить, защита форума от спама блочила. Заюзал в СЕ возможность отслеживать откуда из кода идет запись в кол-во солдат. Менял кол-во солдат в игре по разному и +1, и +5 и +50. СЕ указал только одно место в коде. push ebp mov ebp,esp push ecx mov [ebp-04],ecx cmp dword ptr [ebp+08],01 jnl dmcr.DialogsSystem::addClipper+B0E jmp dmcr.DialogsSystem::addClipper+B2A mov eax,[ebp-04] xor ecx,ecx mov cx,[eax+1D] or ecx,08 mov edx,[ebp-04] mov [edx+1D],cx mov eax,[ebp-04] mov ecx,[ebp+08] mov [eax+15],ecx ->здесь идет запись mov esp,ebp pop ebp ret 0004 куда дальше копать не знаю ELF_7719116 1) название игры мой_ник+и (если есть желание копаться, могу выложить) 2) поиск по командам выполнял, но ничего не нашел. ![]() |
|
Создано: 01 июля 2014 17:09 · Личное сообщение · #14 |
|
Создано: 01 июля 2014 17:44 · Личное сообщение · #15 дело в том что в этом месте брякаюсь даже не сняв игру с паузы, просто переключаюсь с отладчика в игру и сразу бряк. До клик+альт по иконке даже не дохожу. игра зачем-то все время по этому коду проходит, т.е. возвращаемся к первому посту, что все время бряк срабатывает, хотя кол-во еще не изменилось. ![]() |
|
Создано: 01 июля 2014 17:53 · Поправил: vovanre · Личное сообщение · #16 |
|
Создано: 01 июля 2014 18:06 · Личное сообщение · #17 |
|
Создано: 01 июля 2014 22:27 · Личное сообщение · #18 |
|
Создано: 01 июля 2014 22:32 · Личное сообщение · #19 |
|
Создано: 02 июля 2014 10:11 · Личное сообщение · #20 докладываю куда продвинулся и где и застрял. отлаживать в оле не могу, т.к. игра после бряка не дает отобразить олю и другие программы, только строку пуск у винды и то в серых тонах. А в сисере есть частично разноцветные цифры, которые после бряка сливаются с фоном, т.е. в сисере могу отлаживать но половина цифр не видно. Спрошу еще раз может кто знает как менять цвет цифр в сисере? Это не антиатладка, просто игра как я понимаю не отдает видео режим. Написал для оли корявый скрипт push ebp mov ebp,esp push ecx mov [ebp-04],ecx cmp dword ptr [ebp+08],01 jnl dmcr.DialogsSystem::addClipper+B0E jmp dmcr.DialogsSystem::addClipper+B2A mov eax,[ebp-04] xor ecx,ecx mov cx,[eax+1D] or ecx,08 mov edx,[ebp-04] mov [edx+1D],cx mov eax,[ebp-04] mov ecx,[ebp+08] mov [eax+15],ecx ->тут бряк, записываем в лог что игра пытается записать в кол-во солдат, отпускаем игру mov esp,ebp pop ebp ret 0004 -> тут бряк, записываем в лог откуда был вызов этой процедуры, отпускаем игру игра тупила но события отрабатывались и в логе есть закономерность Code:
+1, +5, +50 вызывались из одного места 0059511E посмотрел визуально ничего не понятно, надо трассировать но с этим проблемы. ![]() |
![]() Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 02 июля 2014 10:19 · Личное сообщение · #21 |
|
Создано: 02 июля 2014 12:38 · Личное сообщение · #22 |
|
Создано: 02 июля 2014 14:36 · Поправил: unknownproject · Личное сообщение · #23 SReg пишет: мне иногда помогало Alt+F5 Гы.А в чем трабл покопаться в настройках или запустить ее в окне, к примеру, через D3DWindower и приаттачиться к процессу.Таки намного комфортней будет. З.Ы некоторые игры ксорят специфические значения, для этого придётся не один час убить чтоб выйти на нужную функу. А в некоторых реализованы собственные формулы для расчета реального значения переменной от визуального (навскидку, Daemonica, единица там = 1024, то есть, как один кб в байтах (кэп). И аргументы (параметры) тоже до сих пор используются в довольно таки большом кол-ве игр.Но это уже либо конфиг потрошить, либо эксе, либо доп модули, а если там сурсы открытые - вообще все понятно тогда.Порой проще написать редактор сейвов, чем копаться в поисках поинтеров, дабы изменить нужные значения в игре. ----- TEST YOUR MIGHT ![]() |
|
Создано: 02 июля 2014 14:42 · Поправил: ClockMan · Личное сообщение · #24 unknownproject пишет: Гы.А в чем трабл покопаться в настройках или запустить ее в окне Это для Олли функция Always on top З.Ы некоторые игры ксорят специфические значения, для этого придётся не один час убить чтоб выйти на нужную функу. ----- Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли. ![]() |
|
Создано: 02 июля 2014 14:44 · Личное сообщение · #25 |
|
Создано: 02 июля 2014 15:24 · Поправил: unknownproject · Личное сообщение · #26 Dr0p пишет: Если есть задача отследить некий адрес во множестве адресов в пределах окна ап, эта задача довольно сложна, особенно если есть защита. Но если имеется ссылка на необходимый адрес, а это почти всегда и везде, то задача превращается в простейшую - элементарно мониторим разыменование(IDP). Минута коденга. Ну так давай уже, зарелизь нам универсальный хак для любой игры со структурным расчетом по заданному смещению в 2,4,6,8,10 etc байт + целевой паттерн для трейнера в придачу.Или это так было, очередное случайное битье подушечек пальцев о клаву ? ----- TEST YOUR MIGHT ![]() |
|
Создано: 02 июля 2014 22:02 · Личное сообщение · #27 |
![]() Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 03 июля 2014 09:58 · Личное сообщение · #28 Kozak пишет: В игре есть заказ солдат: клик по иконке это +1 солдат шифт+клик по иконке это +5 солдат альт+клик по иконке это +50 солдат тащемта там еще есть Ctrl+клик по иконке - и солдаты будут штамповаться бесконечно. как я понял, копия ресурсов хранится в секции .data (VA +0xC4599C или RVA = 0x0104599C), от которой я вышел на функцию(0x04329D7), ответственную за производство солдат: Code:
при заказе солдатов, вызывается она вот с этого цикла(вообще она вызывается из 4 мест. но это так, к слову): Code:
где можно предположить, что 2й аргумент это кол-во солдат. 3й как-то со временем на пр-во связан. Kozak пишет: ELF_7719116 http://www.fayloobmennik.net/3919187 just for lulz! советую качнуть - игрушка не может загрузить (по крайней мере у меня было все так) библиотеки AI ботов, если проигнорить спп ексепшен и начать играть, то можно словить кучу лулзов в одиночной игре против Алжира. Зерг-раш такой, какой есть ![]() ![]() |
|
Создано: 03 июля 2014 11:08 · Личное сообщение · #29 |
|
Создано: 04 июля 2014 00:00 · Поправил: Kozak · Личное сообщение · #30 ELF_7719116 Про бесконечность конечно я знаю, заказывать конкретно кол-во это необходимо в "дипломатическом центре" наемников. Последние самые дорогие и самые нужные. Если их поставить на бесконечность, то каждый следующий юнит будет дороже предыдущего. Если заказать сразу 1000 то каждый обойдется по цене первого солдата. у тебя получилось в оле отлаживать игру? мне D3DWindower не помог, мышка бегает за оком игры и тыкаю вслепую. ![]() |
. 1 . 2 . >> |
![]() |
eXeL@B —› Вопросы новичков —› Проблема с бряком |