Всем привет!
В этом посте хочу вернуться к продолжению проекта машины для проведения физико- механических испытаний.
Всем привет!
В этом посте хочу вернуться к продолжению проекта машины для проведения физико- механических испытаний.
Мы просмотрели и сравнили 10 000 open source библиотек для Python и выбрали 34 самые полезные.
Мы сгруппировали эти библиотеки в 8 категорий.
Читать полностью »
Конференция DEFCON 27. Извлечение пользы из хакерских продуктов для macOS. Часть 2
Получив с удаленного хакерского C&C-сервера файл с вредоносным кодом, эксплойт приступает к его исполнению. Здесь используется тот же SDF-метод, когда архив с вредоносным ПО распаковывается при помощи встроенной команды ditto и затем выполняется через NS API. Таким образом, Windtall использует стандартный встроенный загрузчик.
Кроме этого, бэкдор снабжен логикой самоликвидации, так что каждый раз, когда вредоносное ПО стартует, оно связывается с хакерским сервером и спрашивает, не должно ли оно деинсталлироваться. Если C&C-сервер отвечает кодом «1», программа сама себя удаляет, тем самым прекращая шпионскую деятельность.Читать полностью »
Сегодня стриминг-платформы на пике популярности, так как миллионы талантливых людей регулярно делятся своими знаниями – читай, используют стриминг на всю катушку. Так как этот рынок растет, то существует и масса приложений, которые могут стримить видео в реальном времени, используя камеру смартфона или ноутбука. Возможно, вы тоже хотите внедрить в ваше приложение такую функциональность; если так, то спешим обрадовать – теперь Voximplant позволяет прокидывать видеозвонки по RTMP в любой CDN, который поддерживает этот протокол.
Эта функциональность стала возможна благодаря новому модулю Voxengine – StreamingAgent. Под катом вас ждут 5 шагов по настройке этой интеграции, добро пожаловать!
Читать полностью »
Современный backend разнообразен, но всё-таки подчиняется некоторым негласным правилам. Многие из нас, кто разрабатывает серверные приложения, сталкивается с общепринятыми подходами, такими как Clean Architecture, SOLID, Persistence Ignorance, Dependency Injection и прочими. Многие из атрибутов серверной разработки настолько заезжены, что не вызывают никаких вопросов и используются бездумно. О некоторых много говорят, но никогда не используют. Смысл остальных же либо неправильно интерпретирован, либо перевран. Статья рассказывает о том, как построить простую, совершенно типичную, архитектуру backend, которая не только может без какого-либо ущерба следовать заветам известных теоретиков программирования, но и в некоторой степени может их усовершенствовать.
Читать полностью »
Привет! Сегодня мы начинаем серию статей, в которую войдет 5 подборок бесплатных обучающих курсов от компании Microsoft. В этой статье у нас самые крутые курсы для разработчиков, которые сильнее всего нравятся программистам.
Кстати!
Присоединяйтесь, подробности под катом!
Все статьи из серии
Этот блок будет обновляться с выходом новых статей
- 7 бесплатных курсов для разработчиков
- * бесплатных курсов для *T-А***н*******ров
- 7 бесплатных курсов для ************ *******
- 6 ***** ****** ****** по Azure
- ** ***** ********** ****** ** ********* ** *******
На данный момент LLVM стала уже очень популярной системой, которую многие активно используют для создания различных компиляторов, анализаторов и т.п. Уже написано большое количество полезных материалов по данной тематике, в том числе и на русском языке, что не может не радовать. Однако в большинстве случаев основной уклон в статьях сделан на frontend и middleend LLVM. Конечно, при описании полной схемы работы LLVM генерация машинного кода не обходится стороной, но в основном данной темы касаются вскользь, особенно в публикациях на русском языке. А при этом у LLVM достаточно гибкий и интересный механизм описания архитектур процессоров. Поэтому данный материал будет посвящен несколько обделенной вниманием утилите TableGen, входящей в состав LLVM.
Причина, по которой компилятору необходимо иметь информацию об архитектуре каждой из целевых платформ вполне очевидна. Естественно, у каждой модели процессора свой набор регистров, свои машинные инструкции и т.д. И компилятору нужно иметь всю необходимую информацию о них, чтобы быть в состоянии генерировать валидный и эффективный машинный код. Компилятор решает различные платформенно-зависимые задачи: производит распределение регистров и т.д. К тому же в бэкендах LLVM также проводятся оптимизации уже на машинном IR, который больше приближен к реальным инструкциям, или же на самих ассемблерных командах. В подобных оптимизациях нужно заменять и преобразовывать инструкции, соответственно вся информация о них должна быть доступна.
Читать полностью »
Возможно вы читали первую часть статьи про код ревью со стороны ревьювера (кстати, мы уже успели ее обсудить в последнем выпуске подкаста "Цинковый прод").
Так как статья набрала много лайков, пишу обещанное продолжение про код ревью с другой стороны — со стороны автора изменений кода
Как обычно, будем говорить MR (Merge Request) вместо CL, потому что термин CL мало кто понимает.
Оригинал инструкции для авторов MR по версии Google можно посмотреть здесь, а я дам краткую выжимку.
Итак, поехали
Продолжаем серию проектов для тренировки.
Брифинг выступления. Всякий раз, когда обнаруживается новый образец вредоносного ПО для macOS, он предоставляет нам возможность оценить новые возможности взлома, которые можно использовать с пользой для себя. Я имею в виду то, что жизнь коротка, зачем же тратить её на написание собственного вредоносного ПО?
Мы начнем этот разговор с обсуждения методологии приспособления для «личного использования» существующих вредоносных программ, подчеркивая как недостатки, так и преимущества такого подхода. Затем мы пройдем через вепонизацию различных образцов вредоносных программ для macOS, включая интерактивный бэкдор, имплантат для эксфильтрации файлов, вымогателей и да, даже рекламное ПО. Наши настройки включают в себя различные бинарные модификации среды выполнения, которые заставляют эти вредоносные программы принимать задачи от наших собственных серверов C&C и/или автоматически выполнять действия от нашего имени.
Конечно, сейчас в своем первозданном состоянии эти образцы обнаруживаются антивирусными продуктами. Поэтому мы рассмотрим модификации, которые обеспечат незаметность наших «хакерских» инструментов для традиционных антивирусных программ.
В заключение мы рассмотрим новые эвристические методы, которые все же смогут обнаруживать такие угрозы, чтобы обеспечить защиту пользователей Mac даже от таких модифицированных угроз. Зачем это нужно? Потому что это нормальный цикл развития человечества, и мы просто не осознаем, что видимое нами разрушение означает внедрение новой технологии, которая, прежде чем создать новые рабочие места, уничтожает старые.