Sign in to follow this  
Maximus

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

Recommended Posts

Добрый день.

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

Share this post


Link to post
Share on other sites

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

  • Like 2

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

  • Like 1

Share this post


Link to post
Share on other sites
10 часов назад, ziggi сказал:

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

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

Edited by Maximus

Share this post


Link to post
Share on other sites
10 часов назад, Maximus сказал:

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

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

  • Like 1

Share this post


Link to post
Share on other sites
40 минут назад, kostya_nad сказал:

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

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

Share this post


Link to post
Share on other sites
2 минуты назад, Maximus сказал:

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

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

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

  • Like 1

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites
18 hours ago, Maximus said:

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

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

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

  • Like 1

Share this post


Link to post
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
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.