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

Garik66

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

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

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

    292

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

  1. Вот проверил: удаляем s и такой вид видео получается.
  2. LIRW, напомню: убирай S из https и видео будет в нормальном доступе (а не в виде ссылки).
  3. Трейнеры не качал никакие. И читов не писал. у меня игра еле-еле двигается - видюха не соответствует минимальным требованиям. Может пусть Dison, проверит тогда, у него вроде игра идёт.
  4. А жаль. Он на PG кучу тейнеров выложил. Могли бы у него чему-нибудь поучиться.
  5. Скорее всего для твоего случая: Нужно вначале найти координаты ГГ, затем через них выйти на координаты окружающих объектов, а потом уже выходить на зависимость изменения координат от удара ГГ.
  6. Игру всё-таки установил и не проходя дальше главного меню проверил идею, которую высказывал ранее здесь (вкратце - подмена адреса для проверки). На этот адрес всего 1 прыг, использовал этот твой Plugin (ставил даже 20000 адресов), так что вылеты у меня не из-за него. Проверил также идею, которую высказывал здесь. Тоже не сработала - вылет. На PG.ru есть трейнеры от двух авторов (судя по сообщениям - рабочие) - значит защиту всё-таки кто-то сумел обойти. [ENABLE]alloc(newMem1, 64)alloc(newMem2, 64)alloc(newMem3, 64)label(returnHere1)label(returnHere2)label(returnHere3)newMem1:push rcxmov rcx,ACU.exeadd rcx,771634Amov rdx,rcxpop rcxxor al,[rdx]stc jmp ACU.exe+55D7AC3jmp returnHere1newMem2:push rcxmov rcx,ACU.exeadd rcx,55CFAA4mov rdx,rcxpop rcxxor al,[rdx]test bl,-65jmp returnHere2newMem3:push rcxmov rcx,ACU.exeadd rcx,55D5599mov rdx,rcxpop rcxxor al,[rdx]cmctest al,3Fjmp returnHere3ACU.exe+55D741F:jmp newMem1db 90 90 90returnHere1:ACU.exe+55D658F:jmp newMem2returnHere2:ACU.WriteData+22C8:jmp newMem3returnHere3:[DISABLE]ACU.exe+55D741F:xor al,[rdx]stc jmp ACU.exe+55D7AC3ACU.exe+55D658F:xor al,[rdx]test bl,-65ACU.WriteData+22C8:xor al,[rdx]cmctest al,3Fdealloc(newMem1)dealloc(newMem2)dealloc(newMem3)
  7. Dison, ты как будто велосипед изобрёл - мы в каждом скрипте, который пишем, именно это и делаем. Решение в обходе защиты: либо 1-ый вариант - увести от проверки, т.е. найти все прыжки на проверки и изменить прыг, чтобы не попадать на проверку; либо 2-ой вариант - подсовывать проверяющим инструкциям всегда байты оригинальных инструкций. Вот MasterGH и пытается решить эти варианты.
  8. afro228offical, может и нам теперь расскажешь, как гарантированно искать множитель скорости?
  9. MasterGH, здорово. Спасибо. Может теперь найти все три jmp на проверки для этой игры и просто занопить их одновременно? Может это сработает?
  10. Да не давно обнаружил, что есть игры, где при соблюдении каких-нибудь условий, герой умирает всё равно - даже если записывать максимальное здоровье по нужному адресу. Конкретнее описано здесь. В этой игре, если к ГГ враги прилепляли бомбу липучку, то ГГ умирал. Как написал GodMod в этом случае, нашёл инструкцию, которая записывала в здоровье 0 (ставил брейкпоинт на доступ). И потом выше по коду нашёл условные прыжки (их там было несколько) и самый нижний заменил на безусловный прыжок jmp, чтобы код гарантированно перепрыгивал запись 0 в здоровье и весь это участок. Потом объединил полученный скрипт с основным и God Mod заработал.
  11. Предполагаю, что 00371857 - байты оригинальной инструкцию, а 00 37 18 57 B9 63 00 00 00 90 - это сигнатура. Тогда так: [ENABLE]aobscan(InfiniteAmmo, 00 37 18 57 B9 63 00 00 00 90) registersymbol(InfiniteAmmo)InfiniteAmmo: db 00 77 18 57[DISABLE]InfiniteAmmo:db 00 37 18 57unregistersymbol(InfiniteAmmo) [ENABLE]aobscan(InfiniteAmmo, 00 77 18 57 B9 63 00 00 00 90) registersymbol(InfiniteAmmo)InfiniteAmmo: db 00 37 18 57[DISABLE]InfiniteAmmo:db 00 77 18 57unregistersymbol(InfiniteAmmo)
  12. PS: Да.... Игрушка обалденная!!!. Грех её портить читами, в первый раз уж точно проходить нужно без них. Жаль только нет дубляжа. Я даже на видео не успеваю читать титры, а уж тем более во время игры. (половина кайфа теряется)
  13. Покупать видюху только из-за одной этой игрушки, нет ни средств, ни желания. Делать инъекцию не на этой инструкции xor al,[rdx], а выше её, чтобы в инъекцию не попадал прыжок jmp ACU.exe+55D7AC3. И ещё одна мысль появилась: По идее, что делает этот код: xor al,[rdx]stc Если байты совпадают, то в al всегда будет ноль и stc установит флаг переноса cf в 1. Так может быть сделать просто так: mov al,0stc Может проверка это скушает?
  14. MasterGH, а если добавлять не снизу (где прыжок jmp ACU.exe+55D7AC3), а одну инструкцию сверху xor al,[rdx] для инъекции? PS: Да вспомнил, я именно с таким случаем сталкивался, писал об этом в этой статье (читаем со строчки, где выделено зелёным А теперь ВНИМАНИЕ, где-то в середине статьи). PS1: И ещё одна мысль, нужно посмотреть, какой точно адрес лежит в [rdx], когда инструкции проверяют самих себя, если точно - отсюда "ACU.exe"+55D741F: 32 02, то становится ещё проще: Тогда все три инъекции, нужно делать выше "ACU.exe"+55D741F: 32 02, чтобы инъекцией не затрагивать проверяющие инструкции и перед ними писать в [rdx] адрес 4-ой инструкции, с которой мы ничего не делаем. И соответственно, объединённый скрипт будет включаться всегда - без вылетов.
  15. Жаль, что она у меня не пойдёт - видюха не потянет. Dison, попробуем доработать идею MasterGH. Но это только мои предположения, к сожалению проверить их сам не могу. Идея основана на том, что в [rdx] лежит адрес (он конечно постоянно меняется и их очень много) инструкции, который побайтно проверяет xor al,[rdx] и если постоянно подменять в [rdx] адрес, на адрес инструкции, с которой мы ничего делать не будем, то проверка успешно это скушает. Посчитаем, что есть только 3 проверки и MasterGH их нашёл: ACU.exe+55D741F - 32 02 - xor al,[rdx] // 1ACU.exe+55D658F - 32 02 - xor al,[rdx] // 2ACU.WriteData+22C8 - 32 02 - xor al,[rdx] // 31. Найдём адреса с которыми работает 1 инструкция - ну ты знаешь - правой кнопкой в Отладчике на этой инструкции ACU.exe+55D741F - 32 02 - xor al,[rdx] и выбрать из контекстного меню "Найти адреса, получающие доступ к этой инструкции". 2. Выбери любой адрес, который ты точно не будешь использовать в своих читах (скриптах). Это и будет адрес //4. Допустим мы получили: ACU.exe+0000004 - XX XX XX XX - инструкция // 4 3. Теперь для каждой инструкции из первых 3-x сделай инъекции (скрипт): [ENABLE]alloc(hook, 128)label(originalcode)label(returnbaсk) hook:mov [rdx],ACU.exe // в [rdx] записываем адрес той 4 инструкции, add [rdx],0000004 // которую мы трогать не будем. originalcode:xor al,[rdx] // оригинальные инструкции, сколько нужно - их тоже не трогаем..............jmp returnbaсk ACU.exe+55D741F:nop // сколько нужноjmp hook returnbaсk: [DISABLE]ACU.exe+55D741F: xor al,[rdx] // оригинальные инструкции, сколько нужно..............dealloc( hook )
  16. Не очень поняли. Лучше было пояснить, что именно ты хочешь сделать. А так можем только строить предположения. У каждого адреса есть инструкции, которые срабатывают на запись (Брейкпоинт на запись) - ты говоришь про них, но есть инструкции, которые срабатывают на чтение (Брейкпоинт на чтение)- так вот эти инструкции работают обычно всегда и не нужно ждать нанесения урона. Может они тебе подойдут? Если инструкция очень часто обращается к адресу, а тебе нужно чтобы скрипт срабатывал один раз, то это тоже не проблема, много тем на форуме по созданию одноразовых скриптов.
  17. Baracuda, ошибка в твоём скрипте вроде одна: после последнего je MoneyMOD, нужно добавить jne originalcode (но можно в твоём случае и jmp originalcode) иначе возможен вылет из игры. И один игровой недочёт: нужно либо увеличить (цифру 900000 - видел в игре недвижимость за 2500000, а ты своим скриптом не даёшь челу денег больше чем 900000), либо всё-таки делать скрипт именно на добавление денюжков, как у меня.
  18. Согласен!!! на 100%. Не играю (всё-таки решил подождать всех патчей), смотрю видео прохождение - ВПЕЧАТЛЁН игрой (раньше в такие игры не играл).
×
×
  • Создать...

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

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