Pull to refresh
196
0.1
Андрей Дмитриев @AndreyDmitriev

Пользователь

Send message

Perfect DLL Hijacking. Разбор техники

Level of difficultyMedium
Reading time37 min
Views7.3K

Привет, Хабр, на связи лаборатория кибербезопасности компании AP Security!  В статье речь пойдет о такой технике, как DLL Hijacking, а именно как это работает от А до Я.

DLL Hijacking - это техника, позволяющая внедрять сторонний код в легитимный процесс (EXE), обманывая его загрузкой неправильной библиотеки (DLL). Чаще всего это происходит путем размещения похожей DLL выше в порядке поиска, чем предполагаемая, в результате чего ваша DLL выбирается загрузчиком библиотек Windows первой.

Несмотря на то, что в основном DLL-хакинг является решающей техникой, у нее всегда был один существенный недостаток, заключающийся в том, что после загрузки в процесс он выполняет наш сторонний код. Это называется Loader Lock, и при запуске нашего стороннего кода на него накладываются все жесткие ограничения. Это и создание процессов, и сетевой ввод/вывод, и вызов функций реестра, и создание графических окон, и загрузка дополнительных библиотек, и многое другое. Попытка выполнить любое из этих действий под Loader Lock приведет к аварийному завершению или зависанию приложения.

До сих пор существовали только довольно грубые или быстро становящиеся бесполезными техники. Поэтому сегодня мы проводим 100% оригинальное исследование загрузчика библиотек Windows, чтобы не просто обойти Loader Lock, но и, в конечном итоге, полностью его отключить. Кроме того, мы разработали несколько стабильных механизмов защиты и обнаружения, которые могут быть использованы защитниками.

Читать далее

Об отображении 10-бит цвета с использованием OpenGL (GLFW)

Level of difficultyEasy
Reading time13 min
Views5.1K

Вашему внимания предлагается небольшой этюд, посвящённый отображению 10-битного цвета (1024 градаций по каждому каналу) на мониторе через OpenGL при помощи библиотеки GLFW. Под катом мы напишем пару небольших приложений, открывающих два окна, где рассмотрим тестовые изображения в восьмибитном и десятибитном режимах на оборудовании, поддерживающем такую опцию. Включение 10 бит в основном позволяет избавиться от эффектов «полосатости» (также используются термины «бандинг» или «постеризация»), возникающих на протяжённых градиентах со слабо меняющейся интенсивностью, когда вы начинаете видеть границы между отдельными градациями, но по какой-либо причине не хотите пользоваться дизерингом, подмешивая в изображение шум.

Читать далее про тысячу оттенков серого

Из пушек по воробьям. Генерация и решение лабиринта не самым обычным способом

Level of difficultyMedium
Reading time19 min
Views5.6K

На уходящей неделе мне попалась симпатичная, хоть и не новая мини‑серия статей на Дзен‑канале @zdgzdgzdg про процедурную генерацию лабиринта методом «коллапса волновой функции». Пока я читал эти статьи и знакомился с кодом, меня осенило: ведь это же вычисления в комонаде, погружённые в монаду! Я не издеваюсь, действительно, речь идёт о композиции двух паттернов функционального программирования: комонады Zipper, превращающей локальные правила в глобальное состояние, и монады Random, позволяющей генерировать случайные объекты.

И вот, в качестве баловства на выходных, я решил реализовать этот «квантовый» алгоритм генерации лабиринтов на Haskell, используя и комонады и монады, и вообще, ни в чëм себе не отказывая. И хотя язык программирования Haskell нужен не только для извращений, но именно для них он подходит идеально!

Читать далее

Книги, о которых редко говорят

Reading time4 min
Views51K

Дал ему подборку книг, он приходит месяца через два, и с порога такой сразу:
— Я с друзьями не могу разговаривать.
— Ну да есть такой, недостаточек.
интервью Жака Фреско

Читать далее

Старый софт: как мы обошли запрос пароля в Shadow Defender и зачем пользоваться приложением, которое не обновляется

Reading time11 min
Views8K

Привет, Хабр! Меня зовут Илья Буймистров, я занимаюсь исследованиями в области инфобеза для сервиса централизованного управления уязвимостями CICADA8. Это один из проектов  блока инноваций FC компании МТС RED.

Чтобы защищать пользователей, надо понимать, где слабые места в их ИТ-системах. Сегодня я расскажу, как можно обойти ввод пароля в достаточно известной программе Shadow Defender. Если вы росли в 2000-х, наверняка сталкивались с ней в компьютерных клубах и других местах, где ПК доступен большому количеству людей. Иногда её называют антивирусом, но не совсем точное определение. Обо всём по порядку.

Читать далее

Best free software: какой софт мы использовали 15 лет назад (часть 1)

Reading time10 min
Views12K

Чем быстрее идут годы, тем чаще мы ностальгируем по временам, когда трава была зеленее, горы выше, а приложения не требовали подключения к сети, создания аккаунтов и подписок. И если сейчас о свободном программном обеспечении не знает только ленивый, в 2007-2008 годах было несколько иначе.

Тогда компьютерные журналы составляли подборки лучшего ПО на разные случаи жизни. Давайте вспомним, что было популярным лет 15 назад. Осторожно: от скриншотов может свести олдскулы (мы вас предупредили).

Читать далее

Что нужно знать о gRPC системному аналитику

Level of difficultyEasy
Reading time14 min
Views31K

Всем привет! Я Ирина Матевосян, системный аналитик в направлении продуктового и системного анализа в отделе Tinkoff Mobile Core. Мы разрабатываем общие библиотеки, которые используют все мобильные приложения экосистемы Тинькофф. 

Расскажу о протоколе gRPC. На Хабре много статей о тонкостях реализации, рассчитанных на разработчиков, я же хочу познакомить с ним своих коллег. Разберем, как работает протокол и как написать контракт так, чтобы вас поняли, но не будем погружаться в тонкости программной реализации, а скорее расширим кругозор. Возможно, для кого-то gRPC станет крутым решением в работе.

Читать далее

Как собрать Си программу в OS Windows

Level of difficultyEasy
Reading time9 min
Views17K

Иногда возникает ситуация, когда надо что-то посчитать согласно сложному алгоритму прямо на LapTop PC. При этом сам алгоритм написан на Си.

Это может быть цифровой фильтр, дискретное преобразование Фурье, генератор QR кода, кусок линейной алгебры с векторами, какое-то тригонометрическое вычисление, программный модулятор, статистическая обработка случайной величины.

Да всё, что угодно! То есть Вы хотите использовать язык Си как гибкий и быстрый калькулятор в Windows.

В этом тексте представлено минимальное окружение для сборки Си кода в Windows.

Читать далее

Obsidian: Мой опыт с LYT/Ideaverse и его русификация

Level of difficultyEasy
Reading time6 min
Views19K

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

Читать далее

Мозговые имплантаты помогли пяти людям восстановиться после серьёзных травм

Reading time4 min
Views1.9K

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

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

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

«Это первое доказательство того, что можно сдвинуть с мёртвой точки решение этой проблемы», — сказал доктор Николас Шифф, невролог из нью-йоркского медицинского центра Weill Cornell, возглавлявший исследование.

Читать далее

Вкатываемся в Machine Learning с нуля за ноль рублей: что, где, в какой последовательности изучить

Level of difficultyEasy
Reading time26 min
Views312K

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

Читать далее

О хранении изображений в памяти с выравниванием

Level of difficultyMedium
Reading time23 min
Views5.5K

В разговорах с коллегами, а также по отдельным постам на форумах я заметил, что даже относительно опытные разработчики порой не достаточно глубоко понимают особенности хранения изображений в памяти. Если вы знаете, что такое выравнивание на границу 64-x байт, а также термины типа «длина или шаг строки (LineWidth/StepWidth, Stride)», «зазоры выравнивания (Alignment Gaps)», кроме того в курсе размеров линий кэша и страниц памяти на вашем компьютере, то вам, вероятно, не будет интересно, а остальные, особенно те, кто интересуется обработкой изображений — могут ознакомиться с предлагаемым материалом, и, возможно найдут для себя что-то новое и полезное. Под катом будет немножко кода на Си и ассемблере, пара LabVIEW скриншотов, предполагается также, что у читателя есть базовые знания OpenCV. Для экспериментов понадобится компьютер с камушком, поддерживающим AVX2.

Читать далее

Семь приемов в Excel, которые делают диаграммы профессиональными

Reading time8 min
Views109K

Хотя сейчас я работаю в ИТ-отрасли, много лет назад я верстал рекламную газету, и с тех пор дизайн – мой профессиональный навык и увлечение за пределами профессии.

Сделать диаграммы привлекательными гораздо проще, чем вы думаете. Получить рекомендации на все случаи жизни не выйдет, но освоить несколько приемов в Excel и узнать азы теории, вы сможете за 10 минут. 

Из тридцатилетнего опыта и десятков прочитанных книг я выбрал семь полезных приемов. Их мы и разберем в этой статье в блоге ЛАНИТ.

Читать далее

Что нового в .NET 8?

Reading time4 min
Views40K

.NET 8 вышел в релиз, значит можно начинать переносить свои проекты на новую версию. В этой статье мы рассмотрим новые улучшения и фишки: C# 12, производительность, Native AOT, GC, новые типы, направленные на повышение производительности, NuGet Audit и прочее.

Читать далее

Что вы знаете о символьном программировании?

Level of difficultyMedium
Reading time15 min
Views18K

Кликбейтный заголовок, риторический вопрос и обещание раскрыть тайну! Не самый лучший набор, но нормального названия для статьи мне в голову не пришло. Что же здесь все таки будет? Речь пойдет о реализации символьного программирования в Wolfram Language (WL). Я не буду рассказывать про отличия от других парадигм. А также здесь точно не будет общих определений. Вместо этого я попытаюсь ответить на несколько вопросов исходя из своего личного опыта и наблюдений.

Внимание! Я не математик и не знаю haskell и lisp! И буду рад если меня поправят настоящие математики, которые с ними знакомы.

Читать далее

(Пере)рождение метавселенной: что происходило с детищем Цукерберга и вокруг него, пока все восхищались ChatGPT

Level of difficultyEasy
Reading time8 min
Views6.6K

Чуть ли не каждый год мир бизнеса и технологий выбирает, во что ему верить. Сначала все молились на смартфоны, потом — на интернет вещей, затем настало время блокчейна, а следом Марк Цукерберг вышел с мощным анонсом метавселенной — виртуального пространства, которое должно заменить собой привычный интернет. Весь 2021 год в сообществах техностартапов и СМИ только и разговоров было, что о метавселенных. Но потом пришли генеративные нейросети, и об Интернете следующего поколения резко забыли. Однако недавняя серия анонсов от компании Марка Цукерберга демонстрирует как минимум один факт: на свалку истории метавселенные пока точно не собираются. Возможно, они даже эволюционируют.

Читать далее

Считаем медиану быстрее numpy

Level of difficultyEasy
Reading time18 min
Views6.4K

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

Читать далее

Пишем printf на языке ассемблера FASM

Level of difficultyHard
Reading time12 min
Views17K

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

Читать далее

«Основание» Азимова наоборот

Level of difficultyEasy
Reading time17 min
Views48K

На Apple TV вышел второй сезон сериала, который экранизирует цикл фантастических романов Азимова об Академии (или Основании, а на самом деле — о Фонде). Я, как и многие, читал их в детстве. До сих пор эти тексты не переносили на экран, так что мне, конечно, хотелось увидеть, как будут визуализированы классические образы ученых, защищающих знание и цивилизацию от хаоса и варварства космических масштабов. Показ нового сезона — повод поделиться тем, что, как мне кажется, получилось у создателей сериала по сравнению с книжным источником.

Читать далее

Робототехнические манипуляторы с компьютерным зрением

Level of difficultyEasy
Reading time8 min
Views11K
Картинка Freepik

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

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

Читать дальше →

Information

Rating
5,564-th
Location
Ahrensburg, Schleswig-Holstein, Германия
Date of birth
Registered
Activity