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

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

Send message

Истории из жизни вредоносов: инъекция кода в Windows

Level of difficultyMedium
Reading time6 min
Views5.4K

Технологии внедрения своего кода в чужие процессы уже много лет используются различными вредоносными приложениями. В Windows это стало довольно распространенным явлением. Вредонос инжектирует фрагменты своего собственного кода в другой запущенный процесс, чтобы затем его выполнить. Инъекция кода бывают нескольких видов, в этой статье мы рассмотрим обычную инъекцию кода, а в следующих статьях подробно поговорим про инъекции DLL и отраженные инъекции DLL.

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

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

Читать далее

Микросмартфон за 100 рублей: Покупаем смартфон 11-летней давности и… пишем под него приложения

Level of difficultyMedium
Reading time11 min
Views16K
image

Размер экрана — краеугольный камень мира современных смартфонов. Кто-то считает, что дисплеи должны становиться только больше, а рамки — меньше, кто-то любит «средние» дисплеи диагональю в 5+", ну а кто-то остаётся ярым поклонником и приверженцем компактных смартфонов с крошечными дисплейчиками. В наше время, купить новый смартфон с относительно небольшим дисплеем за приемлемые деньги почти нереально — самые бюджетные модели будут слишком тормозными для современного пользователя. Некоторое время назад, я купил себе бюджетный крошечный смартфон 2012 года выпуска — Samsung Galaxy Pocket, причём всего за 100 рублей. Конечно же мне захотелось довести его до ума — а доводить пришлось руками и навыками прожженного программера! Какой смартфон можно получить за 100 рублей? Читаем в статье!
Читать дальше →

Anki — настолько круто, что я даже представить не мог

Reading time4 min
Views201K

Если вдруг кто не знает, Anki - это бесплатная opensource программа для запоминания слов (и не только). Есть версии под декстоп и мобилы. Она довольно популярна при этом имеет интуитивно-НЕпонятный интерфейс. Мне понадобилось много лет, чтобы понять, насколько она крута, т.к. базовые статьи и туториалы этого не описывают. А многие люди используют ее даже не понимая ее возможностей.

Впервые про Anki я услышал много лет назад. Может быть 10 или больше, точно сказать сложно. Прочитал здесь на Хабре, что есть такая крутая штука как интервальное повторение, и что Anki как раз такая программа, которая использует этот механизм. Помню что в статье рассказывалось только про версию под декстоп.

Читать далее

Подробный разбор 64b intro: radar

Level of difficultyHard
Reading time14 min
Views11K

Да здравствует мыло душистое демосцена! И вам привет, дорогой читатель ;)

С демосценой я познакомился примерно 25 лет назад (или чуть больше). Но тогда это выражалось лишь в просмотре 128–256-байтовых интр (и демок, конечно же) с изумлением а‑ля: «А что так можно было?» Думаю, у многих знакомство с этой киберкультурой начинается похожим образом :). Если вам эти слова мало о чём говорят, почитайте о демосцене скудную статью на Вики, ну и/или послушайте подкаст, а также посмотрите что люди умудряются сделать, укладываясь всего лишь, например, в 256 байт кода (справа у большинства работ есть ссылка на видео YouTube).

Полноценные интры на любимом ассемблере x86 я начал писать только 5 лет назад, в 2018 году. Именно тогда я отправил на знаменитый фестиваль Chaos Constructions (который, кстати, организаторы обещают возродить в 2024) два прода (от слова «production»): 256b intro StarLine (заняла 1-е место) и 64b intro radar (заняла 6-е место в том же compo). После этого демосцена меня засосала стала частью моей жизни, в которую время от времени я с энтузиазмом погружаюсь.

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

Заглянуть за кулисы...

Марк Руссинович — человек, который знает о Windows всё

Level of difficultyEasy
Reading time8 min
Views17K


Существуют эксперты, внесшие значительный вклад в историю развития IT, благодаря чему их имена стали буквально нарицательными. Питер Нортон, Джон Маккафи, Евгений Касперский… В этом ряду нельзя не упомянуть и Марка Руссиновича — известного программиста и писателя, о котором наверняка слышал каждый, кто работал с персональными компьютерами в эпоху Windows 9x/2000.
Читать дальше →

8 инструментов для аннотирования изображений в 2023 году

Reading time7 min
Views6.2K

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

Что такое аннотирование изображений?


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

Разметка или категоризация изображения описательными данными, помогающими в идентификации и классификации объектов, людей или сцен на картинке, называется аннотированием изображений.

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


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

Лучшая фантастика последних трех лет по версии Goodreads

Reading time5 min
Views170K

GoodrGoodreads — пожалуй, главный книжный сайт англоязычного интернета. Недавно он составил список самых популярных фантастических книг за 2020-2023 годы, опираясь на мнение пользователей. К сожалению, на русский язык переведено далеко не все, однако даже те книги, которые уже можно прочитать в переводе, составляют внушительный список. Вот он.

Читать далее

AI-focused digest: ИИ для удаления шумов с космических фото, генерация изображений на основе фМРТ мозга

Reading time4 min
Views1.1K

Всем привет! 

В апрельском выпуске AI-focused digest мы расскажем, как можно сократить затраты на обучение больших ML-моделей, как японские ученые научили нейросеть генерировать изображения по фМРТ мозга. Также поговорим о новом CV-алгоритме для улучшения астрономических фото. В заключении порекомендуем исследовательскую статью, которая поможет лучше понять, чего ждать от стремительного развития языковых моделей. 

Читать далее

Об ошибке Н. Вирта и вреде операторов цикла

Reading time7 min
Views6.1K

На рис. 1 приведена блок-схема алгоритма нахождения наибольшего общего делителя двух натуральных чисел из книги Н. Вирта[1]. С таких алгоритмов, да и с подобных книг,  начинается или должно начинаться знакомство с программированием. И, кстати, книга Н.Вирта была одной из первых, с которой в свое время познакомился и я. Так что здесь присутствует и некий личный мотив.

Читать далее

Обучение C++, UTF-8 с первой программы

Level of difficultyMedium
Reading time13 min
Views29K

Мне понадобилось провести несколько вводных уроков по языку программирования C++. В интернете есть много разнообразных учебных пособий для начинающих. Но почти во всех из них символьные и строковые литералы в примерах и упражнениях даются на английском языке, начиная со знаменитой первой программы «Hello, world!».

В этой статье я стараюсь показать, что действующий стандарт языка C++, современные компиляторы, редакторы кода и другие инструменты программиста позволяют писать исходный код программ, символьные и строковые литералы на разных языках, в частности на русском языке. При желании можно использовать иероглифы, эмодзи и любые другие символы из таблицы Юникода.

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

Читать далее

Как мы нейросеть в браузер тащили

Level of difficultyEasy
Reading time3 min
Views7.5K

Здравствуйте, товарищи! Хочу написать a good story про то, как портировал нейросеть в браузер.

Задача пришла ко мне от моих институтских друзей из ИВМ РАН. Есть некий фронтенд, на который доктор загружает КТ снимок. Доктору предлагается при помощи веб интерфейса выделить сектор с сердцем, который будет передан на сервер, где алгоритмически отсегментируется граф аорты для последующего анализа.

Меня попросили сделать нейросеть для выделения 3d сектора с сердцем, а затрачиваемое время не должно превышать 2-3 секунд.

Гонять весь КТ снимок на сервер только за координатами накладно, т.к. КТ снимок обычно состоит из 600-800 кадров размера 512 * 512 пикселей, поэтому мое предложение о браузерном варианте пришлось кстати.

Читать далее

Пишем простой калькулятор используя фреймворк eframe (egui)

Level of difficultyMedium
Reading time34 min
Views14K

Всем здравствуйте. Ниже будет приведен пример написания PWA приложения готового для использования как в браузере, так и на компьютере с ОС Windows. Используется язык программирования Rust и фреймворк eframe (egui). В результате получим исполняемый файл для ОС Windows, и файл Webassembly. В процессе работы будет использоваться GitHub Action для отслеживания корректности написания нашего кода и сборки исполняемых файлов программы, а также для развертывания (версию программы с использованием Webassembly) как страницы в интернете (GitHub Pages).

Читать далее

Сказка про Method as Parameter

Reading time9 min
Views10K

Наверняка вы вызывали методы в C#. И казалось бы, что тут может быть интересного. Но тут есть о чем поговорить, есть что интересного рассказать.

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

Читать далее

Сканер установленных перехватчиков в памяти процесса

Reading time98 min
Views11K


В статье будет рассмотрен один из методов поиска изменений в памяти процесса, на основе построения полной карты уязвимых к перехвату адресов. Рассмотрена работа со списками загрузчика, ручным разбором таблиц импорта/отложенного импорта/экспорта/TLS загруженных файлов, c обработкой форварда функций и ApiSet редиректов.
Будет показана методика доступа в 64 битное адресное пространство чужого процесса из 32 битного кода через статически сформированный ассемблерный шлюз, так и подход с применением автоматически генерируемого гейта.
Будет дано много комментариев «почему» применяется тот или иной подход, а также описание различных проблемных ситуаций, основанных в том числе как на собственном опыте, так и на разборе кода системного загрузчика, поэтому будет интересна и подготовленным специалистам.
Читать дальше →

Rust vs C#: два способа решить проблему ссылок в структурах

Level of difficultyMedium
Reading time3 min
Views10K

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

Давайте посмотрим на примере Rust и C# как авторы решают эту неоднозначную проблему.

Читать далее

Перцептрон на numpy

Reading time3 min
Views18K

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

Читать далее

English Tenses — моё представление времён в английском языке

Reading time3 min
Views12K

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

Сразу хочу отметить, что я не являюсь педагогом и у меня вообще нет никакого ни лингвистического, ни педагогического образования. Данной статьей я просто хочу поделиться своей диаграммой по изучению времен, возможно кому-то она будет полезной и поможет в понимании времен и того, как и когда использовать, то или иное время. Данная диаграмма будет поверхностной и не будет углубляться во все подробности языка (и так она получилась огромной), она не охватывает все многообразие времен и конструкций в английском. Уровень данной диаграммы А2-В1.

И сразу начну с диаграммы:

Читать далее

Нужно читать академические статьи в Computer Science

Reading time7 min
Views10K

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


Руководства могут помочь вам написать код здесь и сейчас, но академические статьи могут помочь понять, откуда и куда движется программирование. Каждая особенность программирования, начиная с указателя null (также известного как ошибка на миллиард долларов) и заканчивая объектами (в смысле Smalltalk), построена на основании исследований, восходящих к 1960-м (и более ранним) годам. Предстоящие инновации будут основаны на сегодняшних исследованиях. Продолжение — к старту нашего флагманского курса по науке о данных.

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

Английский, которому меня не учили

Reading time14 min
Views80K

Или максимы Английского языка, которые бы я хотел знать 20 лет назад.

Чем отличается хороший геймер от плохого? Хороший геймер сидит и изучает игру. Он знает каждый закуток. Он может без запинки назвать все характеристики всех юнитов в Star Craft. А самый крутой игрок знает все пропускные способности желтых, красных и синих конвейеров. А плохой игрок использует чит-коды или assistant apps. 

Можно сколько угодно сидеть и жаловаться о том, что правила сложны. А можно просто взять, изучить эти правила и уделать наисложнейшую игру.

Я не раз в своей жизни слышал, что Английский чрезвычайно сложен. Подобные заявления фактически являются чит-кодом. Вы просто сдаётесь и перестаёте пытаться. А зря. В английском языке есть очень много полезных и понятных вещей. 

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

Okay, let's go...

Polars: библиотека для работы с данными, написанная на RUST

Reading time6 min
Views26K

Настоящий хреновый программист всегда находится на гребне волны новых технологий. Зачем ему это? Чтобы при случае можно было повыделоваться багажом своих знаний, и заработать немного очков уважения в окружении своих менее осведомлённых коллег. Stay toxic, brothers. Я с вами.

Когда-то давно мне нужно было обработать чуть больше тысячи жирнейших excel-таблиц и сделать это нужно было быстро. Буквально за час я вкатился в Python и Pandas, а за второй час выполнил все необходимые манипуляции. Так я и познакомился с этими двумя. С тех самых пор приходилось выполнять самые разные задачи по анализу данных и всё бы ничего, но хотелось бы, чтобы Pandas работал побыстрее. Оказывается хотелось не одному мне, а целой команде разработчиков, на Rust.

Как и полагается, всё что на Rust то Blazingly-Fast, и Polars не стала исключением. За счёт чего Polars быстрее Pandas? Что это за библиотека и стоит ли на неё переходить? Давайте попробуем разобраться в этой статье.

Читать далее

Information

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