Pull to refresh
10
0
Александр @MadHacker

User

Send message

Перехват функций .NET/CLR

Reading time16 min
Views20K
Иногда при разработке программного обеспечения требуется встроить дополнительную функциональность в уже существующие приложения без модификации исходного текста приложений. Более того, зачастую сами приложения существуют только в скомпилированном бинарном виде без наличия исходного текста. Широко известным способом решения указанной задачи является т.н. “сплайсинг” – метод перехвата функций путем изменения кода целевой функции. Обычно при сплайсинге первые байты целевой функции перемещаются по другим адресам, а на их исходное место записывается команда безусловного перехода (jmp) на замещающую функцию. Поскольку сплайсинг требует низкоуровневых операций с памятью, то он осуществляется с использованием языка ассемблера и С/C++, что также накладывает определенные ограничения на реализацию замещающих функций – они обычно также реализованы на С/C++ (реже на ассемблере).

Метод сплайсинга для перехвата API-функций в Windows широко описан в Интернете и в различных литературных источниках. Простота указанного перехвата определяется следующими факторами:
  1. целевая функция является статической – она сразу присутствует в памяти загруженного модуля;
  2. адрес целевой функции легко определить (через таблицу экспорта модуля или функцию GetProcAddress).

Реализация замещающих функций на C/C++ при перехвате API-функций является оптимальным вариантом, поскольку Windows API реализовано, как известно, на языке C, и замещающие функции могут оперировать теми же понятиями, что и заменяемые.
Читать дальше →
Total votes 48: ↑48 and ↓0+48
Comments26

Как это сделано: Оптика для EUV/BEUV литографии

Reading time10 min
Views34K

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

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

Читать далее
Total votes 142: ↑142 and ↓0+142
Comments93

Клубничная чудо-коробка 2.0. Первая часть

Reading time12 min
Views24K

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

Читать далее
Total votes 107: ↑104 and ↓3+101
Comments63

Как разработать микросхему, от идеи до результата. Часть 1. Теория

Reading time19 min
Views24K
Пока наши соседи по цеху спорят о конкурентоспособности Эльбруса, я продолжаю идти к своей заветной цели — склепать свой собственный Отечественный Процессор (TM). Ранее я рассказывал про программу, финансируемую Google, которая позволяет энтузиастам бесплатно получить прототип их разработок в кремнии. Если вы хотите увидеть всю подноготную процесса производства современных чипов, то этот туториал точно для вас!

Читать дальше →
Total votes 113: ↑112 and ↓1+111
Comments62

Мой компьютер на логических микросхемах

Reading time6 min
Views55K

Привет, Хабр. Два года назад, как раз перед началом пандемии, я затеял большой проект: построить компьютер, используя только простые логические микросхемы 74 серии и микросхемы памяти. В этой статье я бы хотел кратко рассказать о том, что получилось, и более подробно об основной части – процессоре.

Читать далее
Total votes 306: ↑305 and ↓1+304
Comments73

Где сейчас экспонаты Политехнического музея?

Reading time8 min
Views21K
Главный технический музей страны уже много лет находится на реконструкции. Какое-то время работала временная экспозиция на ВДНХ, но в прошлом году закрылась и она. В связи с этим многие задаются вопросом, где же сейчас экспонаты музея. Ходили даже слухи, что с ними случилось что-то нехорошее. Спешу успокоить волнующихся: все экспонаты в надёжном месте, в целости и сохранности. А вот что это за место и что именно там можно найти — об этом сегодняшний пост.


Читать дальше →
Total votes 108: ↑108 and ↓0+108
Comments75

Разработка стековой виртуальной машины и компилятора под неё (итог)

Reading time16 min
Views10K

Для завершения реализации компилятора потребовалось около месяца времени (вечерами), чтобы на практике познакомиться с такими темами как BNF (Backus Naur Form), Abstract Syntax Tree (AST), Symbol Table, способами генерации кода, разработки самого компилятора (front-end, back-end), а также модификации виртуальной машины CVM. Ранее с этими темами был не знаком, но благодаря комментаторам погрузился. Хоть затрагиваемых тем много, постараюсь рассказать очень лаконично. Но обо всём по порядку.

Читать далее
Total votes 23: ↑21 and ↓2+19
Comments9

Малышка на миллион. Сковиллей

Reading time13 min
Views35K

Или, на что годятся монстрики Meklon'а?




Пишу эту заметку по мотивам инженерного мануала Гидропоника. Выращиваем сверхострый чили и заставляем всех его есть. Так получилось, что я один из тех, кого Meklon счел своим долгом «накормить и посмотреть что с ними станет». Я же, в свою очередь, считаю своим долгом рассказать об этом бесчеловечном эксперименте, на мой взгляд, в статье уделяется слишком мало внимания самому перцу. А он заслуживает большего!

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

Об этом — и будет мой рассказ, как приготовить из адских перчиков что-то съедобное и не сильно пострадать в процессе.
Total votes 143: ↑138 and ↓5+133
Comments220

Нативный способ покрасить SVG-иконки

Reading time2 min
Views24K
Когда вам нужна возможность менять цвет иконок через CSS, что вы делаете? Вариантов не так много.

Обычно используются либо шрифты иконок, либо исходный код SVG скачивается и вставляется в HTML вручную. Шрифт нужно оптимизировать, иначе пользователь загрузит разом все иконки без надобности. Работа с исходным кодом требует тяжелых DOM-операций и потенциально опасна.

Чтобы защититься от вредоносного кода SVG нужно «почистить». Встроенный в Angular санитайзер, к примеру, не работает с SVG и превращает их в пустую строку. Можно воспользоваться проверенным инструментом DOMPurify и подключить его с помощью нашей библиотеки ng-dompurify, о чем я подробно рассказывал.

Давайте посмотрим на еще один способ, доступный в современных браузерах, — тэг USE.


Читать дальше →
Total votes 24: ↑23 and ↓1+22
Comments22

Никто (почти) не знает, что такое авторизация

Reading time5 min
Views91K

За время работы архитектором в проектах внедрения IdM я проанализировал десятки реализаций механизмов авторизации как во внутренних решениях компаний, так и в коммерческих продуктах, и могу утверждать, что практически везде при наличии относительно сложных требований они сделаны не правильно или, как минимум, не оптимально. Причиной, на мой взгляд, является низкое внимание и заказчика и разработчиков к данному аспекту на начальных этапах и недостаточная оценка влияния требований. Это косвенно подтверждает повсеместное неправильное использование термина: когда я вижу словосочетание «двухфакторная авторизация», у меня начинаются боли чуть ниже спины. Ради интереса мы проанализировали первые 100 статей на Хабре в выдаче по запросу «авторизация», результат получился неутешительный, боли было много:
Читать дальше →
Total votes 33: ↑32 and ↓1+31
Comments110

Как сэкономить 15 000 рублей при регистрации ПО

Reading time6 min
Views18K


Прошёлся недавно по поисковой выдаче гугла и выяснил, что регистрация прав на программу для ЭВМ стоит около 15 тыс. рублей. 15 тыс. рублей! И это ещё без пошлины.


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


Зашёл на сайт Роспатента: инструкции там есть, но четкой картины не дают. На месте руководителя маленького IT-проекта я бы не стал подавать заявление сам — вдруг что-то сделаю не так.


Но я же юрист, и процедуру эту проходил не раз. Так почему бы мне не помочь стартаперам? Подумал-подумал, и не нашёл аргументов против. Так что давайте вместе попробуем подготовить документы и направить их в Роспатент, сэкономив при этом в среднем 15 тыс. рублей.

Читать дальше →
Total votes 58: ↑58 and ↓0+58
Comments30

Авиационные газотурбинные двигатели

Reading time7 min
Views101K
Всем привет! В этой статье я хочу рассказать о том, как работают авиационные газотурбинные двигатели (ГТД). Я постараюсь сделать это наиболее простым и понятным языком.

Авиационные ГТД можно можно разделить на:

  • турбореактивные двигатели (ТРД)
  • двухконтурные турбореактивные двигатели (ТРДД)
  • Турбовинтовые двигатели (ТВД)
  • Турбовальные двигатели (ТВаД)

Притом, ТРД и ТРДД могут содержать в себе форсажную камеру, в таком случае они будут ТРДФ и ТРДДФ соответственно. В этой статье мы их рассматривать не будем.

Начнём с турбореактивных двигателей.

Турбореактивные двигатели


Такой тип двигателей был создан в первой половине 20-го века и начал находить себе массовое применение к концу Второй мировой войны. Первым в мире серийным турбореактивным самолетом был немецкий Me.262. ТРД были популярны вплоть до 60-ых годов, после чего их стали вытеснять ТРДД.

image
Современная фотография Me-262, сделанная в 2016 году

Самый простой турбореактивный двигатель включает в себя следующие элементы:

  • Входное устройство
  • Компрессор
  • Камеру сгорания
  • Турбину
  • Реактивное сопло (далее просто сопло)

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

А теперь рассмотрим что для чего нужно и зачем.
Читать дальше →
Total votes 136: ↑133 and ↓3+130
Comments245

Опусы про Его Величество Клей. Часть четвертая — силиконы

Reading time10 min
Views32K
Посвящается Андрею А., котрому я так и не принес до сих пор извинения за испорченную силиконом вещь...

Продолжаем неспешно наши рассказы о рыбалке опусы про клеи. Сегодняшний наш герой не может похвастать званием популярного конструкционного клея для каких-нибудь космических кораблей, но шапочно знаком абсолютному большинству читателей. Потому что именно силиконы — основные клеи для всевозможных стикеров, этикеток и клейких лент потребительского (в противоположность профессиональным скотчам) сегмента. Ну и ко всему прочему, именно силикон чаще всего используется при герметизации всего и вся. Под катом — объяснение, почему он это может делать и как ему помочь это делать еще лучше. Про «силикон — работник незаметный».

Читать дальше →
Total votes 46: ↑45 and ↓1+44
Comments103

Восхождение на Эльбрус — Разведка боем. Техническая Часть 2. Прерывания, исключения, системный таймер

Reading time8 min
Views7K
Продолжаем исследовать Эльбрус путем портирования на него Embox.

Данная статья является второй частью технической статьи об архитектуре Эльбрус. В первой части речь шла о стеках, регистрах и так далее. Перед прочтением этой части рекомендуем изучить первую, поскольку в ней рассказывается о базовых вещах архитектуры Эльбрус. В этой части речь пойдет о таймерах, прерываниях и исключениях. Это, опять же, не официальная документация. За ней следует обращаться к разработчикам Эльбруса в МЦСТ.
Читать дальше →
Total votes 36: ↑34 and ↓2+32
Comments4

Восхождение на Эльбрус — Разведка боем. Техническая Часть 1. Регистры, стеки и другие технические детали

Reading time15 min
Views13K
Как и обещали, продолжаем рассказывать про освоение процессоров Эльбрус. Данная статья является технической. Информация, приведенная в статье, не является официальной документацией, ведь получена она при исследовании Эльбруса во многом как черного ящика. Но будет безусловно интересна для лучшего понимания архитектуры Эльбруса, ведь хотя у нас и была официальная документация, многие детали стали понятны только после длительных экспериментов, когда Embox все-таки заработал.

Напомним, что в предыдущей статье мы рассказали про базовую загрузку системы и драйвер последовательного порта. Embox запустился, но для дальнейшего продвижения были нужны прерывания, системный таймер и, конечно, хотелось бы включить какой-то набор unit-тестов, а для этого нам нужен setjmp. В этой статье речь пойдет о регистрах, стеках, и других технических деталях, необходимых для реализации всех этих вещей.
Читать дальше →
Total votes 47: ↑45 and ↓2+43
Comments3

Мониторинг окружающей среды в серверном помещении (Bolid + Zabbix)

Reading time14 min
Views18K
Наверное самым простым способом для ИТ-специалиста при решении задачи мониторинга окружающей среды в серверном помещении будет использование специализированных контроллеров с выдачей данных по SNMP (например, NetBotz или NetPing). Но для тех кто не боится трудностей и хочет получить недорогое решение промышленного уровня (с серийным выпуском оборудования) — есть интересный вариант с протоколом Modbus.


Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments10

Модернизация IDA Pro. Учимся писать загрузчики на Python

Reading time33 min
Views12K


Привет всем,


цикл статей по написанию разных полезных штук для IDA Pro продолжается. В прошлый раз мы исправляли процессорный модуль, а сегодня речь пойдёт о написании модуля-загрузчика (лоадера) для одной винтажной операционной системы, а именно — для AmigaOS. Писать будем на Python. Также я постараюсь раскрыть некоторые тонкости при работе с релоками (они же relocations), которые встречаются во многих исполняемых файлах (PE, ELF, MS-DOS и т.п.).

Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments5

Модернизация IDA Pro. Исправляем косяки процессорных модулей

Reading time10 min
Views5.1K


Привет всем,


Спустя довольно-таки продолжительное время с момента написания первой статьи я всё-таки решил, пусть и по чуть-чуть, но писать статьи на тему модификации/улучшения IDA Pro.


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

Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments1

Проектные нормы в микроэлектронике: где на самом деле 7 нанометров в технологии 7 нм?

Reading time12 min
Views125K
Современные микроэлектронные технологии — как «Десять негритят». Стоимость разработки и оборудования так велика, что с каждым новым шагом вперёд кто-то отваливается. После новости об отказе GlobalFoundries от разработки 7 нм их осталось трое: TSMC, Intel и Samsung. А что такое, собственно “проектные нормы” и где там тот самый заветный размер 7 нм? И есть ли он там вообще?


Рисунок 1. Транзистор Fairchild FI-100, 1964 год.

Самые первые серийные МОП-транзисторы вышли на рынок в 1964 году и, как могут увидеть из рисунка искушенные читатели, они почти ничем не отличались от более-менее современных — кроме размера (посмотрите на проволоку для масштаба).
Читать дальше →
Total votes 157: ↑157 and ↓0+157
Comments148

Обман в прямом эфире при аварии «Ariane 5»

Reading time3 min
Views42K
Четверговый запуск «Ariane 5» прошел частично успешно — спутники оказались на орбитах с большим, чем планировалось, наклонением. Они смогут оттуда добраться на геостационарную орбиту на своих двигателях. Благодаря тому, что на аппаратах стоят электрореактивные двигатели, на коррекцию орбиты потребуется немного топлива, и расчетный срок активного существования в 15 лет может и не уменьшиться. Хорошо, что спутники не потеряны, но авария вызывает возмущение действиями Arianespace — ЦУПу с первых минут должно было быть ясно, что с ракетой творится что-то неладное, но комментатор продолжал вести репортаж, будто бы все в порядке. Что же случилось?


Фото AFP/Getty Images
Total votes 61: ↑53 and ↓8+45
Comments179

Information

Rating
Does not participate
Location
Королев, Москва и Московская обл., Россия
Date of birth
Registered
Activity