Jump to content
RAGE Multiplayer Community

Шифрование клиентской части


Maximus
 Share

Recommended Posts

Добрый день.

Вижу в конфигурации сервера есть параметр encryption, я так понимаю он должен включать шифрование  всех клиентских скриптов, отправляемых клиенту. Работает ли уже этот параметр? Я не вижу никакого эффекта от его включения, или одного параметра недостаточно и нужно сделать что-то ещё?

Link to comment
Share on other sites

  • 3 months later...

Интересно, а что за вид шифрования такой, который используется на сервере Complex для клиентских скриптов? Это же не обычная обфускация. Такое ощущение, что используется какая-то недокументированная функция для дешифровки скриптов. Или это секретная информация?

  • Like 2
Link to comment
Share on other sites

  • 1 month later...
10 часов назад, ziggi сказал:

На данный момент все реализуют шифрование клиентского кода самостоятельно.

Каким образом, хотя бы общий принцип? Допустим я могу зашифровать файлы CEF, передав клиенту с сервера функцию дешифровки, произвести дешифровку на стороне клиента и в браузер подгружать не зашифрованные файлы, а то что мы дешифровали и находится в памяти. Но как быть с клиентскими скриптами, ведь их загрузку мультиплеером мы никак не контролируем?

Edited by Maximus
Link to comment
Share on other sites

10 часов назад, Maximus сказал:

Каким образом, хотя бы общий принцип? Допустим я могу зашифровать файлы CEF, передав клиенту с сервера функцию дешифровки, произвести дешифровку на стороне клиента и в браузер подгружать не зашифрованные файлы, а то что мы дешифровали и находится в памяти. Но как быть с клиентскими скриптами, ведь их загрузку мультиплеером мы никак не контролируем?

Существует достаточно простая схема. Работает все через eval. Кодируешь строки, и внутрь кладешь раскодировщик этих строк - ничего сложного.

  • Like 1
Link to comment
Share on other sites

40 минут назад, kostya_nad сказал:

Существует достаточно простая схема. Работает все через eval. Кодируешь строки, и внутрь кладешь раскодировщик этих строк - ничего сложного.

Ничего сложного, если не считать того, что мультиплеер загружает (запускает) клиентские скрипты сразу после загрузки файлов. Я никак не могу контролировать этот процесс. Если я загружу с сервера закодированные файлы, мне их нужно дешифровать и как-то подсунуть мультиплеру, но если мы не можем контролировать запуск скриптов, то как это сделать?

Link to comment
Share on other sites

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

Ничего сложного, если не считать того, что мультиплеер загружает (запускает) клиентские скрипты сразу после загрузки файлов. Я никак не могу контролировать этот процесс. Если я загружу с сервера закодированные файлы, мне их нужно дешифровать и как-то подсунуть мультиплеру, но если мы не можем контролировать запуск скриптов, то как это сделать?

смотри. Делаешь дешифровщик строк сначала. То есть чтоб у тебя строка "КаКонИбУдьЗаКОдирОВАНныйТекст" переводилась в (например) "console.log('Hello from encoded')".

Потом шифруешь текст в свой шифр (который ты сам еще разработаешь и который у тебя будет расшифровывать дешифровщик). А дальше просто через eval запускаешь раскодированный текст. И никаких богов над клиент скриптами тебе не понадобится.

  • Like 1
Link to comment
Share on other sites

Да всё это понятно. Непонятно как я заставлю мультиплеер подключить эти дешифрованные скрипты, как клиентскую часть.

Выполнить console.log это хорошо, выполним, но как вы предлагаете повесить скажем mp.events.addCommand в таком скрипте? Разве из этих скриптов будет доступ к mp? Разве не должны все скрипты, имеющие к этому объекту доступ, подключаться заранее и загружаться в память мультиплеера при старте?

Link to comment
Share on other sites

18 hours ago, Maximus said:

Да всё это понятно. Непонятно как я заставлю мультиплеер подключить эти дешифрованные скрипты, как клиентскую часть.

Выполнить console.log это хорошо, выполним, но как вы предлагаете повесить скажем mp.events.addCommand в таком скрипте? Разве из этих скриптов будет доступ к mp? Разве не должны все скрипты, имеющие к этому объекту доступ, подключаться заранее и загружаться в память мультиплеера при старте?

У тебя есть два файла с клиентскими скриптами, в одном находится расшифровщик (сам он не зашифрован), а во втором всё остальное в зашифрованном виде. Клиент загружает эти файлы и расшифровщиком ты расшифровываешь зашифрованный текст из файла, затем выполняешь код с помощью eval.

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...