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

Garik66

Помогаторы
  • Постов

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

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

    292

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

  1. Всем большое спасибо за советы. Наколдовал с помощью консоли себе несколько "Стелс-бой", адрес нашёлся сразу, но даже вписывание в него значения напрямую, ничего в игре не изменяло, хотя инструкция на чтение очень часто обращается к адресу, т.е. нужно было искать активатор. Ломает его искать, поэтому сделал своим способом. И получилось кстати гораздо круче, хоть герой и видим на экране, его никто не видит в игре. Скрипт, если интересно смотрите здесь.
  2. Жажда Знаний, случайно натолкнулся на статью уважаемого kenga, она тоже касается как раз смещений, фильтров и структур - прочти её. Очень здорово написано. Статья здесь.
  3. Lamalamaz. спасибо (от меня плюс) посмотрю. А не помнишь случайно, какие шмотки в Fallout 3 отвечают за невидимость? А то играл очень давно - не помню.
  4. Поиск ничего так и не дал, перепробовал разные способы. Раз больше никто, ничего не советует, буду пытаться искать своим способом, немного описал, если кому интересно - здесь.
  5. Смотреть не стал (потом посмотрю - как мастера ломают), раз не кто не предложил варианта поиска значения, решил сделать своим способом. Если кому интересно - посмотрите здесь
  6. Сам пользуюсь. Очень ему благодарен (Akama - плюс). Куда: 1. Открываем СЕ. 2. Открываем Отладчик. 3. В отладчики, вверху Инструменты. 4. В Инструментах, почти в самом низу Lua Engine. 5. В Lua Engine нижнее окошко (где справа кнопка "Выполнить"). В это окошко нужно скопировать скрипт из поста Akama. 6. В Lua Engine, вверху Файл. 7. В Файл - "Сохранить текущий скрипт" - сохраняйте куда Вам нужно (файловую систему объяснять здесь не буду). Вызов: 1. Открываем СЕ. 2. Открываем Отладчик. 3. В отладчики, вверху Инструменты. 4. В Инструментах, почти в самом низу Lua Engine. 6. В Lua Engine, вверху Файл. 7. В Файл - "Открыть" - открываете файл который сохранили ранее. Вроде всё.
  7. Видимо пока не всё понял. Начнём с первого скрипта, ты поменял условный переход (прыжок): было je Test, теперь jne Test, т.е. теперь чтобы выполнялся скрипт у тебя всегда должно быть, чтобы [esi+928] не было равно (float)350. Думаю первый скрипт можно выкинуть. Он не нужен. А вот во втором, теперь давай посмотрим. Если у тебя в [esi+10] всегда (и также для всех членов команды) лежит 1, то это и есть ID, а условие прыжка: cmp dword ptr [esi+10],00000001je TestЭто и есть нужный фильтр - свой/чужой. Т.е. ты как бы говоришь игре - выполни, если это мои люди (ID=1), то что написано в Test. Теперь по самим характеристикам, то что в Test. почему у тебя всегда съезжают смещения: было mov [esi+194],(float)80 // Cheatersmov [esi+144],(float)80 // Kriticall Killmov [esi+924],(float)60 // SpeedPunchстало mov [esi+314],(float)50 // Cheatersmov [esi+2c4],(float)50 // Kriticall Killmov [esi+aa4],(float)30 // SpeedPunchОни должны быть всегда на одном месте. Ты определись, где у тебя и какое точно значение. Потом ты постоянно записываешь в адрес разные значения (float)50 (float)80 и т.д.- мне это тоже не очень понятно. Проще записывать всегда MAX значение. Посмотри структуру, скорей всего у тебя будет выглядеть так: [esi] // начало структуры // опираюсь на последние данные по смещениям, т.е. смещения из последнего скрипта[esi+aa4] // SpeedPunch (float)какое-то текущее значение (лучше пиши по русски, мне лично не понятно)[esi+aa8] // SpeedPunch (float)MAX - предполагаю, что здесь будет лежать максимум твоего значения).[esi+2c4] // Kriticall Kill,(float)50 - текущее[esi+2c8] // Kriticall Kill,(float)50 - MAX[esi+314] // Cheaters,(float)50 - текущее[esi+318] // Cheaters,(float)50 - MAXНу и т.д.И тогда проще переписать так: // Далее записываем MAX значения для интересующих нас характеристик, здесь же может быть и// здоровье, в этом случае это будет GodMod. push [esi+aa8] pop [esi+aa4] push [esi+2c8] pop [esi+2c4] push [esi+318] pop [esi+314]Но это нужно проверить и поизучать структуру. pushad <<<<< // вот без сохранения регистров игра вылетает popad Тоже не понятно, так как ты регистров не используешь, pushad popad не нужны. А вылет думаю происходит по другой причине. (скорее всего где-то ошибка).
  8. Попробуйте именно тот скрипт, который я выложил, уверен - будет работать. А по поводу оружия, у меня игры перед глазами нет. Но начинать нужно с того что можно посчитать - патроны, урон, а уже дальше скорострельность и т.д., а способы разные - всё зависит от конкретной задачи.
  9. Понял, почему работает Ваш скрипт, Вот в этом месте (будут меняться только при соблюдении всех этих 3 условий.) я ошибся, у Вас работает именно одно условие - последнее: cmp [ecx+928],(float)350 // SpeedPunch А другие два условия можете безболезненно выкинуть из скрипта. И соответственно у Вас сейчас в игре Ваше значение SpeedPunch, которое находится по смещению 928 равно (Float)350. Если Вы уверены, что это значение в процессе игры не изменится, тогда ладно. Я просто не знаю, что это за значение, но всё-же скрипт советую чуть-чуть исправить (не нужно использовать ecx, если в игровой инструкции используется esi). Примерно так: Если значения в этих адресах не меняются, то бессмертие можно будет сделать. Но если инструкция работает и со здоровьем врагов, то они тоже станут бессмертными, поэтому нужно будет опять искать фильтр для отсеивания - свой/чужой. ENABLE]alloc(newMem, 64)label(Test)label(returnHere) newMem:mov esi,ecxfld dword ptr [esi+04]//cmp [ecx+198],(float)1000 // Cheaters // Эти две строчки - лишние, их можно//cmp [ecx+148],(float)1000 // Kriticall Kill // убрать.cmp [esi+928],(float)350 // SpeedPunch // Правильнее использовать esi, а не ecx. // потому-что это в Вашем случае совпало, je Test // что начало структуры лежит и в ecx и в // esi. В другой раз такого может и не бытьjmp returnHere Test:mov [esi+194],(float)60 // Хитрость, %крит,уронаmov [esi+144],(float)80 // %критического нанесения mov [esi+924],(float)80 // скорость Атакиjmp returnHere DragonAge2.AK::MemoryMgr::GetPoolName+81EA4:jmp newMemreturnHere: [DISABLE]DragonAge2.AK::MemoryMgr::GetPoolName+81EA4:mov esi,ecxfld dword ptr [esi+04]dealloc(newMem)
  10. Как раз учли (прочитайте внимательно п. 16). Ошибаетесь - смещения не поменяются, поменяются адреса (поэтому они и называются динамические) и их, если фильтр подобран не верно, нужно будет опять обновлять в Окне "Анализа структур", т.е. повторить все шаги с п.1 по 15. Продолжу: всё-таки судя по Вашему коду, Вы не до конца всё поняли. Не пожалейте времени (конечно видео занимает 40 минут), пересмотрите видео урок Coderа (и может несколько раз). Кидаю ещё раз ссылку на него (см.здесь). Теперь вернёмся к Вашему скрипту, я уверен практически на 100 %, что он работать не будет. Во- первых, так как у Вас одна игровая инструкция, то и для всех нужных Вам значений будет нужно только один фильтр, который подходит для всех нужных Вам адресов, а Вы накидали какие 3 условия: cmp [ecx+198],(float)1000 // Cheaterscmp [ecx+148],(float)1000 // Kriticall Killcmp [ecx+928],(float)350 // SpeedPunch Причём вместе и соответственно нужные Вам значения будут меняться только при соблюдении всех этих 3 условий. Об этом Вам писал NullAlex и делил их в предложенном варианте кода: cmp [esi+314],(float)-100 // Cheatersjne criticalmov [esi+314],(float)200 // Cheaterscritical:cmp [esi+2c4],(float)-100 // Kriticall Killjne speed_punchmov [esi+2c4],(float)200 // Kriticall Killspeed_punch:cmp [esi+aa4],(float)-100 // SpeedPunchjne originalcodemov [esi+aa4],(float)200 // SpeedPunch Так что пересмотрите видео, почитайте эту тему и поймёте.
  11. Хочу попробовать взломать невидимость в Fallout 3. До этого, ни разу не ломал такую характеристику. Поиск неизвестного (изменилось/не изменилось) пока толку не дал из-за того, что ни разу (уже 4 раза попробовал) не довёл до конца процесс - игра зараза виснет (видно из-за того что не поддерживает 4-ядерн. процессор). придётся наверное опять отключать (но видюха сильно гудеть начинает). Попробовал точное (1-видят, 0 - не видят и наоборот 0 - видят 1 - не видят), тоже вроде ни чего. Вопрос в чём, с какими вариантами невидимости сталкивались, при её взломе? (ну типа 100 видим / 0 не видим (float)) ну и т.д. Предложите варианты поиска: какой тип (byte и т.д.) значения искать и какой метод (неизвестное и т.д.)? Заранее Спасибо.
  12. Для Жажда Знаний (который задал вопрос в личке) и тех кто читает, чтобы не повторяться, продолжу развивать тему нахождения фильтров. Использовать буду конкретный пример, выложенный мною сегодня скрипт (см. здесь). Фильтр деньги/товар найден с помощью стандартной методики "Анализ Структуры": 1. В отладчике выделяем Вашу инструкцию (правой кнопкой выбираем из контекстного меню: "Найти адреса, получающие доступ к этой инструкции. ) Откроется новое окошко. 2. Переходим в игру, открываем меню героя или то, что влияет на Вакшу инструкцию. 3. Возвращаемся в СЕ , смотрим что в окошке. 4. Если не только Ваши адреса, то выделяем адрес правой кнопкой показать регистры. Вот здесь, то и нужно будет изучить какой регистр (и какое его значение) использовать для использования фильтром в Вашем коде. 5. Выбираем, интересующие нас адреса (в моём случае - это адреса денег ГГ, денег Торговца и два, три адреса товара для сравнения). 6. Переходим обратно в "Отладчик", выделяем Вашу инструкцию, смотрим на самый верх отладчика, видим "Инструменты", жмём, далее выбираем "Анализ данных/структур". Откроется новое окно "Анализ структуры". 7. Вносим все свои адреса (используя файл/добавить дополнительный адрес), не забывая отнимать Ваше смещение( в моём случае, допустим для инструкции sub [eax+04],esi это 04). 8. Назовём Группу 1 - "Деньги" и добавим в неё деньги торговца и ГГ 9. Добавим Группу 2 - "Товар" и добавим в неё два, три адреса товара для сравнения из п.5. 10. Жмём наверху "Структуры"/Определить новую структуру", указываем название структуры (например "TORG"), дальше подтверждаем, следующее опять подтверждаем. В результате окно заполниться и в нём будут различные строчки разных цветов (для нахождения нашего фильтра нас интересуют строчки фиолетового цвета). 11. В моём случае фиолетового ничего не было, но см. смещения и видим (в моём случае на смещении 08 стоит Pointer (указатель), при раскрытии которого я получил кучу фиолетовых строк. 12. Перебираем варианты (здесь уже больше от интуиции зависит, мне повезло на смещении 0144, у Группы Деньги было значение 2, а у Группы Товар - 0. Это смещение и значения в нём я выбрал для фильтра (см.мой скрипт.) ). 13. Пишем скрипт, проверяем работу. Работает - хорошо. 14 Проверяем стабильность (т.е. правильно ли мы выбрали фильтр) - загружаем вначале сейв игры. Работает - хорошо. 15. Дополнительно (обязательно сделать раза 3) проверяем стабильность - выходим из игры, проверяем, Работает - хорошо. 16. Если в пунктах 14 или 15 не работает , нужно повторить всё с самого начала и выбрать другое фиолетовое смещение. Теперь перейдём к фильтру в моём скрипте - фильтр Торговец/ГГ в данном случае в "Анализе структуры" Группа 1 "Герой", Группа 2 "Торговцы". Но подобрать стандартным методом - методом "Анализа структуры" стабильный фильтр мне не удалось. Поэтому применил свой метод. т.е начинаем с п.1 и заканчиваем п.4 4. Если не только Ваши адреса, то выделяем адрес правой кнопкой показать регистры. Вот здесь, то и нужно будет изучить какой регистр (и какое его значение) использовать для использования фильтром в Вашем коде. Смотрю регистры денег у ГГ и у Торговцев и проверяю, какие из регистров, после загрузок сейвов, перезагрузки игры, остаются стабильными, вот их используем (в моём случае это был регистр ESP, но может быть и другой, в моих скриптах встречался, по моему EAX, найденный этим же способом ну и т.д.) По фильтрам вроде бы всё.
  13. Посмотри на мой скрипт в этом посте (№ 4) здесь, там как раз тоже инструкция пишет не только по адресам, которые мне нужны, поэтому сделан фильтр. Здесь пример использования двойного фильтра: здесь. И ещё пример:здесь. Вообще вся тема практически посвящена фильтрам. Все фильтры написаны с использованием вышеизложенной методики. Да ещё, вспомнил, посмотри обязательно этот видео урок: здесь
  14. Так посмотрите, какие адреса используют Вашу инструкцию. (И изначально, тема так и должна называться - "Помогите найти фильтр".) Как делаем: 1. В отладчике выделяем Вашу инструкцию (правой кнопкой выбираем из контекстного меню: "Найти адреса, получающие доступ к этой инструкции. ) Откроется новое окошко. 2. Переходим в игру, открываем меню героя. 3. Возвращаемся в СЕ , смотрим что в окошке. 4. Если не только Ваши адреса, то выделяем адрес правой кнопкой показать регистры. Вот здесь, то и нужно будет изучить какой регистр (и какое его значение) использовать для использования фильтром в Вашем коде.
  15. В этом коде я вооще ничего не понимаю, зачем eax. Если по смещениям 314, 2c4 и aa4 лежат нужные Вам характеристики, то и перепишите код правильно, никакого cmp в Вашем случае не нужно. newMem:fld dword ptr [esi+04]mov ecx,[esi+14]mov [esi+314],(float)200 // Currentmov [esi+2c4],(float)200 // Kriticall Killmov [esi+aa4],(float)200 // SpeedPunchjmp returnHereПопробуйте так
  16. Либо ещё вариант с использованием константы: -----------------label(Skorost)registersymbol(Skorost)newMem:fld dword ptr [Skorost]mov ecx,[esi+14]jmp returnHereSkorost:dd (float)100------------------unregistersymbol(Skorost)Оба варианта это часть кода.
  17. Я думаю, просто человек немного запутался: в его конкретном примере, начало структуры лежит и в ecx, и в esi - это 203E7F90. соответственно, нужный ему код можно записать, в случае если инструкция работает только с его адресом (т.е. без использования фильтра): newMem:mov dword ptr [esi+04],(float)100fld dword ptr [esi+04]mov ecx,[esi+14]jmp returnHere
  18. То как Вы описали, действительно не понятно. Прочитав, всю тему, из нее ничего не понял. Так что обижаться тут не на кого, если не поняло не сколько человек, значит объяснено не правильно. Ну например: на Ваш вопрос Вам ответили: И это правильно.Дальше я не понимаю что. Но вот дошли до чего-то более конкретного: Причём здесь "ebx 203D47E4 (Анализ структур провожу по регистру ebx) , бряк на адресе 203E7F94"? А этот фильтр "cmp [ebx],d84", в Вашем конкретном случае - полная лажа. Я бы понял например, если был фильтр типа: cmp ebx, 203D47E4 (и то его можно использовать, если ebx всегда равно 203D47E4). Ну короче, из всей темы, лично я ничего не понял.
  19. Правильно сказал - плюсую. А то часто читая форум, встречаешь темы, которые обрываются - нет решения в конце (а время на чтение убито).
  20. Ну раз сообщение вызвать при ошибке нельзя, а компактней записать смысла нету, выложу скрипт в таком виде, в своей теме. в этом сообщении.
  21. Так там всё на английском, а у меня с ним очень не хорошо (знаю только ЗЭ ТЭЙБЛ ). а через Гугл-переводчик очень мало понимаю, из-за этого и с LUA пока не стал связываться. CE, только благодаря уважаемому SER[G]ANT, смог заняться. До этого ломал с помощью бесплатной версии Артмани, даже где-то осталась Огромная таблица для Герое 2. В ней всё взломал почти, кроме тумана войны и не смог найти как поменять вид замка на карте (хотя изнутри замок менял, как потом у них в 6 Героях появилась фишка перестроить замок.) С Артмани и осталась привычка лазить по региону памяти, а не как в СЕ Структура. Но всё равно спасибо, может посмотрю. Кстати lamalamaz может поможете с вопросами, которые я задавал в предыдущей моей теме здесь, а то что-то никто не хочет отвечать,
  22. Спасибо конечно, но хотелось бы самому понять - как выйти на такую инструкцию. Объясните, как вышли на неё ПЖЛСТА. А то я уже всё перепробовал, но пока не получилось и мыслей не осталось. Думал попробовать найти расстояние до противника (используя временно дружественных НПС) подходя и отходя от него (пока без V.A.T.S.),а потом через это расстояние попробовать выйти на инструкции в V.A.T.S., но пока не пробовал, в голове не сложилось. Сейчас пытаюсь взломать компьютер Смотрителя. Взламывать удаётся нажатием на любой знак в коде пароля, но без начисления опыта, т.е. компьютер остаётся как бы не взломанным, можно опять взламывать, но потайной ход открываю и что на компе читаю, нужно искать как запустить, чтобы засчитался взлом. Нашёл просто: через число попыток, вышел на регион памяти (там даже есть счётчик символов в строке кода, меняется от 0 до В, где методом научного тыка (проб и ошибок) нашёл, что нужно заменить в одном адресе 2 на 4 и всё компьютер взломан, но вот как засчитать опыт - пока вопрос.
  23. В Fallout 3 есть система боя (V.A.T.S.). Для неё нашел практически всё (ОД - очки действия и расход патронов, скрипты выложены в посте № 11 здесь. Но есть ещё одна характеристика - точность. На точность влияют расстояние до противника, восприятие и навык, соответствующего оружия. Проблема в том, что, чтобы обновить изменение этих характеристик, я должен выйти из V.A.T.S., а при этом адреса обновляются и соответственно я не могу произвести отсеивание значений. Мастера, как в таком случае производить поиск?
×
×
  • Создать...

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

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