Showing posts with label lua. Show all posts
Showing posts with label lua. Show all posts

Friday, 8 September 2023

VLC и просмотр Youtube видео.


Привет всем.

По ходу медиаплеер VLC можно использовать и для просмотра Youtube видео. Однако "не так сталося як гадалося".

Идем по меню "Media/Open Network stream" вбиваем ссылку на ролик и... получаем ошибку, текст которой ни о чем нам не говорит "Your input can't be opened: VLC is unable to open the MRL". С другими роликами та же история, и это обнадеживает, значит проблема локальная. Ныряем за советом в сеть где находим кучу способов решить проблему отключением (правкой исключениями) фаерволла и антивируса, или обновлением самого VLC. Я всегда критично отношусь к таким глобальным решениям локальных проблем, поэтому свой поиск продолжил.

И вот попалось мне на глаза предложение обновить LUA-скрипт для youtube в самом VLC. А вот это больше похоже на правду, ибо в youtube частенько происходят изменения. Идем сюда

https://github.com/videolan/vlc/tree/master/share/lua/playlist

и скачиваем youtube.lua. Далее идем в свой VLC и ложим его в C:\Program Files\VideoLAN\VLC\lua\playlist. Как вы можете заметить там уже есть youtube.luaс, это скомпилированный LUA-скрипт. Но нет повода для беспокойства, просто переименовываем наш скачаный youtube.lua в youtube.luaс. И все, проблема решена, VLC нормально принимает и нескомпилированный LUA-скрипт.

Теперь "Open Network stream" работает. Удачи.

Sunday, 20 March 2022

Пишем диссектор Wireshark на Lua.

Всем привет.

Несомненно, что с помощью Wireshark можно легко проанализировать протокол, например HTTP, потому что эта программа может извлечь всю необходимую информацию. Однако пользовательские протоколы немного сложнее: для их анализа нам придется вручную извлечь всю необходимую информацию из байтового представления сетевого трафика.

К счастью, можно использовать плагин Wireshark Protocol Dissectors, чтобы добавить в Wireshark анализ дополнительного протокола. Раньше для этого требовалось создание диссектора на языке С, чтобы работать с конкретной версией Wireshark, но современные версии Wireshark поддерживают язык сценариев Lua. Сценарии, которые вы пишете на Lua, также будут работать с инструментом командной строки tshark.

Давайте рассмотрим как разработать простой диссектор на Lua для протокола SuperFunkyChat, который поддерживает открытый чат по протоколу 12345.

Перед разработкой диссектора убедитесь, что ваша копия Wireshark поддерживает Lua, проверив диалоговое окно "О программе" Wireshark в разделе Help → About Wireshark. Если вы запускаете Wireshark от имени привилегированного пользователя в Unix-подобной системе, то обычно поддержка Lua отключена по соображениям безопасности, и вам нужно будет настроить Wireshark для запуска от имени непривилегированного пользователя, чтобы перехватывать и запускать сценарии на Lua. Можно разрабатывать диссекторы практически для любого протокола, с которым будет работать Wireshark, включая TCP и UDP. Гораздо проще разработать диссекторы для протоколов UDP, чем для TCP, потому что каждый перехваченный пакет UDP обычно имеет все, что нужно диссектору. 

SuperFunkyChat поддерживает режим UDP, передавая клиенту параметр командной строки --udp при запуске, что довольно удобно. Отправьте этот параметр во время перехвата и увидите пакеты, подобные тем, что показаны на скриншоте. Обратите внимание, что Wireshark по ошибке пытается проанализировать трафик, используя протокол GVSP, как показано в столбце Protocol. Реализация собственного диссектора исправит эту ошибку.


Один из способов загрузить файлы Lua – поместить свои сценарии в каталог %APPDATA%\ireshark\plugins в Windows или каталог ~/.config/wirehark/plugins в Linux и macOS. Также можно загрузить сценарий Lua, указав его в командной строке следующим образом, заменив информацию о пути на расположение сценария:

Wireshark.exe -X lua_script:chat2.lua

Есть и другой способ - это в файле Init.lua проверить значение параметра

disable_lua = false

а в конце того же файла добавить ссылку на сам скрипт:

dofile(DATA_DIR.."chat2.lua")

Версия на печать

Популярное