Maximus 14 Posted November 12, 2017 Добрый день. Вижу в конфигурации сервера есть параметр encryption, я так понимаю он должен включать шифрование всех клиентских скриптов, отправляемых клиенту. Работает ли уже этот параметр? Я не вижу никакого эффекта от его включения, или одного параметра недостаточно и нужно сделать что-то ещё? Share this post Link to post Share on other sites
Maximus 14 Posted March 7, 2018 Интересно, а что за вид шифрования такой, который используется на сервере Complex для клиентских скриптов? Это же не обычная обфускация. Такое ощущение, что используется какая-то недокументированная функция для дешифровки скриптов. Или это секретная информация? 2 Share this post Link to post Share on other sites
cheeck 4 Posted April 20, 2018 Тоже заметил много клиентов шифруются. Нигде инфы нету. Share this post Link to post Share on other sites
ziggi 7 Posted April 22, 2018 На данный момент все реализуют шифрование клиентского кода самостоятельно. 1 Share this post Link to post Share on other sites
Maximus 14 Posted April 23, 2018 (edited) 10 часов назад, ziggi сказал: На данный момент все реализуют шифрование клиентского кода самостоятельно. Каким образом, хотя бы общий принцип? Допустим я могу зашифровать файлы CEF, передав клиенту с сервера функцию дешифровки, произвести дешифровку на стороне клиента и в браузер подгружать не зашифрованные файлы, а то что мы дешифровали и находится в памяти. Но как быть с клиентскими скриптами, ведь их загрузку мультиплеером мы никак не контролируем? Edited April 23, 2018 by Maximus Share this post Link to post Share on other sites
kostya_nad 11 Posted April 23, 2018 10 часов назад, Maximus сказал: Каким образом, хотя бы общий принцип? Допустим я могу зашифровать файлы CEF, передав клиенту с сервера функцию дешифровки, произвести дешифровку на стороне клиента и в браузер подгружать не зашифрованные файлы, а то что мы дешифровали и находится в памяти. Но как быть с клиентскими скриптами, ведь их загрузку мультиплеером мы никак не контролируем? Существует достаточно простая схема. Работает все через eval. Кодируешь строки, и внутрь кладешь раскодировщик этих строк - ничего сложного. 1 Share this post Link to post Share on other sites
Maximus 14 Posted April 23, 2018 40 минут назад, kostya_nad сказал: Существует достаточно простая схема. Работает все через eval. Кодируешь строки, и внутрь кладешь раскодировщик этих строк - ничего сложного. Ничего сложного, если не считать того, что мультиплеер загружает (запускает) клиентские скрипты сразу после загрузки файлов. Я никак не могу контролировать этот процесс. Если я загружу с сервера закодированные файлы, мне их нужно дешифровать и как-то подсунуть мультиплеру, но если мы не можем контролировать запуск скриптов, то как это сделать? Share this post Link to post Share on other sites
kostya_nad 11 Posted April 23, 2018 2 минуты назад, Maximus сказал: Ничего сложного, если не считать того, что мультиплеер загружает (запускает) клиентские скрипты сразу после загрузки файлов. Я никак не могу контролировать этот процесс. Если я загружу с сервера закодированные файлы, мне их нужно дешифровать и как-то подсунуть мультиплеру, но если мы не можем контролировать запуск скриптов, то как это сделать? смотри. Делаешь дешифровщик строк сначала. То есть чтоб у тебя строка "КаКонИбУдьЗаКОдирОВАНныйТекст" переводилась в (например) "console.log('Hello from encoded')". Потом шифруешь текст в свой шифр (который ты сам еще разработаешь и который у тебя будет расшифровывать дешифровщик). А дальше просто через eval запускаешь раскодированный текст. И никаких богов над клиент скриптами тебе не понадобится. 1 Share this post Link to post Share on other sites
Maximus 14 Posted April 23, 2018 Да всё это понятно. Непонятно как я заставлю мультиплеер подключить эти дешифрованные скрипты, как клиентскую часть. Выполнить console.log это хорошо, выполним, но как вы предлагаете повесить скажем mp.events.addCommand в таком скрипте? Разве из этих скриптов будет доступ к mp? Разве не должны все скрипты, имеющие к этому объекту доступ, подключаться заранее и загружаться в память мультиплеера при старте? Share this post Link to post Share on other sites
ziggi 7 Posted April 24, 2018 18 hours ago, Maximus said: Да всё это понятно. Непонятно как я заставлю мультиплеер подключить эти дешифрованные скрипты, как клиентскую часть. Выполнить console.log это хорошо, выполним, но как вы предлагаете повесить скажем mp.events.addCommand в таком скрипте? Разве из этих скриптов будет доступ к mp? Разве не должны все скрипты, имеющие к этому объекту доступ, подключаться заранее и загружаться в память мультиплеера при старте? У тебя есть два файла с клиентскими скриптами, в одном находится расшифровщик (сам он не зашифрован), а во втором всё остальное в зашифрованном виде. Клиент загружает эти файлы и расшифровщиком ты расшифровываешь зашифрованный текст из файла, затем выполняешь код с помощью eval. 1 Share this post Link to post Share on other sites