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

Foxhound

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

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

  • Посещение

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

  1. Продублирую своё сообщение об этой игре из другой темы: Добавить к сказанному особо нечего. Несколько раз сам пытался подступиться с грубой силой в меру своего скромного разумения, пробовал и инструкции, и автопоиск указателей, но всякий раз игра оказывалась сверху... ну, то есть, я хотел сказать, на высоте. Видимо, тут нужен терпеливый и деликатный подход. И спортивный интерес, разумеется. Кто-нибудь сможет или миссия невыполнима?
  2. И правильно, это уже было бы слишком. Если до сих пор такой утилиты нет, то, по-видимому, ты прав - она не особо нужна. А способ ты мне показал, спасибо, буду пользоваться. Кстати, насчёт моего вопроса по поводу символов и адресов. Существует похожий плагин с шаблонами скриптов от спецов с форума СЕ, так вот там скрипты генерятся с обычными адресами, типа game.exe, а не символами. В том смысле, что там нет ошибки, как в Titan Quest, когда на разных адресах одинаковые символы "Game.GAME::LootLoader::Load". Реально в aa-maker сделать так же? Вот ссылка на соответствующую тему форума СЕ: http://174.142.61.111/forum/viewtopic.php?t=588038&sid=5ae487427b10b65a00b4d4bc5cfd5c35
  3. Спасибо. К сожалению, для меня пока это слишком сложно. Спасибо за доходчивое видео, теперь понятно. Сразу не сообразил, что можно вставить код в нерабочую область любого процесса. Непростой, однако, способ, но за неимением другого... Вообще же, честно говоря, я не ожидал, что не найдётся какой-нибудь маленькой утилитки с двумя окошками, где в одно вписываешь инструкции, а в другом тут же появляются байты, и наоборот.
  4. Посмотрел, спасибо. Хорошо, но меня интересует вот какой случай: допустим, я где-то скачал готовый скрипт, где в [DISABLE] последовательность байт, иногда довольно длинная. Как мне узнать, какому коду она соответствует? Игры, под которую написан данный скрипт, у меня нет, ничего подключить и активировать я не могу, оригинальный код синим цветом внизу скрипта не приведён. Такое часто бывает. Что делать в этом случае, как конвертировать?
  5. Для профильного специалиста - да, согласен. Но для новичка, типа меня, весьма далёкого от программирования, это просто малопонятный набор цифр, знание которого вряд ли пригодится в будущем. Кстати, случайно не подскажешь какую-нибудь небольшую программку по конвертированию этих самых байт в опкод и обратно? Может калькулятор какой. Ну или способ для начинающих, как это быстро сделать. Не в онлайн-конвертере, естественно. Это всё понятно, речь о том, что при вставке опкодов ошибка как была, так и осталась, а галку-то кликнуть несложно. Ну вот представь, скачивает плагин какой-нибудь малограмотный Foxhound и начинает с его помощью генерить скрипты. Посмотрел, что делает галка. В одном положении - какие-то цифры, а в другом - более-менее понятные инструкции. Потыкал - вроде и то и то работает. И, естественно, ставит галку на опкоды, как более понятную для него запись. При том совершенно правильно и логично поступает, ведь он понятия не имеет о возможной ошибке на нулях - никакой информации, никаких больших красных предупреждений с восклицательными знаками об этом нет. Я сужу даже по себе - мне гораздо удобнее и нагляднее видеть в [DISABLE] опкоды, чем ряд цифр, и до сего дня я именно ими и пользовался, причём если бы для этого требовалось нажимать каждый раз галку - нажимал бы. Т.е., фактически, на пути возможной ошибки появилось одно-единственное маленькое препятствие - лишнее нажатие галки, поэтому я и сказал, что баг "закопан". Скорее даже "слегка присыпан". Понимаешь, о чём я?
  6. Гм... Как я понимаю, он не столько исправлен, сколько "закопан". Т.е. просто по умолчанию без галки в скрипт теперь вставляются не опкоды, а байты, а с опкодами как было неверное восстановление инструкций с нулевыим офсетом, так и осталось? Если не ошибаюсь, это ведь косяк самого СЕ, а не плагина, плагин лишь помог его явно обнаружить. Такие скрипты и на СЕ вообще без установленного плагина не будут корректно работать. Можно ведь и во встроенном шаблоне вручную вписать в [DISABLE] именно опкоды с нулями и СЕ их спокойно примет, не выдаст никаких предупреждений о некорректности скрипта и будет молча восстанавливать инструкции с ошибкой. Может имеет смысл всё-таки как-нибудь дать знать DB, там как раз сейчас беты тестируют?
  7. Вооот! Я же сразу просил 2.4.2 допилить. Но мы лёгких путей не ищем, верно? Ну, а если без шуток, то большое спасибо за твой труд и отзывчивость. Если получится, постарайся пожалуйста добавить из своей версии в 2.4.2 увеличение адреса на 1 (вместо неудобного одинакового INJECT) и шаблон aobscan. Всякие 64-битные доработки не прошу, для меня они не актуальны, а вот эти две опции хотелось бы. Ну и баг с одинаковыми символами поправить, по возможности.
  8. Ага, я кажется понял, почему может не возникать ошибки. Ошибка появляется, когда в [DISABLE] прописаны именно инструкции. А когда последовательность байт, то ошибки нет. Т.е. если в плагине не поставить галку "Original code in bytes", возникает ошибка. Но это только мои предположения, слово спецам.
  9. Так и я говорил про ошибку СЕ, а не плагина. Может мы не так поняли друг друга. Ошибка проявляется на любой версии плагина (2.4.2 и твоей) и на разных версиях СЕ (6.5.1 и 6.6). Сам плагин невиновен. Я ведь поэтому и спросил, куда отписать,
  10. Именно по указанным мной адресам и указанным инструкциям в туториалах?
  11. Заодно, на всякий случай, если кто надумает проверить эту ошибку на СЕ 6.6, то вот пример для версии туториала 3.3. адреса: Tutorial-i386.exe+14F465 Tutorial-i386.exe+14F469 инструкции по ним: imul ebx,[edx+00],-24 imul ebx,[edx+00],3F Если по первому адресу Tutorial-i386.exe+14F465 сделать Injection, то после включения и выключения скрипта оба [edx+00] сменятся на [edx], вторая инструкция попадёт на другой адрес, а туториал потом вылетает с ошибкой.
  12. Ладно, попробую показать на примере 3.2, посмотрел сейчас, там тоже такую ошибку можно вызвать. В версии 3.2 по адресу Tutorial-i386.exe+1D0551 расположена инструкция add ah,[edx+00]. Следующая за ней инструкция - lock add ah,[edx+00] и идёт она по адресу Tutorial-i386.exe+1D0554. Если по первой инструкции по адресу Tutorial-i386.exe+1D0551 создать скрипт (например, Injection), который ничего не делает, просто вкл/выкл, то включается он нормально, но вот при выключении первая инструкция возвращается на место где и была по адресу Tutorial-i386.exe+1D0551, а вот вторая встаёт не на Tutorial-i386.exe+1D0554, а на Tutorial-i386.exe+1D0553 и ниже по коду появляются нопы. Проблема, насколько я понимаю, в том, что при отключении скрипта вместо изначального [edx+00] обратно возвращается [edx] без нулевого офсета (это видно в окне дизассемблера), а поскольку он занимает какую-то длину, то без него происходит сдвиг кода. Проверь на указанных мной адресах и убедишься.
  13. Хорошо. У тебя 32-битный СЕ-туториал версии 3.3 есть?
  14. Ещё поэкспериментировал с плагином. Nops на некоторых функциях (на imul, например) вместо создания скрипта выдаёт окно Lua, где написано: Error:Invalid class object. СЕ 6.6, проверял на туториале 3.3. Да, а добавление нового адреса с +1 очень удобно. Я, наверное, как все новички, не так давно бодро прошёлся про гра[CENSORED]м и налепил скриптов с одним и тем же INJECT, а потом долго разбирался, почему оно не работает так, как мне хочется. P.S. Похоже, я нашёл редкую, но неприятную ошибку в СЕ. Проверил на 6.6.и 6.5.1 - проявляется. Неправильно восстанавливается код после деактивации скрипта. Наверно, об этом имеет смысл где-нибудь отписать, чтобы спецы проверили и, если подтвердится, поправили, но аглицкого я не знаю. Как поступить?
  15. Для меня тестить подобные вещи пока чересчур сложно, но что сразу попалось на глаза: пункт Nops почему-то задействует aobscanmodule. Это так и задумано? Далее, в созданных по разным шаблонам скриптах твой ник в шапке скрипта написан по-разному, где-то правильно - Garik66, а где-то Garek66, Garin66, Garuk66. Поправить бы. Ну и сама идея указать себя в авторы скрипта мне кажется сомнительной. Представь: создаст через плагин какой-нибудь неопытный новичок (например Foxhound) кривой, нерабочий скрипт, выложит во всеобщее пользование, а там в авторах значится Garik66 и вся дурная людская молва достанется ему. И ещё один важный момент... но это в личку...
  16. Не, с 64-битными уж мне-то точно не придётся, WinXP - наше всё. С необходимостью использования именно aobscan я столкнулся на первых же шагах игролома. А вот "красОты" мне, как начинающему, куда более актуальны. Ибо "мы академиев не кончали..."(с)
  17. Не, не сработала. А вот полезную опцию я там узрел: aobscan. В смысле, просто aobscan, без "module". Её реально прикрутить к версии 2.4.2?
  18. Про туториал не знаю, другие игры нормально. Но опыта у меня мало и если мене уже сейчас попалась такая игра... поэтому и отписался сюда. Хорошо, давай спросим у what228. Можешь проверить указанные мной выше два адреса на скрипты через Injection?
  19. У тебя версия 1.42? Проверь вот эти адреса: Game.dll+1BB3F0 Game.dll+1BB710 Они оба обозначены как "Game.GAME::LootLoader::Load". Попробуй создать на них скрипты и посмотри, что получится.
  20. Игра - та самая Titan Quest 1.42, на которую делает сейчас трейнер what228. Вот скрипт aa-maker'а, созданный из шаблона Injection без каких-либо правок: Речь идёт о "Game.GAME::LootLoader::Load". Как это правильно называется, символ? Так вот это самое "Game.GAME::LootLoader::Load" имеется на двух разных адресах, но два скрипта, созданные на них по шаблону Injection, оба работают с меньшим адресом.
  21. В заголовке окна aa-maker'а значится 2.4.2. Качал точно не вспомню, либо отсюда, либо с форума DB из первого поста темы GH*master'а (я так понимаю, это и есть MasterGH).
  22. Новичок, постигаю азы, поэтому заранее извиняюсь за возможно безграмотное изложение. При создании в плагине скрипта выбираю Injection. Создаётся скрипт. В скрипте в виде адреса, где он должен сработать, указывается не адрес, типа Game.exe+ZZZ, а символ (так правильно называется?), отображаемый в окне диз-ра вместо адреса. Причём если в меню View отключить Show Symbols, то в окне диз-ра символы меняются на обычные адреса Game.exe+ZZZ, но скрипт всё равно создаётся с символами. Столкнулся тут с такой игрой, где двум разным адресам присвоен одинаковый символ, поэтому при создании двух скриптов на этих разных адресах оба срабатывают по меньшему адресу. Есть ли какая-нибудь настройка или порядок действий, чтобы скрипт автоматически создавался с обычными адресами Game.exe+ZZZ, а не символами? Знаю, что можно сделать aob и если его взять достаточно длинным, то разница всё-таки будет даже при одинаковых символах, но нет ли способа попроще, используя пункт Injection с обычным адресом.
  23. Действительно. Надо же, даже в голову не пришло попробовать. Спасибо, так удобнее. Ну, строго говоря, было 7 действий - стало 5, а если посчитать двойные клики за два, то и больше. Да, так всё-таки быстрее, но тоже далеко не 2 клика.
  24. Когда в таблице запись представляет собой указатель, то показываемый адрес выглядит как Р->12345678. Как это 12345678 быстро скопировать в буфер? Часто бывает, что этот адрес нужно куда-то вставить - или в окно поискового запроса, или в окно старт/стоп, или в структуру, или в таблицу, или в калькулятор... Однако не только напрямую, но даже в окне редактирования (Change address), из верхнего поля, где показан "конечный" адрес 12345678, его скопировать оттуда нельзя, это поле неактивно. Приходится открывать Memory Viewer, вызывать по первой строке Goto Address, копировать искомое из поля ввода и потом всё обратно закрывать. По-другому не получается. Можно ли как-то упростить такую неудобную процедуру копирования до одного-двух кликов?
  25. Да, эти игры имеют довольно высокий порог вхождения. Если что, в меню Help есть пункт Getting Started, там основные действия расписаны в картинках, а в папке игры есть pdf мануалы. Грузишь сценарий. На карте кликаешь по любому цветному квадратику, изображающему юнита. В отдельном поле сбоку или снизу карты появится небольшое прямоугольное окошко (или несколько, по числу юнитов в гексе), где по центру будет рисунок выбранного юнита (солдат, танк, пушка и т.д.), а слева/справа основные данные - численность, запас хода, мораль и усталость. Выбери, например, пехоту. У неё слева будет надпись "Men ZZZ (100%)". Здесь ZZZ - численность (целое, 4 байта), а проценты в скобках - сколько от максимума. Для танка или самоходки надпись будет Vehicles, для артиллерии - Guns. Игра ломается очень легко, но если лень искать, запускаешь скрипт, что я дал. В таблицу выводишь два пункта - указатели pMan+10 и pMan+1C, 4 байта. Кликаешь по любому юниту. Первый указатель покажет численность из ZZZ. Второй - все текущие статусы юнита, включая скрытые. Теперь, к примеру, вводишь в значение статуса FFFFFFFF, тогда выбранный юнит получит все 32 статуса разом, включая несовместимые. Переключаешься на игру, снова кликаешь по уже выбранному юниту чтобы обновить картинку и любуешься результатом: в окошке юнита появятся названия нескольких статусов (все не влезут), иконка юнита сменит вид и т.д.. Вот эти статусы меня и интересуют.
×
×
  • Создать...

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

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