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

Sanic

Пользователи
  • Постов

    57
  • Зарегистрирован

  • Посещение

  • Победитель дней

    3

Весь контент Sanic

  1. Зависит от того, как там устроено, твой подход сработает, если таймер начинает тикать с 30 минут до нуля, но может и не сработать, если (реальный) таймер начинает отсчет с нуля до 30 минут, и уменьшается, когда ты выигрываешь больше времени, в таком случае уже придется искать "увеличилось" когда время остается все меньше и искать "уменьшилось" когда ты увеличил свое время. Один из этих подходов наверняка сработает. P.S: Изредка разработчики могут сделать так, чтобы игра ориентировалась по системному времени, тогда придется ломать время в игре совсем другим способом, узнавая через какую функцию игра узнает время системы и затем отталкиваться от этого дальше.
  2. Ты юзаешь спидхак, встроенный в CE? 1. Может проблема с самим Cheat Engine, он не без багов, попробуй переустановить его, или вообще другую версию заюзать. 2. Может разработчики добавили детект на такое вмешательство в код, и игра вылетает.
  3. 1. Находим эту инструкцию, и пытаемся сначала тупо промотать вверх, вдруг LEA чуток выше находится. Как оказалось, ее там нету, значит LEA инструкция скорее всего выполняется до вызова данной функции. 2. Ставим условный "break and trace" на "mov eax,[esi+14], чтобы узнать, откуда данная функция вызывалась. И во чудо, эта LEA инструкция "lea ecx,[esi+8]" находится прямо над call-ом, который вызывает функцию с "mov eax,[esi+14]". Но странно то, что LEA пишет не в esi а в ecx, хотя это можно списать на то, что игра чуть позже перекинет его опять в esi. 3.Но надо проверить наверняка, имеет ли эта инструкция отношение к тому, что нам надо, ставим еще один условный "break and trace" уже на lea инструкцию но на этот раз из-за смещения "+8" отнимем от нашего указателя еще 8 4. Подтверждается предположение из второго пункта о том, что значение из ecx перепрыгнет в esi 5. И да, этот уже "отлеашеный" указатель используется игрой.
  4. У разных параметров есть разные указатели, но я на 100% уверен, что именно эта часть модуля "ProjectX.exe+002416B4" указывает на него, можешь в сканер указателей вбивать точное местоположение этого модуля в "Base address must be in a specific range" и быстренько найдешь указатели на другие атрибуты.
  5. Только что прочекал, у меня в ноуте эти указатели тоже работают, значит они надежные. https://prnt.sc/mmbseg Да, лучше самый верхний указатель не использовать. Кстати, жизни находятся по смещению 144, а то что ниже жизней розовенькое, я не нашел. Но думаю ТС дальше сам разберется. P.S: игра обращается к жизням тоже по смещению 4, значит для игры очки действия и жизни в разных структурах 0_0
  6. Я нашел этот указатель полностью вручную, благо сканер не понадобился. Все довольно просто, тот указатель, что находится в esi, является по сути искаженным, не настоящим. Настоящий указатель был искажен таким образом
  7. https://prnt.sc/mm3vb3 Возможно проблема самой игры. А ты пробовал накрутить денег и затем купить что-то на них? Деньги откатываются? Купленные вещи откатываются?
  8. Советую найти время, чтобы посмотреть этот плейлист, и думаю, что после этого ты сам сможешь справиться. https://www.youtube.com/watch?v=hb8w3mOQwp8&list=PL1rFTirh2a0OiFJerJUT3a7UXEL5M7xxD
  9. Что именно там ломать, ты даже не сказал, что именно взломать хочешь. Одиночные игры ломал? Если это онлайн игра, то вообще не пробуй ломать ее, пока не наберешься опыта на одиночных играх.
  10. https://prnt.sc/mlzozp Тут во всей цепочке два таких [регистр+другой_регистр*8+4] и значение "другого_регистра" есть ID... чего... то... Я особо пока не исследовал, я не знаю. Единственное, что я понял, это то, что этот указатель указывает на именно ВЫБРАННОГО тобой перса, то есть если ты кликнешь сначала на одного солдата, потом на второго, тогда указатель тоже сначала будет указывать то на одного, то на второго при условии, что ты потратишь на них хоть 1 очко движения. Но с танками какая-то муть.
  11. Вот краткое объяснение, как надо отслеживать, когда с регистра читают и переписывают одновременно,
  12. Да использует она структуры, я сам скачал эту игру, может у нас все же разные версии, не знаю. Откопал вручную указатель, твой "любимый" "mov ebx,[ebx]" вообще не был помехой. Может сделаю коротенькое видео, о том, что с подобными инструкциями делать надо(Там вообще изи). Указатель указывает на очки действия выбранного тобой солдата. Не знаю, но он почему то не работает на танчике =(. P.S: Указатель сработает только после того, как изначально потратишь хотя бы чучуть очков действий.
  13. Когда находишь адрес, с которым работает ЭТО - "mov ebx,[ebx]", тупо копируешь адрес как здесь https://prnt.sc/mloms0 и затем вставляешь его в окошко сканера https://prnt.sc/mlon5c и врубаешь сканер. ДЕЙСТВИТЕЛЬНО, что может быть проще 0_0
  14. Ты уверен? Я же по второму скрину вижу: Ты вбивал в сканер "1609С740" и тебе нашло АДРЕС "1609EA60", который имеет ЗНАЧЕНИЕ "1609С740". А теперь тебе надо искать АДРЕС, который имеет ЗНАЧЕНИЕ "1609EA60"
  15. Тут работает такая формула: [указатель+смещение]=адрес, с которым работает инструкция Как правило, ты сканером находишь последнее, а указатель и смещение тебе говорит уже отладчик. Но в таких случаях "mov ebx,[ebx]" (когда с регистра читают и сразу переписывают). Отладчик тебе не покажет правильный указатель. Но зная смещение + конечный адрес можно вручную вычислить указатель по принципу "x+какое-то число=y". Чтобы самому вычислить указатель, отними смещение из инструкции от конечного адреса и ты получишь число(указатель), которое тебе дальше надо вбивать в сканер. Продемонстрирую это на примере твоего третьего скрина:
  16. А какая тебе разница, сколько адресов обрабатывает инструкция, главное, это если инструкция выглядит типа так "mov ebx,[ebx]", копируешь не то, что в ebx после выполнения инструкции, а копируешь сам адрес, с которого читает эта инструкция и вбиваешь его в сканер. Отпиши, что найдет.
  17. Зачем все усложнять, если у тебя есть АДРЕС(например 1609EA60), с которым работает что-то типа "mov ebx,[ebx]" тогда значение, которое тебе надо будет искать, это тот самый адрес. (Вбиваешь этот же 1609EA60 в сканер, ведь это будет значением следующего указателя). Математика 5 класс =/ и никаких отладчиков ненадо. Хотя если сканер выбивает больше, чем 1 результат, тогда только с использованием отладки, как делал Garik
  18. Прочитал, и насколько я понял, искать реальный адрес патронов бесполезно. Там у каждого патрона в буквальном смысле свой адрес.(насколько я понял) Например у тебя 7 патронов - фулл обойма и ты 2 выстрелил: 0000004: 0 - потрачено 0000008: 0 - потрачено 000000C: 1 - не потрачено 0000010: 1 - не потрачено 0000014: 1 - не потрачено 0000018: 1 - не потрачено 000001C: 1 - не потрачено Над "call-ом", который вызывает функцию превращения этих единиц в нули есть условный прыжок "jle", тебе надо поменять этот условный прыжок на безусловный "jmp", чтобы игра ВСЕГДА обходила это затирание на 0, и у тебя были бесконечные патроны. Насколько я понял, указатель указывает на ближайшую непотраченную единицу. Поставив бряк на запись на этот, ты сможешь выйти на функцию, которая которая затирает единицы. Кстати, затри также уменьшение экранного числа, чтобы на экране число тоже стояло на месте. (Нули и единицы были использованы только для упрощения объяснения/примера, очень вероятно, что игра хранит "Потраченность/Непотраченность" точно не в 0 и 1) Все это только предположения, основанные на той теме, ведь мой древний ноут не потянет эту игру)
  19. Можешь кинуть ссылку на ту самую тему "Сталкер взлом на патроны 1 ЧАСТЬ", а то я не понял, что ты имеешь ввиду. Эмм, надо не дизасемблировать указатель, а просто перейти в регион памяти. И кстати, что тебе мешает вбить в CE такое, раз ты знаешь смещение. [адрес указателя]+смещение
  20. Есть инструкции, которые постоянно/после каждого убийства читают с адреса, в котором лежит количество опыта для следующего уровня?
  21. Есть 2 варианта, если не учитывать возможность того, что значение зашифрованное 1. Логики настоящего и экранного значения могут быть иногда разными. Например при полной обойме экранное значение 40 а при пустой 0. Но с РЕАЛЬНЫМ значением может быть такое - при полной обойме оно 0, а при пустой обойме оно 40. Может быть еще другая логика... Ты пробовал поиск неизвестного значения? 2.Если немного понимаешь ассемблер, можешь попытаться выйти на реальное значение через экранное. Для этого тебе надо узнать, какая инструкция пишет в твое экранное значение, и затем узнать, откуда эта инструкция взяла инфу, которую пишет в этот экранный адрес.
  22. Вроде разобрался, благодаря dnSpy узнал, куда надо инжектить код, попробуй этот скрипт У меня работает. Да уж, тут сканером CE не обойтись. Значение шифрованное и видимо меняет адреса. И кстати, после отключения скрипта ты ничего не сможешь купить, вроде показывает все еще "999999", но купить после отключения скрипта ничего нельзя, пока не перезагрузишь миссию или снова не включишь скрипт. Хотя зачем и отключать этот скрипт =D Но все таки попозже может стоит найти лучшее место для инжекта
×
×
  • Создать...

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

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