User
Недокументированные функции загрузки DLL. Стек вызовов LoadLibrary

Рассмотрели способы загрузки DLL и написали инструмент загрузки библиотек с нестандартным способом получения адресов функций.
Встречаем Orange Pi CM5: альтернативу Raspberry Pi CM4 с 16 ГБ ОЗУ и 256 ГБ eMMC

Источник: 3dnews
Некоторые из одноплатников, которые вышли за последний год, по характеристикам едва ли не равны ряду ноутбуков с невысокой производительностью. Это можно сказать о пятой «малинке». Кроме того, сейчас появился еще один девайс — Orange Pi CM5, характеристики которого тоже на высоте. Давайте посмотрим, что это за девайс.
Стабилизатор напряжения с цифровым управлением, но без микроконтроллера

Привет, Хабр! Сегодня мы соберём по-настоящему секретную китайскую плату, содержащую серьёзную ошибку и пробелы в документации. Но если собирать радиоконструктор вдумчиво и поискать дополнительную информацию в Интернете, то всё получится, и даже ничего не взорвётся.
В отличие от популярных в настоящее время импульсных преобразователей напряжения, этот стабилизатор линейный. То есть, он не привносит в питающуюся от него цепь переключательных помех. Если добавить регулировку тока, то получится вполне годный блок питания для любительской лаборатории.
В отличие от других радиоконструкторов блоков питания, комплектуемых готовыми измерительными головками, здесь цифровой вольтметр нужно собирать самим, и с ним есть нюансы.
Пишем простой драйвер под Windows для блокировки USB-устройств
Однажды примерно такая задача и стояла передо мной. Времени на поиск каких-либо решений в Интернете не было, да и они, как правило, небесплатные. Поэтому мне было проще написать такой драйвер, и его реализация отняла у меня один день.
В этой статье я расскажу немного теоретическую часть, на основе которой все строится, и расскажу принцип самого решения.
Tcpdump на разных уровнях

Утилита Tcpdump знакома любому сетевому администратору, с ее помощью мы собираем трафик для последующего анализа. Типичная история – собираем траффик, приходящий на нужный интерфейс и затем уже анализируем его Wireshark. Подход практичный, ведь Wireshark Действительно очень мощный и полезный инструмент и о нем мы напишем еще не одну статью, но сегодня речь пойдет про Tcpdump. Не секрет, что утилита Tcpdump не интерпретирует протоколы прикладного уровня, ограничиваясь работой с транспортным уровнем. Однако, в этой статье мы рассмотрим различные варианты использования утилиты Tcpdump для более глубокой фильтрации трафика.
Итак, Tcpdump - утилита UNIX, позволяющая перехватывать и анализировать сетевой трафик, проходящий или приходящий через компьютер, на котором запущена данная программа.
Скрытые сокровища интерфейсного дизайна: 10 не популяризованных UI элементов, способных улучшить взаимодействие

Обзор недооцененных UI компонентов, которые могут значительно улучшить взаимодействие пользователя с продуктом.
Создаём свое собственное ZigBee устройство на чипах от Espressif ( ESP32-C6/H2)
Я давно хотел себе домой СО2 сенсор, но то денег не хватает, то жаба квакает… А тут мне пришла заказанная плата на базе ESP32-C6 и я решил попробовать собрать сам, благо различных Ардуино модулей был целый ящик. Если Вам интересно что у меня получилось добро пожаловать под кат. (длинная портянка и много картинок)
Основные функции Apache Tomcat

Привет, дорогие читатели!
Apache Tomcat — это открытое программное обеспечение, реализующее спецификации Java Servlet, JSP и Java WebSocket, предоставляя таким образом платформу для запуска веб-приложений, написанных на языке Java. Разработанный и поддерживаемый Apache Software Foundation, Tomcat служит контейнером сервлетов, который позволяет веб-приложениям использовать Java для создания динамичных веб-страниц.
Tomcat может работать как самостоятельный веб-сервер, где он обрабатывает как статические страницы, так и динамические запросы через Servlets и JSP. Однако часто Tomcat используется в сочетании с традиционными веб-серверами, такими как Apache HTTP Server или Nginx, для обработки статического контента, в то время как динамический контент обрабатывается через Tomcat.
В этой статье мы рассмотрим основной функционал Tomcat.
Самый простой и подробный гайд по конкурентным коллекциям в C#

Когда несколько потоков обращаются к общим ресурсам, должна быть обеспечена потокобезопасность, чтобы избежать повреждения данных и неожиданного поведения.
Конкурентные коллекции в C# предлагают встроенные механизмы для обработки конкурентного доступа, что делает их мощным инструментом в программировании с конкурентным доступом.
В рамках статьи я попробую объяснить
System.Collections.Concurrent
настолько, насколько это возможно, включая примеры и сценарии использования. Также будет затронута тема сравнения с неизменяемыми (immutable) и замороженными (frozen) коллекциями.Другой способ понять, как работает async/await в C#
Про закулисье async/await
написано предостаточно. Как правило, авторы декомпилируют IL-код, смотрят на IAsyncStateMachine
и объясняют, вот дескать какое преобразование случилось с нашим исходным кодом. Из бесконечно-длинной прошлогодней статьи Стивена Тауба можно узнать мельчайшие детали реализации. Короче, всё давно рассказано. Зачем ещё одна статья?
Я приглашаю читателя пройти со мной обратным путём. Вместо изучения декомпилированного кода мы поставим себя на место дизайнеров языка C# и шаг за шагом превратим async/await
в код, который почти идентичен тому, что синтезирует Roslyn.
Сосульки на свесах скатной кровли: механизм образования и методы борьбы с ними

Островерхая скатная и плоская крыша дома в ИЖС: Битва архаично-романтичного «дизайна» с инженерной рациональностью.
Крыша дома в частном секторе- это не только инженерное сооружение, но и главный элемент внешнего вида здания в целом.
Если учесть, что частный дом в значительной степени строят ради «показать себя», то его крыша становится скорее ярмаркой тщеславия, чем ответственной инженерной конструкцией. (см.рис.1.)
Константность в C++
Продолжаем серию «C++, копаем вглубь». Цель этой серии — рассказать максимально подробно о разных особенностях языка, возможно довольно специальных. Это седьмая статья из серии, список предыдущих статей приведен в конце в разделе 10. Серия ориентирована на программистов, имеющих определенный опыт работы на C++. Данная статья посвящена концепции константности в C++.
Переменные являются основой любого языка программирования. Если значение переменной нельзя изменить после инициализации, то такие переменные называются неизменяемыми (immutable) переменными или константными переменными или просто константами. Константные переменные в том или ином виде поддерживаются во всех языках программирования и играют в них важную роль. Такие переменные помогают компилятору оптимизировать код, улучшают читаемость и надежность кода, позволяют выявлять бОльшее количество ошибок на стадии компиляции. Константы помогают решать проблемы, связанные с многопоточным доступом к переменным. Использование константных переменных влияет на проектные решения в объектно-ориентированном программировании, а функциональное программирование изначально исходит из неизменяемости используемых переменных.
В C++ концепции константности уделяется значительное место. Для переменных используется два вида константности, имеются ссылки и указатели на константу, константные функции-члены, константные итераторы. Попробуем разобраться во всех этих понятиях.
Пишем плагин-диссектор для Wireshark

Таким образом, имея небольшой опыт написания плагина «анатома» под Wireshark, я решил поделиться знаниями и опытом с сообществом. Ну и для себя записать, на случай, если в будущем понадобится.
Диссекция — лат. dissectio, от dissecare, рассекать
Лазерный DIY или как с помощью дешевого гравера делать качественные платы

Привет, Хабр!
В этой статье хочу поделиться своей историей, как спонтанная покупка на местном маркетплейсе упростила процесс изготовления прототипов печатных плат в домашних условиях, сэкономив время, при этом повысив качество. Интересно? Тогда добро пожаловать под кат!
Экономика загородного дома. Как утеплить дом и не разориться?

Экономичное отопление. Как утеплить дом и не разориться?
Каждый городской житель мечтает о загородном доме.
Тишина, свежий воздух!
И тут же вы едете смотреть участок земли в превосходном живописном и экологичном месте.
Вопрос стоимости отопления загородного дома‑ это та проблема, которую начинают решать уже ввязавшись в стройку на уже купленном участке земли в живописном месте.
И тут внезапно выясняется, что газа нет!
Что это означает?
Это означает, что у вас в наличии 15 кВт подключенного электричества на все хозяйственные нужды, включая отопление.
15кВт — много это или мало?
Ответ как обычно прячется в самом вопросе, а именно: Смотря для чего?
Ниже приведён проект реального одноэтажного дома. (см.рис.1–2)
Распаковываем файл gzip вручную

В этой небольшой статье мы создадим файл gzip, после чего разберём его внутренние составляющие и просмотрим начинку. Избегая лишней сложности, в качестве содержимого для сжатия мы просто запишем в изначальный файл 8 символов
a
.$ echo "aaaaaaaa" > test.out
$ xxd test.out
00000000: 6161 6161 6161 6161 0a aaaaaaaa.
Файл получился размером 9 байт — 8 символов
a
плюс перевод каретки в конце.Теперь упакуем его. Сделаем это командой
gzip -1
, поскольку так мы задействуем самый быстрый метод сжатия, который позволит нам лучше разобрать процесс. $ gzip -1 test.out
$ xxd test.out.gz
00000000: 1f8b 0808 bf35 6a61 0403 7465 7374 2e6f .....5ja..test.o
00000010: 7574 004b 4c84 002e 00b6 66d7 ad09 0000 ut.KL.....f.....
00000020: 00
Дисклеймер: эту статью я писал в целях обучения, так что мог допустить некоторые ошибки. Мне нравится заниматься низкоуровневым программированием, но моя основная деятельность сосредоточена на веб-разработке для Microsoft Teams.
Устройство TCP/Реализация SYN-flood атаки

В данной статье мы поговорим об устройстве протокола TCP, самой популярной атаке на него – SYN-flood, а также реализуем её на практике и рассмотрим, как от неё защититься.
Рекомендации по ведению SQL-кода
Метод Reverse Engineering на практике: как расшифровать исходный код

Всем привет!
Сегодня в нашем эфире новый автор - Никита Синкевич, руководитель группы анализа и реагирования Инженерного центра Angara Security. Итак, начинаем!
Иногда в ходе расследования инцидента информационной безопасности необходимо понять, имеет ли та или иная программа вредоносное воздействие на систему. Если для данной программы у вас нет исходного кода, то приходится применять метод исследования "обратная разработка", или Reverse Engineering. Я покажу, что такое "обратная разработка" на примере задания "RE-101" с ресурса cyberdefenders.
CyberDefenders — это платформа для развития навыков blue team по обнаружению и противодействию компьютерным угрозам. В этой статье будет разбор последней, шестой подзадачи из задания "RE-101". На мой взгляд, она лучше раскрывает процесс реверс-инжиниринга, чем остальные: нам предстоит восстановить из исполняемого файла кастомный алгоритм шифрования, написать скрипт-дешифратор и расшифровать флаг.
Используемые инструменты:
1. Detect it Easy
2. IDA
3. Python3
4. Notepad++
5. CyberChef
Задание
Описание намекает, что в предложенном файле malware201 кто-то реализовал свой собственный криптографический алгоритм.
Information
- Rating
- Does not participate
- Registered
- Activity