Подготовка к работе панорамной камеры Insta360 Pro 2. Фото: Таванда Канхема
Зимбабве — крайне бедная африканская страна. Хотя до обретения независимости в 1980 году она считалась одной из самых экономических развитых на континенте, несмотря на добычу золота и алмазов, сейчас относится к числу беднейших государств на планете. Зимбабве — прототип сказочной и богатой Ваканды из комиксов Marvel, но это не слишком помогает экономике в реальном мире.
Понятно, что в такой бедной стране мало пользователей интернета, поэтому гигант Google не заинтересован в том, чтобы инвестировать деньги в оцифровку местности и публикацию качественных панорамных карт. Но виртуальные прогулки по Зимбабве всё-таки возможны, и за это нужно благодарить не Google, а одного-единственного патриота, 37-летнего американца Таванду Канхему (Tawanda Kanhema), который не забыл про свою малую родину.
Несколько недель назад я обнаружил пост "Окисляем Source Maps с Rust и WebAssembly"
распространяющийся по Твиттеру и расказывающий о выигрыше в производительности от замены обычного JavaScript в библиотеке source-map на Rust, скомпилированный в WebAssembly.
Пост возбудил мой интерес не потому, что я большой фанат Rust или WASM, скорее потому что я всегда интересовался фичами языков и оптимизациями, которых не хватает Javascript для того чтобы достичь аналогичной производительности.
Так что я скачал библиотеку с GitHub и отправился в небольшое исследование производительности, которое я документирую здесь практически дословно.
Известно, что метасплойт написан на Ruby и не поддерживает скрипты, написанные на Python. Несмотря на это у метасплойта есть двусторонний RPC–интерфейс, при помощи которого можно запускать задачи.
Есть две библиотеки, позволяющие взаимодействовать с remote procedure call (RPC) metasploit — это pymetasploit от allfro и python-msfrpc от SpiderLabs. В данной статье используется первая. В интернете и репозитарии github pymetasploit есть примеры запуска эксплойтов и взаимодействия с установленными сессиям, однако мне не удалось найти примеров запуска сканеров и получения вывода для дальнейшей обработки результатов. Один из вариантов будет рассмотрен далее.