Lua CryptoMsg - внутриигровое шифрование сообщений

r4nx

Известный
Автор темы
Друг
202
261
Краткое описание
Скрипт предоставляет вам возможность шифровать данные прямо в игре.

Подробности
Используется алгоритм AES, по умолчанию с размером ключа 256 бит и в режиме CBC (можно изменить в переменной aesParams).
Открыть главное меню можно командой /cmsg, за перезагрузку конфигурации отвечает команда /reloadcmsg.
Возможности:
  • Автоматические шифрование и расшифровка сообщений: вы и ваш(и) собеседник(и) будете видеть сообщения без изменений, в то время как игрока без скрипта и нужного пароля будут видеть сообщения зашифрованными
  • Шифрование лишь нужной части сообщения (см. ниже фичу Inline Encryption)
  • Отдельно стоит отметить, что скрипт работает с библиотекой SAMP.Lua и даёт возможность выбирать события которые будут обрабатываться

Автоматическое шифрование
Опция "Auto Encryption" - шифровать все исходящие сообщения (под сообщением имеется ввиду не чат, а любой обрабатываемый текст, будь-то ответ на диалог, чат-бабл и т.д.).
"Auto Decryption" - автоматически расшифровывать входящие сообщения.

Inline Encryption
Фича, позволяющая зашифровать только необходимую часть сообщения. По умолчанию, "необходимая часть" - текст обернутый в тэги $CS (Crypto Start) и $CE (Crypto End) в начале и в конце соответственно, имеенуемый inline expression (inline-выражение).
Имеется поддержка нескольких inline-выражений в одном сообщении (по правде говоря именно на реализацию нескольких выражений я убил 3 дня).
Тэги можно изменить, но имейте ввиду примечание к переменной formatInlinePattern, а также то, что ваш собеседник должен будет также их поменять.

Ручное шифрование
С помощью команд /encrypt и /decrypt вы можете зашифровать и расшифровать сообщение соответственно.

Наборы символов Base64
Ввиду жалоб на срабатывает различных систем анти-рекламы, реагирующих на большое количество цифр, была реализована возможность выбора набора символов Base64.
По умолчанию, к вашим услугам 2 набора: цифры и спец. символы.
Цифры: $CSvOWJadWIvSIbnkoUC1fz9I61IG8Fg6+fyIJrl5ZM/Bs=$CE
Спец. символы: $CS+siVBHKDd,mWLas@hsOA|rXU;TNb?gETzYxZckFl@RM=$CE

Дополнительно
  • Добавить свои события для обработки можно в функции setHooks. Таблица hooks состоит из таблиц, которые имеют следующую структуру: название события; список аргументов события, которые нужно обработать (порядковый номер); разрешить использование inline-выражений; разрешить автоматическое шифрование; расшифровка ли.
  • Скрипт хранит конфигурацию в папке moonloader/config. Если у вас её нет - создайте её.
  • Нет, я не забыл убрать дебаг-сообщения. Это dev-версия, поэтому они по умолчанию включены. Если хотите отлючить их - установите debugMode на false.

Зависимости

  • Moonloader (тестировалось на 0.26, возможно работает и на 0.25)
  • aeslua
  • SAMP.Lua
  • inspect.lua (необязательно, необходим для более подробных дебаг-сообщений)

[Скачать / changelog]
[Исходный код] (см. ветку develop)


К теме прикреплён архив со скриптом и всеми зависимостями, но я настоятельно рекомендую установить все зависимости вручную из источников и скачать сам скрипт из репозитория.

Я решил переписать скрипт с нуля, т.к. код старого хоть и был рабочим, но не устраивал меня по качеству. Я постарался максимально следовать принципу don't repeat yourself, скрипт обзавёлся новым функциональном и GUI, а самое главное - адекватной структурой. Также, в связи с этим, я начал счёт версий заново.
 

Вложения

  • CryptoMsg.zip
    32.7 KB · Просмотры: 202
Последнее редактирование:

shinoa

Известный
298
207
Что-то не работает, всё из архивов установлено
(error) CryptoMsg:...\CryptoMsg.luac:0: bad argument #1 to 'close' (FILE* expected, got nil)
(error) CryptoMsg: Script died due to error. (06D0FD5C)
 

r4nx

Известный
Автор темы
Друг
202
261
Что-то не работает, всё из архивов установлено
(error) CryptoMsg:...\CryptoMsg.luac:0: bad argument #1 to 'close' (FILE* expected, got nil)
(error) CryptoMsg: Script died due to error. (06D0FD5C)
Папка с игрой случайно не в ProgramFiles?
 

r4nx

Известный
Автор темы
Друг
202
261
Заработало, но есть минус, на серверах с анти-рекламой не будет пропускать из-за большого кол-ва цифр
С файлом это конечно костыль, видимо у тебя у скрипта не хватает прав на создание файла. А про цифры знаю, добавлю сейчас это в теме. По другому никак, шифрованный текст в оригинале выглядит так:
qxvMd1o.png
 

r4nx

Известный
Автор темы
Друг
202
261
Обновлено. Изменения в changelog'е. Завтра будет обнова для обхода антирекламы)
 

-Marello-

Новичок
3
0
Интересную штуку только-что придумал, можно ведь сделать шифрование паролей в диалоговых окнах, шифровать их в md5, так шифруются пароли в MySql базах.
 

Laine_prikol

ДИДЖЕЙ МАДЕСТ
Проверенный
260
216
Интересную штуку только-что придумал, можно ведь сделать шифрование паролей в диалоговых окнах, шифровать их в md5, так шифруются пароли в MySql базах.
> md5
ШИФРОВАНИЕ ПАРОЛЕЙ
 
  • Нравится
Реакции: jdm17, vim и AnWu

Andrewvv

Известный
36
7
Можно ли в настройки добавить поле, для добавления префикса перед отправкой? Например если поле пустое, то текст отправляется в чат в обычном режиме, а если в поле например /w то [/w][cryptedtext] чтобы использовать серверные команды и привлекать меньше внимания. Спасибо.
 

r4nx

Известный
Автор темы
Друг
202
261
Можно ли в настройки добавить поле, для добавления префикса перед отправкой? Например если поле пустое, то текст отправляется в чат в обычном режиме, а если в поле например /w то [/w][cryptedtext] чтобы использовать серверные команды и привлекать меньше внимания. Спасибо.
Если я правильно понял о чём ты, то такой функционал уже есть. Включаешь inline-encrypt в настройках и теперь все сообщения отправляются как обычно, но можешь написать в любом месте, в команде например, $CScryptedtext$CE и слово cryptedtext зашифруется. Пример использования: /sms 111222 $CSпривет$CE. То есть в начале зашифрованного сообщения вставляешь $CS, а в конце - $CE (обязательно большие). Как-то так.
 
  • Нравится
Реакции: Andrewvv и AnWu

vim

Новичок
1
1
Если хочешь сделать что-то полезное с использованием крипты, поиграйся с хешами. Будет неплохо, если пароли вводимые в форму пароля будут хешироваться при помощи скажем SHA-256, перед отправкой на сервер, возможно даже с уникальной клиентской солью:) Из минусов - нужно регистрировать аккаунт после установки, из плюсов, если юзать соль, то пароли не ломаемые обычными стиллерами. Исключение - МИТМ трафика, но "настолько продвинутых" челиков в сампе еще не видел)
 
  • Нравится
Реакции: SAMP.ASI