Search
Write a publication
Pull to refresh
63
0
Глеб Ницман @gleb_l

Инженер

Send message

Пишем шеллкод под Windows на ассемблере

Reading time22 min
Views19K
image

В этой статье я хочу показать и подробно объяснить пример создания шеллкода на ассемблере в ОС Windows 7 x86. Не смотря на солидный возраст данной темы, она остаётся актуальной и по сей день: это стартовая точка в написании своих шеллкодов, эксплуатации переполнений буферов, обфускации шеллкодов для сокрытия их от антивирусов, внедрения кода в исполняемый файл (PE Backdooring). В качестве примера я выбрал TCP bind shellcode, т.к. на мой взгляд — это лучший пример, потому что все остальные базовые шеллкоды имеют много общего с ним. Статья будет полезна для специалистов по информационной безопасности, пентестеров, начинающих реверс-инженеров и всем, кто желает разобраться в базовых принципах работы ОС Windows. Плюсом — улучшаются навыки программирования.
Читать дальше →

Фильтр Калмана — это легко

Reading time18 min
Views98K


Много людей, в первый раз сталкивающихся в работе с датчиками, склонны считать, что получаемые показания — это точные значения. Некоторые вспоминают, что в показаниях всегда есть погрешности и ошибки. Чтобы ошибки в измерениях не приводили к ошибкам в функционировании системы в целом, данные датчиков необходимо обрабатывать. На ум сразу приходит словосочетание “фильтр Калмана”. Но слава этого “страшного” алгоритма, малопонятные формулы и разнообразие используемых обозначений отпугивают разработчиков. Постараемся разобраться с ним на практическом примере.
Читать дальше →

Можно ли генерировать случайные числа, если мы не доверяем друг другу? Часть 1

Reading time9 min
Views6.5K

Привет, Хабр!

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

Зачем вообще нужно генерировать случайные числа участникам, не доверяющим друг другу? Одна из областей применения -- это децентрализованные приложения. Например, рассмотрим децентрализованное приложение, которое принимает ставку от участника и либо удваивает сумму с вероятностью 49%, либо забирает с 51%. Приложение будет работать только если алгоритм может непредвзято получить случайное число. Если злоумышленник сможет повлиять на результат или предсказать случайное число, и даже незначительно увеличить свой шанс получить выплату в приложении, он получит возможность опустошить его.

Когда мы разрабатываем распределенный протокол генерации случайных чисел, мы хотим, чтобы он обладал тремя свойствами:

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

Он должен быть непредсказуемым. Другими словами, ни один участник не должен иметь возможность предугадать, какое число будет сгенерировано (или вывести какие-либо его свойства) до того, как оно будет сгенерировано.

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

В этой статье мы рассмотрим два подхода: RANDAO + VDF и подход, основанный на стирающих кодах. В следующей части мы подробно разберем подход, основанный на пороговых подписях.

Читать далее

Беспроводной DIY датчик температуры и влажности с e-paper дисплеем

Reading time4 min
Views20K
Всем привет! Сегодня хочу рассказать читателям о своем DIY проекте датчика температуры и влажности с e-ink дисплеем. Это будет некая обзорная статья об этапах создания устройства, будет много картинок. Идея этого проекта родилась около двух лет назад, примерно тогда я увлекся беспроводными автономными устройствами. Целью проекта было создание небольшого девайса для знакомства и изучения дисплеев на электронных чернилах. Было решено на плату добавить датчик температуры, что бы можно было выводить какие то полезные данные на экран, ну и передавать данные далее в систему умного дома.


DLR RMC — часть 2. Управление механическим импедансом: что за зверь и как они его готовят

Reading time14 min
Views4.7K

Ссылка на первоисточник — здесь больше порядка с оформлением, особенно, для видеороликов.


Содержание



Es ist noch kein Meister vom Himmel gefallen,
или
Не боги горшки обжигают

Русско-немецкая народная пословица


Введение


Здесь мы расскажем о Центре робототехники и мехатроники (Robotics and Mechatronics Center, RMC) Национального центра авиации и космонавтики Германии. На языке оригинала всё это звучит вот так: Robotik und Mechatronik Zentrum (аббревиатура используется английская, RMC) и Deutsches Zentrum für Luft- und Raumfahrt (аббревиатура используется немецкая, DLR).


DLR RMC не настолько известен широкой публике, как, например, компания Boston Dynamics, о которой мы уже говорили ранее. Тем не менее, я уверен, что вы наверняка знаете разработки Центра, если хоть сколько-то интересуетесь робототехникой. В первой части мы рассказали о том, каким образом эти разработки связаны с космосом и о том, чем вообще RMC прославился в области робототехники. Здесь же слегка отдёрнем покрывало с интересного подхода к построению систем управления роботов, позволившего учёным и инженерам RMC добиться тех результатов, которые мы можем наблюдать сегодня. Он нашёл применение во многих проектах Центра, ставших широко известными не только в робототехнических кругах.


Речь об управлении механическим импедансом (impedance control).


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

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

Сравнение схем двух баз данных

Reading time3 min
Views11K

При разработке приложений иногда возникает потребность в сравнении двух баз данных (например prod и dev).

Существует ряд подходов для решения этого вопроса - от создания dump-файла со структурой db и последующим использованием diff, до использования специализированных платных решений типа dbForge или RedGate.

Одним из таких решений, сочетающих бесплатность и удобство использования, является Compalex.

Читать далее

Первая сотня российских электронных устройств

Reading time2 min
Views47K
В нашей стране разрабатывается и производится огромное количество электронных устройств и далеко не все они предназначены для военного применения и нефтегазовой отрасли. Российские компании выпускают тысячи устройств для личного использования, но об этом мало кто знает.

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

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

Пишем движок полнотекстового поиска на Go

Reading time8 min
Views20K
Полнотекстовый поиск — один из тех инструментов, которые мы используем практически каждый день, когда ищем какую-то информацию в интернете. Full-Text Search (FTS) — это метод поиска текста в коллекции документов. Документ может ссылаться на веб-страницу, газетную статью, сообщение электронной почты или любой структурированный текст.

Сегодня мы собираемся написать собственный движок FTS. К концу этой статьи он сможет выполнять поиск по миллионам документов менее чем за миллисекунду. Начнём с простых поисковых запросов, таких как «Выдать все документы со словом cat», а потом расширим движок для поддержки более сложных логических запросов.

Примечание: самым известным движком полнотекстового поиска является Lucene (а также Elasticsearch и Solr, построенные на его основе).
Читать дальше →

Код Рида-Соломона

Reading time17 min
Views36K

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

Так, например, для определенного Рида-Соломона кода (РС-кода) необходимо установить:

  • длину n кодового слова (блока);
  • количество k информационных и N-k проверочных символов;
  • неприводимый многочлен р(х), задающий конечное поле GF(2r);
  • примитивный элемент α конечного поля;
  • порождающий многочлен g(x);
  • параметр j кода;
  • используемое перемежение;
  • последовательность передачи кодовых слов или символов в канал и еще некоторые другие.

Здесь в работе рассматривается несколько другая частная задача — моделирование собственно РС-кода, являющаяся центральной основной частью названной выше задачи анализа кода.
Читать дальше →

Радик Ананян: «Вычислительную машину я не видел, пока мы не сделали ее сами»

Reading time11 min
Views6K


Радик Оганесович Ананян — один из первых сотрудников открывшегося в 1956 году Ереванского НИИ математических машин. В интервью музейному проекту DataArt он вспоминает, как работал новый институт, как создавались первые ЭВМ и как снимался короткометражный фильм «Короткое замыкание», выигравший первое место на кинофестивале в Москве.

На фото Радика Ананяна работники института с коллегами на демонстрации 1 мая 1960 года. Сам фильм «Короткое замыкание» и еще одна лента Радика Оганесовича — ниже в статье.

Операционные усилители: 10 схем на (почти) все случаи жизни

Reading time15 min
Views572K
Всем привет!

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


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

Эмулятор RFID

Reading time14 min
Views75K

Эмулятор карт EM Marine



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

Квадратичное финансирование

Reading time10 min
Views6.1K

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


Квадратичное финансирование (или CLR-финансирование) было предложено в 2018 году в работе Liberal Radicalism: A Flexible Design For Philanthropic Matching Funds как возможное решение перечисленных проблем финансирования общественных благ. Этот подход сочетает в себе преимущества рыночных механизмов и демократического управления, но при этом в меньшей степени подвержен их недостаткам.

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

Проект длиной в 8 лет — знал бы, ни за что не ввязался: свой 2-тактный мотор

Reading time8 min
Views120K
Когда-то давно я понял, что мне мотора Иж Планета не хватает и я решил радикально модифицировать его — сделать собственный цилиндр. По ходу сменился даже мотор. За его время я успел закончить школу, поступить в один вуз, вылететь и каким-то чудом перевестись в другой и отучиться там еще 5 лет и все равно я закончил и его уже два года назад. Знал бы я, что так оно растянется, наверное, не ввязался бы. Поскольку мы воспринимаем время относительно прожитого в сознательном возрасте, то для меня оно растянулось на половину прожитого времени.

Прошло уже 6 лет с момента выхода первой и последней заметки по этому проекту(Свой 2-тактный мотор. CR620 рекомендуется к ознакомлению). Тогда я остановился из-за проблем с аутсорсом в металлообработке. Кто не может, кто не хочет, кто делает бесконечно долго, кто и детали назад возвращать не хочет. А город в котором я живу имеет славную промышленную историю и был центром Петровской индустрии 18-века, но от славного прошлого ныне остался один корень в названии города и несколько действующих предприятий, на которых занято порядка единиц процентов населения. А сейчас не 90-е и даже не 00-е, когда можно было договорится с человеком с завода чтобы он что-то такое эдакое для тебя сделал. Теперь у них есть работа и КПП на входе, как я потом узнал — номинальное. Вся эта история с передачей деталей где они лежат, а не делаются, поиск новых мест и тому подобное блуждание длилась несколько лет. Оказалось, что отлить сложную алюминиевую отливку у сарая на родительской даче я смог, а обработать, что не выглядело проблемой изначально — нет.

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

Легенды и мемы ретрочатика

Reading time8 min
Views9.8K
Полтора года назад я прикрутил к своему каналу в Телеграмме чат, и тогда еще сомневался — стоит ли, и зачем? Получилось неплохо: без общения с коллегами по хобби, такими же собирателями старых устройств, было бы не так интересно. А подчас без подсказок со стороны более опытных ретроспециалистов я бы в принципе не смог решить какую-то проблему с очередной железкой. Сегодня необычная тема поста: про маленькие сообщества по интересам и локальные мемы: кодовые фразы, понятные только для своих. Вообще мы, кажется, переросли изначальную идею соцсетей, где все находятся на прямой связи со всеми. К ним (возможно только у меня) падает интерес, а движуха на специализированных форумах, в чатах Telegram, Whatsapp или на серверах Discord продолжается. Эта ситуация слегка напоминает мне Фидонет девяностых: когда для присоединения к разговору надо было добыть модем, освоить софт, да хотя бы знать, что это Фидо в принципе существует.


Сейчас происходит то же самое, только технологии другие. Большую часть информации о редких древних устройствах вы не найдете в «яндексе» или «гугле». Рано или поздно вы можете столкнуться с железкой, знаниями о которой в полной мере обладают сто человек по всему миру. Или десять. Но дело не только в этом: на основе общих интересов строится своя культура, создаются маленькие легенды и мифы отдельно взятого сообщества в сотню человек. Приведу несколько примеров, и заодно поделюсь своими мыслями о буднях коллекционера электроники. Краткое содержание: страдания и боль ретрофаната, определение дичи, феномен сендастовой головки и определение идеального устройства.

Предварительная обработка данных

Reading time6 min
Views29K

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


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

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

Почему оценка 4+ может оказаться плохой, а 3 хорошей?

Reading time16 min
Views4K


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

Я достаточно часто слышу вопрос о том, почему я предпочитаю работать не с «классической» оценкой (1-5) или (0-100), а с целым набором (знания-умения-навыки), а еще обязательно использую степень переноса навыков на условия работы персонала.

Почему? Ответа будет два — один простой, другой подробный.

Простой:

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

По результату обучения оператор получает «4+», а уборщица получает «4». Можно сделать вывод что оператор прошел обучение лучше. Если говорить только в терминах «педагогической шкалы» 1-5, то так оно и есть.

Почему это плохо?

Получается что оба где-то ошиблись? Причем оператор ошибся на 0,5, а уборщица на 1. А теперь зададим вопрос — «а к чему могут привести ошибки, которые стоят за этой единицей и 0,5 на реальном производстве»? Уборщица забудет поставить знак «осторожно, мокрый пол», кто-то с какой-то вероятностью подскользнется и с какой-то вероятностью получит травмы… Допустим.

А что с оператором, с какой-то вероятностью он не сумеет (например) выполнить верные действия в случае возникновения аварийной ситуации и с некоторой вероятностью весь объект, например, взлетит на воздух. Что скрывает его «недополученная» половинка единица?
Получается 4+ у оператора «смотрятся» хуже чем 4 или даже 3 у уборщицы.

Вот по этой причине я стараюсь никогда не использовать классическую шкалу оценок при создании и эксплуатации тренажеров.
Читать дальше →

Как я делал себе АВР для генератора

Reading time18 min
Views88K


Несколько лет назад делал себе АВР (автоматический ввод резерва) для работы на даче от генератора. Сейчас многие ИТ-шники переходят на удалёнку, работают с дач, где качество электропитания может оставлять лучшего. Поэтому решил написать о своем опыте самодельного АВР на микроконтроллере ATmega8A. Если тема интересна, добро пожаловать под кат, будет много букв и кода.
Жми сюда

10 советов схемотехнику

Reading time20 min
Views129K
Недавно один мой знакомый, начавший интересоваться электроникой и схемотехникой, обратился ко мне с просьбой дать ему какие-то практические советы по разработке электронных устройств. Поначалу этот вопрос немного озадачил меня: как-то так получилось, что для себя я никогда не выделял какие-то перечни обязательных правил проектирования, всё это было у меня где-то на уровне подсознания. Но этот вопрос послужил хорошим толчком для того, чтобы сесть и сформулировать хотя бы небольшой список таких рекомендаций. Когда все было готово, я подумал, что, возможно, это будет интересно почитать кому-то еще, таким образом и получилась данная статья.


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

23 непростых вопроса для JavaScript-собеседования

Reading time15 min
Views71K
Хотите подготовиться к собеседованию по JavaScript и ищете вопросы, на которых можно попрактиковаться? Если так — считайте, что ваши поиски окончены. Автор материала, перевод которого мы сегодня публикуем, говорит, что собрал более двух десятков вопросов по JavaScript, предназначенных для тех, кто хочет превратиться из джуниора в сеньора, для тех, кто стремится успешно пройти собеседование в сфере фронтенд-разработки и получить интересное предложение от работодателя.


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

Information

Rating
10,553-rd
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity