Блог Информационная безопасность | OTUS
🚀 OTUS Fest 2021
Бесплатная образовательная онлайн-конференция для IT-специалистов.
Подробнее

Курсы

Программирование
Backend-разработчик на PHP
-9%
Алгоритмы и структуры данных
-9%
Team Lead
-6%
Архитектура и шаблоны проектирования Разработчик IoT
-13%
C# Developer. Professional
-9%
HTML/CSS
-11%
C# ASP.NET Core разработчик
-5%
Kotlin Backend Developer
-8%
iOS Developer. Professional
-8%
Java Developer. Basic C++ Developer. Professional Web-разработчик на Python MS SQL Server Developer Android Developer. Basic Разработчик программных роботов (RPA) на базе UiPath и PIX Microservice Architecture Unity Game Developer. Basic Разработчик голосовых ассистентов и чат-ботов React.js Developer Node.js Developer Интенсив «Оптимизация в Java» Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes JavaScript Developer. Basic Unity Game Developer. Professional Супер-интенсив Azure
Инфраструктура
Экспресс-курс «IaC Ansible»
-10%
Administrator Linux.Basic
-10%
Мониторинг и логирование: Zabbix, Prometheus, ELK
-10%
Экспресс-курс «CI/CD или Непрерывная поставка с Docker и Kubernetes»
-30%
Administrator Linux. Professional
-6%
Дизайн сетей ЦОД
-13%
NoSQL Основы Windows Server MS SQL Server Developer Инфраструктурная платформа на основе Kubernetes Cloud Solution Architecture Highload Architect Разработчик голосовых ассистентов и чат-ботов VOIP инженер Супер-практикум по работе с протоколом BGP Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Супер-интенсив "Tarantool"
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02
Посты
Реверс-инжиниринг в контексте безопасности ПО

Как обезопасить программное приложение от злоумышленника, использующего методы обратной разработки кода? В этой статье мы расскажем о нескольких способах, помогающих защитить свое приложение или хотя бы усложнить задачу взлома.

Что должен знать реверс-инженер?

Реверс-инжиниринг — это обратное проектирование или обратная разработка (как правило, кода). Относительно сферы информационных технологий, данная профессия предполагает тщательное изучение программных приложений, что необходимо для понимания того, каким образом эти программы функционируют. Знание последнего помогает понять, как можно внести в работу того или иного софта изменения.

В помощь пентестеру: сканеры сетей

Сканеры сетей — специализированные программы, предназначенные для сканирования локальных и внешних сетей. С помощью сканирования вы сможете составить карты сетей, что облегчит поиск возможных уязвимостей.

Вывод и ввод с точки зрения ассемблера

При использовании функции вывода переменные помещаются в стек, а потом применяются в качестве параметров. Понимание, как это выглядит на низком уровне, расширит ваши знания о работе программного обеспечения и, соответственно, позволит более эффективно заниматься его исследованием.

Условные операторы и операторы выбора

В этой статье мы в очередной раз заглянем под капот программного обеспечения. Посмотрим, как выглядят условные операторы и операторы выбора в ассемблерном графе.

Ассемблерное представление математических операций

В этой статье мы поговорим об основных математических операциях и переведем каждую из них в ассемблерный код. Будут рассмотрены такие операции, как сложение и вычитание, умножение и деление, поразрядная конъюнкция (И) и дизъюнкция (ИЛИ), поразрядное отрицание и поразрядное исключающее ИЛИ, битовый сдвиг вправо и влево. Понимание этих аспектов поможет вам продвинуться в изучении реверс-инжиниринга.

Как защитить веб-сервер?

Если у вас есть сервер c ОС Linux — Apache или nginx, и вы желаете разместить на нём web-сайт, в первую очередь следует подумать о его защите. При этом с точки зрения информационной безопасности не столь важно, какой именно ресурс вы планируете запустить — интернет-магазин, развлекательный портал или информационный сайт — действия по защите будут схожими. О них и поговорим.

Инициализация переменных в ассемблерном коде

Переменные являются одними из основных составляющих программирования. Давайте посмотрим, как происходит инициализация переменных в машинном коде.

Вызов функций: как это выглядит в машинном коде

Функции используются в программировании повсеместно, поэтому реверс-инженер должен хорошо понимать общие принципы построения программного кода при вызове функций. В этой заметке мы рассмотрим 3 вида функций: