Go в продакшене вирмейкера
-
Upload
boris-ryutin -
Category
Technology
-
view
1.067 -
download
2
description
Transcript of Go в продакшене вирмейкера
![Page 1: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/1.jpg)
Go в продакшене вирмейкера
Борис Рютин@dukebarman
«Цифровое оружие и защита»© 2014
![Page 2: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/2.jpg)
Что такое Go?
![Page 3: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/3.jpg)
Создатели Go
• Роберт Гризмер
• Роб Пайк
• Кен Томпсон
![Page 4: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/4.jpg)
Основные мотивации
• Безопасность
• Масштабируемость
• Время сборки
![Page 5: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/5.jpg)
Особенности #1
• Компилируется в машинный код
• Автоматическое управление памятью, сборщик мусора
• Строгая статическая типизация
• Конкурентное программирование
• Есть принципы ОО, но нет классов и наследования
![Page 6: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/6.jpg)
Синтаксис
![Page 7: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/7.jpg)
Особенности #2
• Нет исключений
• Есть указатели, но нет арифметических операций
![Page 8: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/8.jpg)
Исключения
![Page 9: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/9.jpg)
Указатели
![Page 10: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/10.jpg)
Плюсы
• Лёгкость освоения
• Скорость
• Кроссплатформеность
• Параллелизм
• Opensource
• Обаятельный талисман
![Page 11: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/11.jpg)
Минусы
• РАЗМЕР файла
• Отсутствие generics и переопределения операторов
• Отсутствие GUI
• Это не С/C++ и многие ждут Rust
![Page 12: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/12.jpg)
Где используется
• Yandex
• Soundcloud
• Docker
• CoreOS
• Twitch
![Page 13: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/13.jpg)
Тёмная стороны силы
![Page 14: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/14.jpg)
Инструментарий
• GDB (+ runtime-gdb.py)
• IDA, radare2
![Page 15: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/15.jpg)
Zygnatures. strip=false
![Page 16: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/16.jpg)
Zygnatures. strip=true
![Page 17: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/17.jpg)
Zygnatures
![Page 18: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/18.jpg)
Zygnatures
![Page 19: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/19.jpg)
Windows. Type
![Page 20: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/20.jpg)
Windows. Infostealer
![Page 21: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/21.jpg)
Windows. Infostealer
![Page 22: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/22.jpg)
Вызов DLL
![Page 23: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/23.jpg)
Вызов DLL
![Page 24: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/24.jpg)
Вызов DLL
![Page 25: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/25.jpg)
GoArm
• strings | grep 'func(‘
• r2>izz~func
![Page 26: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/26.jpg)
GoArm
![Page 27: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/27.jpg)
Светлая стороны силы
![Page 28: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/28.jpg)
Инструментарий
• IDE: Intelij IDEA + плагин, gosublime, LiteIDE, vimgo
• Установщик (golang.org, репозиторий)
• Настройка окружения (GOPATH, GOROOT)
![Page 29: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/29.jpg)
«Программы-шутки»?
• godoor
• Schoolware
![Page 30: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/30.jpg)
AV сканеры
• asgard-cli
• gonotifyav
• ipinformer
![Page 31: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/31.jpg)
SkyNet
GoDrone Bots GoBot
![Page 32: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/32.jpg)
Распределенные вычисления
• btcd
• mumax
![Page 33: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/33.jpg)
Стрессовое тестирование
• Go-meter
![Page 34: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/34.jpg)
Массовое тестирование
• Heartbleed
• Shellshock
• SSH/sitescanner/AuthenticationScanner/…
![Page 35: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/35.jpg)
Wopbot?
![Page 36: Go в продакшене вирмейкера](https://reader034.fdocuments.net/reader034/viewer/2022052623/559849ad1a28ab3e168b4857/html5/thumbnails/36.jpg)
Оптимизация