Перейти к содержанию

Лидеры

Популярный контент

Показан контент с высокой репутацией 26.03.2018 в Комментарии блога

  1. В принципе понятно куда копать. Надо алгоритм сканера переделать на такой, чтобы встав в любое место структуры, т.е. на любой байт, правильно получить смещение в структуре. Для этого надо просчитать то, что в квадратных скобках опкхода. Если это не возможно, потому что регистр перезаписываются, значит ставим не аппаратный бряк на инструкцию и он работает постоянно в холостую записывая нужные регистры перед тем как сработает аппаратный бряк на адресе структуры. Когда случилось, то снимем все бряки, определяем правильно смещение. Ну, а там дальше смотреть...
    1 балл
  2. Тестирую я радостный на gta3 плагин. Нашел кучу интересных адресов настроек. И силу прыжка, и скоростей Velocity, и id земли на которой стоим и id глобального события (если его переключить, то ты либо в полете, либо арестован либо еще что-то). И тут я увидел что капитально на многих адресах поехали смещения в структуре. В пределах 1-4 байт. И как я понял дело в скорости срабатывания адресов и таймера ожидания перехода аппаратного бряка на следующий байт в структуре до её размера. Представим себе 4-х байтовое значение Начало структуры: +00: xx xx xx xx +04: xx xx xx xx 1. На первом байте не успели сработать инструкции. 2. На втором байте не успели сработать инструкции. 3. На третьем байте наконец сработали и увидели опкод.Опкод распарсили. Получили размер в 4 байта 4. На третьем байте на два байта смещение +00 убежало вперед в смещение +02. Примерно такая картина Начало структуры: +02: [xx xx] xx xx .... и там много что поехало, а некоторые смещения не поехали Окей. Я могу быстро вычислить адрес в скобках [eax+смещение] и даже всякие repe повторы обработать, но как только вот такая штука попадается mov eax, [eax+смещение] или вот такая mov eax, [eax*4+смещение], то eax уже успеет перезаписаться, ведь на данных стоит аппаратный бряк, а он работает после выполнения инструкции. 1) На смещении нужно постоять и подождать других инструкций и если N времени таких нет, то надо мне подумать, как быть дальше. 2) В принципе я могу и не ждать снять аппартный бряк с адреса в структуре и поставить не аппаратный бряк уже на инструкцию и получить eax до инструкции., а не после как при аппаратном. И тут еще один нюанс, на [eax+смещение], не тот адрес, а какой-то соседний или вообще дальний. Похоже надо оставлять оба бряка и аппаратный на смещении структуры и не аппаратный на инструкции. Сохранять данные не аппаратного постоянно, как только сработает аппаратный посмотреть последний данные не аппаратного и с ними работать. В общем буду думать как это все упростить и чтобы стабильно работало. Еще есть такая штука jumps и calls на адрес инструкции, там тоже может быть ситуация...
    1 балл
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.