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

Assassin Creed Unity Обход защиты


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

Всем привет!

 

Решил я на днях заняться взломом Assassin Creed Unity

Изначально до взлома я знал что игра просто так не ломается, так как там используется защита в коде

Так вот нашел я адрес денег в игре и решил написать скрипт, но при активации скрипта игра вылетает,

срабатывает защита и внедрить свой код не получается.

 

Так как опыта с обходом защиты я не имею, поэтому хочу обратится ко всем кто хоть что-то знает или сталкивался 

с данной проблемой и знает как ее решить.

 

Игра версии 1.5.0

 

Скрипт на деньги

 

 

Задача такая - Как обойти защиту в коде чтобы игра при активации скрипта не вылетала?

[ENABLE]aobscanmodule(InfiniteMoney,ACU.exe,01 73 28 B0 01 48 8B 5C 24 40) // should be uniquealloc(newmem,$1000,"ACU.exe"+FAB309)registersymbol(InfiniteMoney)label(code)label(return)newmem:mov esi,#999999code:  add [rbx+28],esi  mov al,01  jmp returnInfiniteMoney:  jmp newmemreturn:[DISABLE]InfiniteMoney:  db 01 73 28 B0 01unregistersymbol(InfiniteMoney)dealloc(newmem){// ORIGINAL CODE - INJECTION POINT: "ACU.exe"+FAB309"ACU.exe"+FAB2DB: 75 0C                 -  jne ACU.exe+FAB2E9"ACU.exe"+FAB2DD: 48 8D 0D 8C 08 2B 04  -  lea rcx,[ACU.exe+525BB70]"ACU.exe"+FAB2E4: E8 F7 15 74 01        -  call ACU.exe+26EC8E0"ACU.exe"+FAB2E9: 48 8B 54 24 20        -  mov rdx,[rsp+20]"ACU.exe"+FAB2EE: F0 FF 4A 08           - lock  dec [rdx+08]"ACU.exe"+FAB2F2: 75 15                 -  jne ACU.exe+FAB309"ACU.exe"+FAB2F4: F7 42 0C FF FF FF 00  -  test [rdx+0C],FFFFFF"ACU.exe"+FAB2FB: 75 0C                 -  jne ACU.exe+FAB309"ACU.exe"+FAB2FD: 48 8D 0D 6C 08 2B 04  -  lea rcx,[ACU.exe+525BB70]"ACU.exe"+FAB304: E8 D7 15 74 01        -  call ACU.exe+26EC8E0// ---------- INJECTING HERE ----------"ACU.exe"+FAB309: 01 73 28              -  add [rbx+28],esi"ACU.exe"+FAB30C: B0 01                 -  mov al,01// ---------- DONE INJECTING  ----------"ACU.exe"+FAB30E: 48 8B 5C 24 40        -  mov rbx,[rsp+40]"ACU.exe"+FAB313: 48 8B 74 24 48        -  mov rsi,[rsp+48]"ACU.exe"+FAB318: 48 83 C4 30           -  add rsp,30"ACU.exe"+FAB31C: 5F                    -  pop rdi"ACU.exe"+FAB31D: C3                    -  ret "ACU.exe"+FAB31E: 48 8B 5C 24 40        -  mov rbx,[rsp+40]"ACU.exe"+FAB323: 48 8B 74 24 48        -  mov rsi,[rsp+48]"ACU.exe"+FAB328: 32 C0                 -  xor al,al"ACU.exe"+FAB32A: 48 83 C4 30           -  add rsp,30"ACU.exe"+FAB32E: 5F                    -  pop rdi} 
Ссылка на комментарий
Поделиться на другие сайты

Как обойти защиту в коде чтобы игра при активации скрипта не вылетала?

Судя по коду игры (если эта инструкция add [rbx+28],esi, очень часто обращается к адресу), вылет может быть связан с неправильным скриптом, т.к происходит быстрое переполнение.

Попробуй написать так:

newmem:mov [rbx+28],#999999code:  add [rbx+28],esi  mov al,01
Ссылка на комментарий
Поделиться на другие сайты

 

Судя по коду игры (если эта инструкция add [rbx+28],esi, очень часто обращается к адресу), вылет может быть связан с неправильным скриптом, т.к происходит быстрое переполнение.

Попробуй написать так:

newmem:mov [rbx+28],#999999code:  add [rbx+28],esi  mov al,01

Привет 

Garik66

Нет там защита в игре вшита чтобы нельзя было внедрить свой скрипт.

Надо как-то написать скрипт именно на обход защиты в игре.

В этой игре стоит защита, сканеры, как только они обнаруживают изменение в коде то игра тут же вылетает.

Вот если эту защиту отключить, обойти то тогда мой выше выложенный скрипт будет работать без проблем

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

Ты попробовал изменить скрипт, как я предлагал?

 

(если эта инструкция add [rbx+28],esi, очень часто обращается к адресу)

то и в игре без защиты - при включении твоего скрипта, игра будет вылетать.

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

(если эта инструкция add [rbx+28],esi, очень часто обращается к адресу)

Нет эта инструкция обращается только тогда когда ты заработаешь немного денег или найдешь.

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

Защита! Есть такое! Не знаю насчёт Assassin'ах но вот.

Пример:

Мне недавно попалась игра DOA5LR...защита была при патчинге игры в EXE'ку.

То есть защиту не разрабы установили, а именно тот кто делал кряк от (RELOADED)

Долго не мог понять в чём дело...позже до меня дошло попробовать скачать другой кряк от (DeZoMoR4iN)

И сразу всё запахало...

И ещё в последнее время заметил что крякеры - EXE'ки режут их размер до неузнаваемости,

даже парой в отладчике смещения бряков разные, если их сравнивать в НЕХ'е. Ладно ещё разрабы так делают,

но что бы крякеры...это уже слишком.

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

Нет эта инструкция обращается только тогда когда ты заработаешь немного денег или найдешь.

Ты уверен, что инструкция работает только с деньгами?

Если работает не только с деньгами, то однозначно будет вылет при включении твоего скрипта. В таком случае нужно искать фильтр.

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

Как сказал Garik66 попробуй поставить фильтр, ну или используй другую инструкцию бряк на чтение или запись...навернека там не одна инструкция работает с адресом денег, ну или попробуй использовать инструкции чуть выше над брякнутой.

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

Так короче ребята я вам объяснить не смогу потому-что мы сейчас общаемся на разных языках.

 

Гарик инструкция отвечает только за деньги и ни за что больше

krocki то что ты говоришь сдесь вообще не в тему.

Дело не в кряке.

 

Гарик есть возможность скачать игру?

 

И да опыт со взломом игр имею не плохой.

Я ведь не совсем дурак, чтобы не проверить инструкцию за что она отвечает.

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

В игре действительно есть какая-то защита. И дело не в переполнении, вовсе нет.

Не советую в скрипте ставить #999999, поставь столько денег сколько тебе нужно. Слишком большое количество девяток привлечет внимание разрабов. Ну и сама игра немножко абалдеет... 

 

Я играл в пре-пре-пре релиз, 1.3 версия была (без оптимизашки) и защита была.

Пожалуй, послежу за этой темой. Вопросом обхода я тоже заинтересован.

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

В игре действительно есть какая-то защита.

 

Никто сдесь на форуме не сможет я так думаю эту защиту обойти.

Поставьте игру посмотрите сами это нужно видеть только самому, чтобы понять процесс который я описываю.

Сразу говорю что дело не в скриптах, а именно в защите которая не дает внедрить свой скрипт....

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

Это просто был пример...согласись что все варианты взлома лучше проверить, что бы найти один верный.

Попробуй такой вариант для разнообразия:

Тупо занопить код в самой EXE'ке, при помощи НЕХ-Редактора, а не в отладчике и скрипте. :closeyes:

Что бы знать уж на верника!

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

Какой параметр ломаешь? У меня стим-лицензия, попробую на выходных поковырять, если время будет.

Да хотя-бы хоть что нибудь взломать, так я пробывал деньги и очки кредо ломать. Создал скрипт, но при активации игра вылетает. Я больше заинтересован, как обойти защиту в игре.

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

Да, действительно, есть проверка целостности кода. Вероятное решение:

1. Скопировать участок заменяемой памяти куда-либо в новое место

2. Выйти на код, который делает проверку.

3. Подменить адрес проверяемого кода на скопированный

4. Сделать инжект на оригинальный код.

 

Займусь на выходных. Одно место проверки вроде нашел, пока некогда дальше этим заниматься.

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

Да, действительно, есть проверка целостности кода. Вероятное решение:

1. Скопировать участок заменяемой памяти куда-либо в новое место

2. Выйти на код, который делает проверку.

3. Подменить адрес проверяемого кода на скопированный

4. Сделать инжект на оригинальный код.

 

Займусь на выходных. Одно место проверки вроде нашел, пока некогда дальше этим заниматься.

Xipho - Вот и я говорю об этом что есть проверка, если получится обойти эту проверку то это будет очень круто.

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

Не каждый сумеет обойти такие проверки если знания не позволяют.

Будем ждать от тебя решения данной темы, я думаю ты справишься.... :-D

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

Классический способ. Поставить брейкпоинт на API функции выхода из процесса. Если при закрытии они срабатывают, то посмотреть стек и запомнить все выходы под call. Запустить игру. Поставить бряки на call. Там где срабатывают, то бряки снять. Спровоцировать принудительный выход. Если бряк прервется, то исследовать условие, которое отправляет в рутину выхода из приложения.

 

Если же выход в виду исключительной ситуации, то запускаем Олли. При необходимости настраиваем его. Провоцируем выход игры с исключительной ситуацией. В Олли должна быть остановка, в которой можно изучить причину возникновения исключения...

 

К сожалению не помогу, других дел полно.

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

Проанализировав код нашел интересный участок, думаю что здесь есть некая проверка целостности кода.

 

[ENABLE]aobscanmodule(AntiDebug,ACU.exe,8B 00 E9 78 DD FF FF) // should be uniquealloc(newmem,$1000,"ACU.exe"+779787F)registersymbol(AntiDebug)label(code)label(return)newmem:code:  mov eax,[rax]  jmp ACU.exe+77955FE  jmp returnAntiDebug:  jmp code  nop  nopreturn:[DISABLE]AntiDebug:  db 8B 00 E9 78 DD FF FFunregistersymbol(AntiDebug)dealloc(newmem) 
Ссылка на комментарий
Поделиться на другие сайты

В лицензии проверка целостности находится по коду

xor al,[rdx]stc

В rdx, само собой, адрес проверяемой инструкции. Сегодня попробую с этим что-то сделать.

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

В лицензии проверка целостности находится по коду

 

 

XIpho - Да ты прав на пиратке тоже такая-же инструкция...

[ENABLE]aobscanmodule(AntiDebug,ACU.exe,32 02 F9 E9 9C 06 00 00) // should be uniquealloc(newmem,$1000,"ACU.exe"+55D741F)registersymbol(AntiDebug)label(code)label(return)newmem:code:  xor al,[rdx]  stc   jmp ACU.exe+55D7AC3  jmp returnAntiDebug:  jmp code  nop  nop  nopreturn:[DISABLE]AntiDebug:  db 32 02 F9 E9 9C 06 00 00unregistersymbol(AntiDebug)dealloc(newmem) 
Ссылка на комментарий
Поделиться на другие сайты

Еще способ выйти на инструкцию - поставить брейкпоинт на чтение на адрес инструкции. Т.е. не на выполнение ставить, а как на данные

 

На выполнение не ставить (нажимая F5 в дизассемблере), а скопировать адрес в таблицу CE и поставить брейкпоинт на чтение. Начать играть какое-то время. Если сработает брейкпоинт, то там должен быть код защиты.

 

Этот способ я когда-то применял, но это было так давно, что и забыл про него. 

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

На выполнение не ставить (нажимая F5 в дизассемблере), а скопировать адрес в таблицу CE и поставить брейкпоинт на чтение. Начать играть какое-то время. Если сработает брейкпоинт, то там должен быть код защиты.

 

именно этим способом я на защиту и вышел )

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

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

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

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