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

Assassins Creed Unity: баг или система защиты?


Рекомендуемые сообщения

Всем привет!

 

Решил поиграть в недавно вышедшую AS:Unity. 

Игра меня сильно огорчила тем, что на средних-высоких FPS "скакал" от 15 до 45. (!) На моей-то 780!

Однако, в определенный момент игры хочется приобрести все имеющееся снаряжение. Раз и на всегда. 

Собственно, адрес я нашел, он прекрасно изменяется и калибруется.

Начал писать скрипт на деньги (пока что только так, ибо фпс крайне не стабилен) 

Вот он:

[ENABLE]alloc(newmem,2048,"ACU.exe"+EE85E4) label(returnhere)label(originalcode)label(exit)newmem:originalcode:mov [rax+28],ecxmovzx eax,byte ptr [rsp+70]exit:jmp returnhere"ACU.exe"+EE85E4:jmp newmemnopnopnopreturnhere:[DISABLE]"ACU.exe"+EE85E4:mov [rax+28],ecxmovzx eax,byte ptr [rsp+70]dealloc(newmem)

Вот его исходный вариант, без моих правок.

А вот он же, уже отредактированый под наши хаккерские нужды :)

originalcode:mov ecx, 200000mov [rax+28],ecxmovzx eax,byte ptr [rsp+70]

Собственно, вроде все правильно сделал. Сдвинул ecx на 200.000, потому что самый дорогой предмет в игре стоит около ~125.000.

Однако: когда включаю скрипт - игра сама вылетает. Не успеваю ничего сделать. Просто в то же мгновение - моментальное закрытие игры!

Не знаю что это: кривые руки или баг игры... Или система защиты... 

 

На ваш взгляд, в чем проблема? Как исправить код?

P.s. версия игры - 1.2.0 на таблетке ALI213 Fix v5

Изменено пользователем RockHamer
Ссылка на комментарий
Поделиться на другие сайты

Не "сдвинул ecx", а "записал в ecx". И попробуй так:

originalcode:mov [rax+28],ecxmov [rax+28],200000movzx eax,byte ptr [rsp+70]
И, разумеется, проверь, не работает ли эта инструкция с каким-то еще адресами, что вполне вероятно.
Ссылка на комментарий
Поделиться на другие сайты

Не "сдвинул ecx", а "записал в ecx". И попробуй так:

 

 

Я как бы "переводил" запись mov ecx, 200000

так вот, mov - это move, т.е. движение, двигать.

Отсюда и сказал: 

 

 

Сдвинул ecx на 200.000,

 

Да, и твой вариант похоже не работает. Так же вылетает.

 

Брякнул найденый адрес на доступ - и вот что получилось:

q8stdc0qsV4.jpg

Изменено пользователем RockHamer
Ссылка на комментарий
Поделиться на другие сайты

Делай отображение этой инструкции в отладчике, и там выбери "Find out what addresses this instruction accesses". И посмотри, сколько адресов вылезет. Подозреваю, что много и тебе придется делать фильтр.

Ссылка на комментарий
Поделиться на другие сайты

Делай отображение этой инструкции в отладчике, и там выбери "Find out what addresses this instruction accesses". И посмотри, сколько адресов вылезет. Подозреваю, что много и тебе придется делать фильтр.

 

Нееет. Выбрал ту инструкцию, которая и получает доступ и пишет. Брякнул на трассировку адресов. Накрутил себе денег через значение. Полазил по магазину... Скупил все, вернулся в СЕ, а там за все время - один адрес обращается к этой инструкции. И ровно столько раз, сколько покупок я совершил.

К слову, убийство этой инструкции тоже приводит к вылету из игры.

 

Опааа, после всех этих манипуляций с одной инструкцией - вернулся в окошко трассировщика инструкций от адреса.

Вот что он выдавал:

sq1qa37z-J0.jpg

 

Увидев, что у третьей по счету инструкции столько же хитов, сколько и у моей - я начал с ней манипуляции проводить.

Трассировка адресов показала, что эта инстуркция тоже работает только с одним адресом. С адресом денег.

Я захотел проверить, а будет ли она реагировать на свою смерть? И безжалостно убил ее. Игра меня не поняла и вылетела.

Вот теперь я вообще ничего не понимаю...

Как тогда мне инъектировать код, если игра запрещает изменять эти две инструкции?

Изменено пользователем RockHamer
Ссылка на комментарий
Поделиться на другие сайты

mov ecx,[rax+28]

mov [rax+28],ecx

 

Обычно между инструкциями такого типа идет вычисление то есть типо того

 

mov ecx,[rax+28] //сохраняем текущее значение в ecx

...                        //манипуляции с ecx

mov [rax+28],ecx //обновляем текущее значение из ecx

 

можно скриншот MemoryView между этими инструкциями? Смысл в том что можно без AA скрипта сделать деньги.

 

 

PS. Юбики выпустили очень сырой релиз Unity. Она даже на консольках глючит а FPS выше 23 не поднимается. О пк геймерах вообще молчу баг на баге оптимизация кривейшая. Нужно ждать патчи.

Ссылка на комментарий
Поделиться на другие сайты

mov ecx,[rax+28]

mov [rax+28],ecx

 

Обычно между инструкциями такого типа идет вычисление то есть типо того

 

mov ecx,[rax+28] //сохраняем текущее значение в ecx

...                        //манипуляции с ecx

mov [rax+28],ecx //обновляем текущее значение из ecx

 

можно скриншот MemoryView между этими инструкциями? Смысл в том что можно без AA скрипта сделать деньги.

 

 

PS. Юбики выпустили очень сырой релиз Unity. Она даже на консольках глючит а FPS выше 23 не поднимается. О пк геймерах вообще молчу баг на баге оптимизация кривейшая. Нужно ждать патчи.

 

Я тоже считаю, что лучше патч подождать... Ибо даже на видеокартах TopEnd класса - фпс скачет сильно. Вылеты тоже очень достают...

По неподтвержденной информации, такие баги из-за неправильного использования разработчиками - Directx11. Он может обработать draw' колов 7000-1000 в пике, а разрабы юнити заюзали около 50.000.

 

eBms33Cd1zc.jpg

Изменено пользователем RockHamer
Ссылка на комментарий
Поделиться на другие сайты

попробуй заменить прям в коде sub ecx,edi на add ecx,ecx

По идее при любом растрачивании поинтов они должны увеличиваться в 2 раза.

 

или jb в том же промежутке на je заменить, как я понял без этого сравнения деньги уйдут в минуса но ты можешь покупать все даже с минусом.

 

Нет игры на данный момент, снес... Играть невозможно

Ссылка на комментарий
Поделиться на другие сайты

попробуй заменить прям в коде sub ecx,edi на add ecx,ecx

По идее при любом растрачивании поинтов они должны увеличиваться в 2 раза.

 

или jb в том же промежутке на je заменить, как я понял без этого сравнения деньги уйдут в минуса но ты можешь покупать все даже с минусом.

 

Нет игры на данный момент, снес... Играть невозможно

 

Плюсую. Ждем третий патч, юбики обещали поправить оптимизацию.

Ссылка на комментарий
Поделиться на другие сайты

В этой игре предусмотрена защита от читов.Нужно сначало отвезать сканер защиту, а после писать скрипт тогда вылетать не будет. Я написал скрипт обхода защиты игра не вылетает при внедрении чита но косяк есть один. Когда жмешь на esc то игра виснет, где-то допустил ошибку но пока не могу понять где. А так у меня с обходом защиты скрипты работают....

Изменено пользователем Dison
Ссылка на комментарий
Поделиться на другие сайты

В этой игре предусмотрена защита от читов.Нужно сначало отвезать сканер защиту, а после писать скрипт тогда вылетать не будет. Я написал скрипт обхода защиты игра не вылетает при внедрении чита но косяк есть один. Когда жмешь на esc то игра виснет, где-то допустил ошибку но пока не могу понять где. А так у меня с обходом защиты скрипты работают....

 

Создай тему плз, и объясни в ней: как обойти защиту)

Вангую, много плюсиков соберешь)

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

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

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