Alex2411 Опубликовано 28 июля, 2018 Поделиться Опубликовано 28 июля, 2018 привет объясните как искать изменнения когда изменлись данные в структуре . я нашел базовый адрес записал в base region нажал scan появились адреса и указатели . потом данные в структуре поменялись, золото, ресурсы . как в structure spider узнать что изменилось ? там есть окно compare agaist , но не понятно что там записать . в мануале про structure spider ни чего не написано еще не понятно что такое has shadow . ставлю галку пишет ошибка . Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 29 июля, 2018 Поделиться Опубликовано 29 июля, 2018 Ну и накатал же я пост. Давно счеты со Spider-ом. Толком им не пользовался. Я не уверен, что знаю все о Spider-е. Поскольку возник такой вопрос, то решил снова им заняться, но уже более детально. Пришлось кучу скринов наделать. Со "structure spider" более менее разобраться можно на практике и 9-тым туториалом. has shadow — адрес структуры—копии. Можно сделать поставив галку Lock в окне Dessect Data на адресе. Делает копию структуры (например стека или данных игрока до перезагрузки уровня) Спойлер Сравнивать можно как в Desssect Data так и в Spider-е. Смотря что и как ищешь. Определяется экспериментально. Спойлер *Если поставить Lock и вызывать Spider, то данные о Shadow адресе сами заполнятся. Можешь попробовать, самому их можно не заполнять. Но Dissect Data — для ручного визуального сравнения. Запускаем 9-тый туториал и пытаемся понять. Слева окно с Lock адресами. А в окне справа поставлены их shadow copy (их можно посмотреть как на примере, на скрине выше строка "Lock (Shadowcopy at 00350000)") Спойлер Там, где мелкие стрелки и если там удалять адреса, то обновляется значения shadow и не shadow (синий цвет текста и данные будут появятся в таблице результатов). Т.е. можно сравнивать как копии, так и не копии очищая и возвращая значения в полях ввода. Shadow рекомендуется для сравнения дампов стеков Спойлер Но есть более лучшее средство чем Spider. Я писал о нем у себя в блоге Scan for commonalites на окне определения проскакивающих адресов Спойлер Спойлер Разница в значениях по EBX с типом float Спойлер Разница в группах (для потенциального фильтра) с типом 4 byte (опция Only find matching groups) Спойлер Все три инструмента: DissectData, Spider и Structure Compare могут помочь что-то сравнить и найти. Structure Compare появился в версии CE 6.8 2 Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex2411 Опубликовано 29 июля, 2018 Автор Поделиться Опубликовано 29 июля, 2018 спасибо мастер . многое понятно стало . слушай , а где то есть полный мануал по чит енжин , что бы все функции были написаны ? про режим shadow если бы ты не объяснил , то и узнать не где . возможности у чит енжин большие , много полезного , а как пользоваться ими не известно . еще объясни пожалуйста . когда lock создал теневую копию , то копия сохраняеться без уровня указателей . если нужно искать что изменилось в структуре в указателе 2 или 3 или больше уровня как это сделать ? еще мне очень нравиться твой плагин tinydumper часто им поьзуюсь , но он то же не запоминает в глубину указателей . structure compare удобная фича , но мне пришлось из за багов сносить 6.8 и обратно поставить 6.7 Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 30 июля, 2018 Поделиться Опубликовано 30 июля, 2018 11 часов назад, Alex2411 сказал: спасибо мастер . многое понятно стало . слушай , а где то есть полный мануал по чит енжин , что бы все функции были написаны ? Говоришь полный мануал и чтобы все функции были написаны. Тогда качай исходники Cheat Engine 11 часов назад, Alex2411 сказал: еще объясни пожалуйста . когда lock создал теневую копию , то копия сохраняеться без уровня указателей . если нужно искать что изменилось в структуре в указателе 2 или 3 или больше уровня как это сделать ? еще мне очень нравиться твой плагин tinydumper часто им поьзуюсь , но он то же не запоминает в глубину указателей . Lock не сохраняет копии вложенных структур. Тут ничего не подскажу, кроме как свой плагин CE Lua писать. 11 часов назад, Alex2411 сказал: еще мне очень нравиться твой плагин tinydumper часто им поьзуюсь , но он то же не запоминает в глубину указателей . К сожалению, не запоминает. Не обещаю, что сделаю эту функцию В каких случаях это могло бы пригодится? Можно же сравнить не Lock структуру с не Lock структурой и никаких проблем. А вот со стеком, возможно бы пригодилось как эксперимент. Вообще лучше Dark Byte напиши предложение об этом, чтобы над lock recursive подумал стоит делать или нет для стека как минимум. 12 часов назад, Alex2411 сказал: structure compare удобная фича , но мне пришлось из за багов сносить 6.8 и обратно поставить 6.7 Уже есть 6.8.1 и там были фиксы Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex2411 Опубликовано 30 июля, 2018 Автор Поделиться Опубликовано 30 июля, 2018 4 часа назад, MasterGH сказал: К сожалению, не запоминает. Не обещаю, что сделаю эту функцию В каких случаях это могло бы пригодится? это полезно когда в структуре много указателей , а какой из них нужен не известно . часто получаеться отсеванием значение не найти если оно очень редко меняеться и не известного типа . тогда я применяю tinydumper . делаю дамп структуры потом стараюсь изменить в игре на сколько можно больше значений кроме нужного потом снова дамп снова меняю . так повторяю несколько раз . потом мееняю в игре нужное значение делаю снова дамп потом снова меняю что угодно в игре потом снова дамп. потом все дампы открываю в dessect structure , но дампы после изменения нужного значения ставлю в другую группу . потом сравниваю группы что изменилось только между ними . этот способ мне часто помогает находить значения в игре которые изменились толькко один раз . по другому их не найти . но способ не работает если значение идет на следующим уровне после указателя . когда указателей мало я делаю отдельные дампы структуры начаная от адреса указателя , но часто бывает когда похожих указателей очень много и каждому дамп несколько раз создавать очень не удобно . многие спортивные игры , там структура команды , а в ней много указателей на игроков . военные игры , главная структура армии , а в ней куча указателей на юнитов . недавно играл в транспртную стратегию , там все мои поезда были в указателе второго уровня , а морские и воздушные транспорты то же второго уровня , но в ветках из указателей рядом . если бы можно было запоминать хотя бы первый уровень указателей это очень удобно . я пробовал захватить данные с указателями из окна spider сохранить в файле и потом сравнить файлы . получаеться , но очень долго . в 6.8.1 баг про который я не давно писал не исправили . Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 30 июля, 2018 Поделиться Опубликовано 30 июля, 2018 1 час назад, Alex2411 сказал: из указателей рядом . если бы можно было запоминать хотя бы первый уровень указателей это очень удобно . я пробовал захватить данные с указателями из окна spider сохранить в файле и потом сравнить файлы . получаеться , но очень долго . Для +1 уровня в Spider-е не должно быть очень долго для структуры размером с 0x1000. Долго начинается +3 и выше. Я все-таки предлагаю помучиться со сканированием в Spider-е. 1. Ищем первый раз + 1lvl Pointer, пишем в файл дамп 2. Меняем значение в игре. Если оно редко меняется, то делаем так чтобы менялось чаще. Например, загрузка игры с разными сохранениями. 3. Делаем отсев "изменилось" по адресу структуры (он поменяется, его заново найти) в новый файл. На этом шаге уже будет результат отсева, а не весь дамп в отдельном файле как дамп из пункта1. Отсев дальше быстрее пойдет Ну и так далее... Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex2411 Опубликовано 30 июля, 2018 Автор Поделиться Опубликовано 30 июля, 2018 1 час назад, MasterGH сказал: 1. Ищем первый раз + 1lvl Pointer, пишем в файл дамп 2. Меняем значение в игре. Если оно редко меняется, то делаем так чтобы менялось чаще. Например, загрузка игры с разными сохранениями. 3. Делаем отсев "изменилось" по адресу структуры (он поменяется, его заново найти) в новый файл. На этом шаге уже будет результат отсева, а не весь дамп в отдельном файле как дамп из пункта1. Отсев дальше быстрее пойдет не много не понял объясни пожалуйста . открыл спайдер , max level ставлю 1 , потом скан , спайдер спраишвает сохранить файл *sptr , ок сохранил . потом поменял какое то значение в структуре . потом мне не понятно . как сделать отсев что изменилось в спайдере ? кнопка rescan не отсеивает , а снова сканирует то же самое . ок сделал рескан , потом сохранил в другой файл *sptr . если сравнить файлы *sptr первый и второй , то они одинаковые . в *sptr значения не записываються , спайдер сохраняет только адреса и офсеты указателей . еще хотел сказать про изменение значений . часто бывает ,что поменять значение можно только один раз . герой выучил перк , а обратно не поменять . я юниту апгрейд сделал , а назад не вернуть . в меч вставил камень и потом ни как не изменить . как искать такое значение не известного типа ? я только через tinydumper с кучей дампов как написал Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 31 июля, 2018 Поделиться Опубликовано 31 июля, 2018 20 часов назад, Alex2411 сказал: спайдер сохраняет только адреса и офсеты указателей Да, нельзя, я посмотрел. Прошу прощения, что ввел в заблуждение. Сам не проверил. Тогда остается писать Lua плагин в том же TinyDumper-е по сохранению и восстановлению многоуровневых структур. К сожалению, пока некогда им заняться и не понятно когда будет время. Там по циклу получается определять структуры через autoguess и делать рекурсию по X вложенности при этом сохраняя значения. Потом придумать формат сохранения бинарный, т.к. строками — будет много. Потом придумать как это обратно восстановить через alloc() -и в памяти. Поменяются поинтеры и Spider может их показывать как результат сканирования, это может мешать... Довольно это трудоемко, пока не планирую этим заниматься, но могу подсказать как это написать на Lua в TinyDmper-е, на какие функции внимание обратить и как реализовать. Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex2411 Опубликовано 31 июля, 2018 Автор Поделиться Опубликовано 31 июля, 2018 1 час назад, MasterGH сказал: могу подсказать как это написать на Lua мастер спасибо , но мне это силшком сложно , потому что я ни чего не умею на lua . я только не давно начал сам делать простые скрипты на чит енжин из шаблона . слушай , еще хотел спросить . нашел твой Dissect Data Scaner 1.0.2 beta . по описанию очень полезный плагин , но он почему то у меня пишет ошибку , чит енжин 6.7 вин хр . наверно потому что плагин бета . ты не хотел бы его развивать дальше ? очень пригодился бы Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 1 августа, 2018 Поделиться Опубликовано 1 августа, 2018 Dissect Data Scaner должен идти на 6.8.1. Развивать были планы. Как я понял в DBVM, в CE 6.8.X появилась возможность ставить брейкпоинт на всю структуру сразу, а не довольствоваться аппаратными брейкпоинтами из которых плагин использует только 1-аппартный брейкпоинт на настраиваемую пользователем X—задержку, на +1 байт по всей структуре. Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex2411 Опубликовано 2 августа, 2018 Автор Поделиться Опубликовано 2 августа, 2018 В 01.08.2018 в 12:07, MasterGH сказал: issect Data Scaner должен идти на 6.8.1. идет на 68.1 и 6.7 , но после сканироания не создаеться структура как у тебя на скрине, а в окне lua engine в окошке output появляеться большой столбик адресов . что делать с ними дальше ? окно structure disect остаеться пустое Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 4 августа, 2018 Поделиться Опубликовано 4 августа, 2018 В 02.08.2018 в 23:05, Alex2411 сказал: окно structure disect остаеться пустое Сканер запускаем в таком виде. Спойлер Потом выставляем настройки. Потом идем сразу в игру, чем быстрее тем лучше и делаем так, чтобы значения в структуре менялись с бОльшей вероятностью. Потом ищем структуру Спойлер Общая картина для Tutorial-i86. Так что работает Спойлер В 02.08.2018 в 23:05, Alex2411 сказал: в окне lua engine в окошке output появляеться большой столбик адресов . что делать с ними дальше ? Это логи, когда сканер ставил брейкпоинт на адрес структуры на доступ. В конце показывается на каких смещениях сработал брейкпоинт Спойлер Структуру смотреть. Там параметры, которые читались. Если стоит WRITE, то записывались Спойлер 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения