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

Шифрованные значения (XOR) для новичков.


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

Очень часто задаются вопросы, связанные с шифрованием в игре.

Поэтому собрал все видео-уроки в одном сообщении в хронологическом порядке.

Просмотрите все видео-уроки и, если и после них ни чего не поняли, то уже тогда задавайте вопросы.

Мне лично очень помог урок от MasterGH.

1.  "Исследование и взлом Loki. XOR шифрование"  автор - MasterGH

Исследование и взлом Loki. XOR шифрование       

2. "Loki" автор - ZOCKIR

 

3. "Видео по взлому Might&Magic Heroes VI от Garik66 4 AddResours" автор - Garik66

 

4. "Видео по взлому Might&Magic Heroes VI от Garik66 6 AddExperience" автор - Garik66

 

5. "Взлом шифрованных значений." автор - Xipho

 

 

6. How to Survive 2 взлом здоровья автор Garik66

 

 

               

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

Посмотрел свое видео (первое) и лучше бы не смотрел. Щелкания бесконечные, нет объяснения, калькулятор зачем-то и без него можно. Ближе к концу видео там какая ерунда с повторами перерасчета.

 

Если мне сложно понять, то что я сам делал без повторов и всматриваний, то что говорить о тех, кто первый раз смотрит, тот не разберется вообще. :)

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

2 минуты назад, MasterGH сказал:

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

А мне именно это видео очень помогло, после него проблем с шифрованными значениями не испытывал.

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

30 минуты назад, gmz сказал:

QueryPerformanceCounter

Не знаю, что это такое (нашёл только это - QueryPerformanceCounter - возвращает текущее значение счётчика таймера.)  и каким боком оно относится к шифрованию в играх. Я пока не сталкивался с таким.

Но если у тебя есть примеры, то буду очень рад, если снимешь такой видео-урок. 

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

6 часов назад, Garik66 сказал:

Я пока не сталкивался с таким.

выглядит так: шифро значение может менятся случайно +/- (например на каждый -1 патрон) и каждый перезапуск новое xor значение для шифро\дешифро.

в "Operation Flashpoint Red River" такие методы. если интересно смотри сам xD

 

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

1 минуту назад, gmz сказал:

выглядит так: шифро значение может менятся случайно +/- (например на каждый -1 патрон) и каждый перезапуск новое xor значение для шифро\дешифро.

А какая разница? Непонимаю. В том же ГТА 5 шифруются XORом через адрес самих денег. В героях 6 (на которых сделаны уроки) константа через которую XORируются значения является переменной и постоянно меняется. Т.е. это не константа.

Всё тоже самое:

1. находим зашифрованное значение

2. Выясняем через что XORируется значение

3. Пишем скрипт.

 

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

  • 5 месяцев спустя...

Столкнулся вчера с интересным способом шифрования, до этого ни разу такого не видел (ух разрабы ;)) - смотреть тему с этого сообщения, там мои два видео скрипт и табличка. 

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

Кто ни будь подробное видео урок сделать, где показано подробно несколько способов расквартирования, то есть 1 способ, показать самый простой, а второй уже по сложней, вот Garik66 мене сделал раскадровку в игре NOSE Day One но я не чего не понял, что он сделал если я столкнусь с какой ни будь игрой, где закодированы значения как то по другому, я что каждый раз буду просить мене раскодировать значения, я думаю нет, другие пользователям тоже просить не будут, потому и надо сделать по дробный видео урок, где показано несколько способов расквартирования, в пример возьмите несколько игр, где закодированы значения, и показать на них пример, подробный, что бы новичок не задавал вопросов, вот как тут сделать, как там сделать, вот пример Garik66 сделал видео урок где он показывал как он искал закодированные ресурсы В игре, Might&Magic Heroes VI этот способ понятен, но не полностью, а если я сразу вышел на закодированные значения ресурсов, поставил бряк на доступ, а хор значения оказалось не рядом со значением ресурсов, а где то в глубине, и как мене до него добраться, как мене правильно выйти на него, этих способов тут нет, потому нужны подробно это всё сделать, вот GTA 5 здесь всё понятно, значении закодированные и раскодированные находятся рядом, не чего искать не надо, ПОЖАЛУЙСТА СДЕЛАЙТЕ ПОДРОБНЫЙ ВИДЕО УРОК, ПРО ЗАКОДИРОВАННЫЕ ЗНАЧЕНИЯ, И ВСЕ СПОСОБЫ ИХ РАЗКОДИРОВАНИЯ, ОТ ПРОСТОГО СПОСОБА ДО САМОГО СЛОЖНОГО.

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

В 13.09.2016в11:49, Baracuda сказал:

вот Garik66 мене сделал раскадровку в игре NOSE Day One но я не чего не понял

Краткое пояснение выложил здесь.

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

  • 7 месяцев спустя...
  • 3 месяца спустя...
  • 2 месяца спустя...
  • 1 год спустя...
  • 1 год спустя...

Во втором видео предлагается добавить ещё ресурсы, а в моём случаи, только один, таймер, причём загадка какая то, адрес зелёный, но меняется при перезапуске игры, ещё одна проблема, бряк ставиться на адресе, но на инструкции call не как, то есть как предлагал Руслан в своём уроке взлом шифрованных значений, внутрь функции не зайти . Путём отсеивания изменилось не изменилось, успеть до конца уровня не возможно. Игра Saints Row The Third в миссиях с Джеки. Ну прямо застрял на взломе.

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

Не много подумал и решил по моему вопросу скрипт с логами выложить, без моего кода,

Спойлер

{ Game   : saintsrowthethird_dx11.exe
  Version: 
  Date   : 2020-04-16
  Author : Pitronic

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(Timer,saintsrowthethird_dx11.exe,3B 42 08 75 08) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  cmp eax,[edx+08]
  jne saintsrowthethird_dx11.exe+A92A17
  jmp return

Timer:
  jmp newmem
return:


[DISABLE]

AddressTime:
  db 3B 42 08 75 08

unregistersymbol(Timer)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "saintsrowthethird_dx11.exe"+A92A0A

"saintsrowthethird_dx11.exe"+A929E2: 8B 54 24 04           -  mov edx,[esp+04]
"saintsrowthethird_dx11.exe"+A929E6: 3B 02                 -  cmp eax,[edx]
"saintsrowthethird_dx11.exe"+A929E8: 0F 85 DB 00 00 00     -  jne saintsrowthethird_dx11.exe+A92AC9
"saintsrowthethird_dx11.exe"+A929EE: 85 C0                 -  test eax,eax
"saintsrowthethird_dx11.exe"+A929F0: 0F 84 D3 00 00 00     -  je saintsrowthethird_dx11.exe+A92AC9
"saintsrowthethird_dx11.exe"+A929F6: 48                    -  dec eax
"saintsrowthethird_dx11.exe"+A929F7: 83 F8 0B              -  cmp eax,0B
"saintsrowthethird_dx11.exe"+A929FA: 0F 87 C9 00 00 00     -  ja saintsrowthethird_dx11.exe+A92AC9
"saintsrowthethird_dx11.exe"+A92A00: FF 24 85 D0 2A E9 00  -  jmp dword ptr [eax*4+saintsrowthethird_dx11.exe+A92AD0]
"saintsrowthethird_dx11.exe"+A92A07: 8B 41 08              -  mov eax,[ecx+08]
// ---------- INJECTING HERE ----------
"saintsrowthethird_dx11.exe"+A92A0A: 3B 42 08              -  cmp eax,[edx+08]
"saintsrowthethird_dx11.exe"+A92A0D: 75 08                 -  jne saintsrowthethird_dx11.exe+A92A17
// ---------- DONE INJECTING  ----------
"saintsrowthethird_dx11.exe"+A92A0F: 8B 49 0C              -  mov ecx,[ecx+0C]
"saintsrowthethird_dx11.exe"+A92A12: 3B 4A 0C              -  cmp ecx,[edx+0C]
"saintsrowthethird_dx11.exe"+A92A15: 74 14                 -  je saintsrowthethird_dx11.exe+A92A2B
"saintsrowthethird_dx11.exe"+A92A17: 33 C0                 -  xor eax,eax
"saintsrowthethird_dx11.exe"+A92A19: C2 04 00              -  ret 0004
"saintsrowthethird_dx11.exe"+A92A1C: D9 41 08              -  fld dword ptr [ecx+08]
"saintsrowthethird_dx11.exe"+A92A1F: D9 42 08              -  fld dword ptr [edx+08]
"saintsrowthethird_dx11.exe"+A92A22: DA E9                 -  fucompp 
"saintsrowthethird_dx11.exe"+A92A24: DF E0                 -  fnstsw ax
"saintsrowthethird_dx11.exe"+A92A26: F6 C4 44              -  test ah,44
}

 

На сколько я понимаю, в этом скрипте регистр eax сравнивает с адреса [edx+08] в котором экраное значение, но логично предположить, раз есть сравнеие значит регистр eax  куда нибудь пишет, как узнать, куда пишет eax из этой инструкции если бряк на call не срабатывает

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

В 16.04.2020 в 15:17, Pitronic сказал:

Не много подумал и решил по моему вопросу скрипт с логами выложить, без моего кода,

Тему почистил. Ну не к чему тут бестолковая писанины была. Твой основной вопрос только оставил.  И вот ответ на него: там не шифрованны данные, просто нужно понять как это работает.  Хотя если честно, я и сам до конца не понял принцип работы этого таймера. Этот таймер работает постоянно, не зависимо от того в миссии ты или нет.  Игра его даже не обнуляет при рестарте миссии. А я там еще хотел валенком прикинуться :D мол, ща поиск не известного и в силу того, что адресов около 250 млн - могу себе позволить в первый же отсев, нажать клавишу не изменилось. Но там будет 0 реальных данных, так как этот таймер работает не зависимо от миссии. Так что пробуй найти :) повторюсь.. Данные не шифрованные. 

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

8 минут назад, LIRW сказал:

так как этот таймер работает не зависимо от миссии.

Ты же сам видел на экране, ты юольше трёх минут со скриптом включённым постой и увидешь, что на экране стоит а в реале после трёх минут ты проигрываешь. Я что таймер меняеться я докажу видос сделаю.

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

15 минут назад, Pitronic сказал:

Я что таймер меняеться я докажу видос сделаю.

Ну что ты мне докажешь ? Если бы твой таймер, был бы настоящим, не было бы наверное подобных вопросов в теме.  Вот у меня он настоящий и я то вижу, как он работает, идет его обнуление или нет!

Спойлер

 

 

 

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

56 минут назад, LIRW сказал:

Вот у меня он настоящий

Нашёл я твой таймер, искать надо было в мили сикундах, а не в сикандах, и он статистический, но он работает может быть в других миссиях, а в Джеки нет, вот моё встречное видео с твоим таймером

Спойлер

 

 

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

53 минуты назад, Pitronic сказал:

Нашёл я твой таймер

С чего ты взял, что он мой ? Ну врубил ты трейнер, с помощью него поди и  нашел адрес - это понятно!  Но с чего взял, что в видео выше (которое я дал) используется именно эта функция, что я использовал когда то в трейнере ?  Я вот этого не пойму. Я вроде не с кем не делился функцией, а у тебя она не работает должным образом, так как она может быть моей то :rolleyes: Трейнер в пример не бери.. Там далеко не эта функция.. 

 

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

9 часов назад, LIRW сказал:

С чего ты взял, что он мой

Ну не конкретно твой может быть, но шестизначное в мили секундах, как ты подсказывал, а в прочем можешь сам посмотреть он статистический, глянь  SaintsRowTheThird_DX11.exe+52BDC00 тот или нет?

 

9 часов назад, LIRW сказал:

Трейнер в пример не бери.. Там далеко не эта функция.. 

Я не про трейнер, трейнер я не видел, адрес нашёл сам, по твоей подсказке когда ты сказал шестизначное , я и искал шестизначное в мили секундах, ты то когда показывал видео может скрипт был, а я в  своём видео, просто заморозил адрес, если бы был тот что надо, я бы до бесконечности там стоял. в смысле в миссии.

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

14 часов назад, LIRW сказал:

Ну что ты мне докажешь ?

Спойлер

 

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

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

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

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

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