Search
Write a publication
Pull to refresh
0
0
Vadim Toptunov @g0rd1as

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

Send message

Темное искусство воскрешения: как восстанавливают данные с поврежденных носителей

Reading time8 min
Views73K

(с)

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

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

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

Сравнение скриптов для сбора информации о поддоменах

Reading time2 min
Views7.3K

Всем привет!


Хочу поднять тему сбора поддоменов в рамках OSINT. Существует довольно большое количество тулзов для автоматизации этой задачи. Расскажу о тех с которыми сталкивался я. В качестве целевого домена использован group-ib.ru.

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

Оптимизация энергопотребления STM32: практическое руководство

Reading time19 min
Views59K
Привет, Хабр!

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

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

Восполнять данный пробел мы будем на примере STM32L1 — контроллера весьма популярного, достаточно экономичного и при этом имеющего некоторые специфические именно для этой серии проблемы. Практически всё сказанное будет также относиться к STM32L0 и STM32L4, ну и в части общих проблем и подходов — к другим контроллерам на ядрах Cortex-M.



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

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

Reading time22 min
Views45K


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

Размышляя о судьбе ненужных вещей, я прикидывал, что с ними делать: выкинуть, порезать на тряпки, отдать донашивать младшему брату? Но для одной вещи ни один из этих способов не годился: то были кожаные сапоги 44 размера приличного вида, но порядком мне надоевшие. Их я решил продать на Avito. Загрузил фотографии, указал ненастоящее имя (информационная безопасность же), выставил сапоги, пару других вещей и пошёл спать. Откуда мне было знать, что это обернётся длительным анализом приложения на предмет скрытых угроз?
Читать дальше →

Что мы узнали о безопасности Intel ME за последние годы: 7 фактов о таинственной подсистеме

Reading time6 min
Views24K


Изображение: Unsplash

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

Мы изучаем Intel ME на протяжение последних лет, и вот что нам удалось узнать об этой таинственной подсистеме к этому моменту.
Читать дальше →

Программистом к ирландским букмекерам

Reading time40 min
Views39K

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


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


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


image


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


Подробности ниже.

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

Снова про собеседования, но в заморских странах

Reading time7 min
Views16K

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

И что же?

Руководство по JavaScript, часть 1: первая программа, особенности языка, стандарты

Reading time8 min
Views314K
Недавно мы провели опрос, посвящённый целесообразности перевода этого руководства по JavaScript. Как оказалось, около 90% проголосовавших отнеслись к данной идее положительно. Поэтому сегодня публикуем первую часть перевода.



Это руководство, по замыслу автора, рассчитано на тех, кто уже немного знаком JavaScript и хочет привести свои знания в порядок а также узнать о языке что-то новое. Мы решили немного расширить аудиторию этого материала, включить в неё тех, кто совершенно ничего не знает о JS, и начать его с написания нескольких вариантов «Hello, world!».

Часть 1: первая программа, особенности языка, стандарты
Часть 2: стиль кода и структура программ
Часть 3: переменные, типы данных, выражения, объекты
Часть 4: функции
Часть 5: массивы и циклы
Часть 6: исключения, точка с запятой, шаблонные литералы
Часть 7: строгий режим, ключевое слово this, события, модули, математические вычисления
Часть 8: обзор возможностей стандарта ES6
Часть 9: обзор возможностей стандартов ES7, ES8 и ES9

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

Как проходить кибер испытания на «Checkpoint» 2 часть

Reading time6 min
Views3K
Привет всем, я Никита Куртин, куратор израильской высшей школы IT и безопасности HackerU.

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

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

Задачи поделили на шесть категорий:

• Logic
• Web
• Programming
• Networking
• Reversing
• Surprise

По две задачки на каждое направление. Как я уже писал, Checkpoint до этого уже успел завоевать уважение и интерес с мой стороны, поэтому я решил принять эти вызовы. Однако ввиду занятости, смог позволить себе взяться лишь за 8 из 12 заданий (из четырёх разных категорий). И решить мне удалось 7 из них.

И так:

Челлендж: «Пазл»

Описание:

Наконец-то мы тебя нашли!
Читать дальше →

Как проходить кибер испытания на «Checkpoint»

Reading time5 min
Views3.9K
Привет всем, я Никита Куртин, куратор израильской высшей школы IT и безопасности HackerU

Этим летом ведущая израильская компания в области информационной безопасности Checkpoint, опубликовала серию кибер испытаний.

Задачи поделили на шесть категорий:

• Logic
• Web
• Programming
• Networking
• Reversing
• Surprise

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

Checkpoint до этого уже успел завоевать уважение и интерес с мой стороны, поэтому я решил принять эти вызовы. Однако ввиду занятости, смог позволить себе взяться лишь за 8 из 12 заданий (из четырёх разных категорий). И решить мне удалось 7 из них.

Челлендж официально завершился к концу сентября 2018-го.

image

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

• Логический челлендж «PNG++»
• Web челлендж «Роботы возвращаются»
• Web челлендж «Галерея Диего»
• Задача на программирование «Осторожные шаги»
• Задача на программирование «Пазл»
• Нетворкинг челлендж «Пинг Понг»
• Нетворкинг челлендж «Протокол»

Челлендж: PNG++

Описание:

Это (ссылка на зашифрованный файл PNG) изображение было закодировано с использованием пользовательского шифра.

Нам удалось считать большую часть этого кода здесь (ссылка на python код).
К несчастью, кто-то нерасторопный пролил кофе на весь key_transformator.py.
Читать дальше →

Как составить стратегию тестирования: версия настоящих инженеров

Reading time10 min
Views118K
Без стратегии тестирования можно наверняка обойтись, если есть бесконечное количество квалифицированных сотрудников, времени и денег. Словом, возможность пилить один релиз годами. В таких гипотетических идеальных условиях никакая стратегия не нужна, потому что вы можете тестировать ваш продукт всеми существующими способами как угодно долго, применяя техники в любом порядке, на несколько кругов, и рано или поздно каким-то путем вы придете к production ready качеству.

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

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


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

Whois: практическое руководство пользователя

Reading time32 min
Views178K
Статья рассказывает о работе whois протокола, о существующих клиентских решениях и об особенностях коммуникации с различными whois серверами (а также о выборе правильного whois сервера). Ее основная задача — помочь в написании скриптов для получения whois информации для IP адресов и доменов.

Что такое whois?


Что такое и для чего нужен whois можно прочитать, например, здесь: http://en.wikipedia.org/wiki/Whois.

В нескольких словах, whois (от английского «who is» — «кто такой») – сетевой протокол, базирующийся на протоколе TCP. Его основное предназначение – получение в текстовом виде регистрационных данных о владельцах IP адресов и доменных имен (главным образом, их контактной информации). Запись о домене обычно содержит имя и контактную информацию «регистранта» (владельца домена) и «регистратора» (организации, которая домен зарегистрировала), имена DNS серверов, дату регистрации и дату истечения срока ее действия. Записи об IP адресах сгруппированы по диапазонам (например, 8.8.8.0 — 8.8.8.255) и содержат данные об организации, которой этот диапазон делегирован.

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

The Kernel-Bridge Framework: мостик в Ring0

Reading time7 min
Views9.7K
Хотели ли Вы когда-нибудь заглянуть под капот операционной системы, посмотреть на внутреннее устройство её механизмов, покрутить винтики и посмотреть на открывшиеся возможности? Возможно, даже хотели поработать напрямую с железом, но считали, что драйвера — rocketscience?

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

Итак, представляю драйвер-фреймворк для kernel-хакинга, написанный на C++17, и призванный, по возможности, снять барьеры между ядром и юзермодом или максимально сгладить их присутствие. А также, набор юзермодных и ядерных API и обёрток для быстрой и удобной разработки в Ring0 как для новичков, так и для продвинутых программистов.

Основные возможности:

  • Доступ к портам ввода-вывода, а также проброс инструкций in, out, cli и sti в юзермод через IOPL
  • Обёртки над системной пищалкой
  • Доступ к MSR (Model-Specific Registers)
  • Набор функций для доступа к юзермодной памяти других процессов и к памяти ядра
  • Работа с физической памятью, DMI/SMBIOS
  • Создание юзермодных и ядерных потоков, доставка APC
  • Юзермодные Ob*** и Ps***-каллбэки и фильтры файловой системы
  • Загрузка неподписанных драйверов и ядерных библиотек

… и многое другое.
Читать дальше →

Тестирование белого ящика

Reading time19 min
Views42K

Разработка программ высокого качества подразумевает, что программа и её части подвергаются тестированию. Классическое модульное (unit) тестирование подразумевает разбиение большой программы на маленькие блоки, удобные для тестов. Либо, если разработка тестов происходит параллельно с разработкой кода или тесты разрабатываются до программы (TDD — test driven development), то программа изначально разрабатыватся небольшими блоками, подходящими под требования тестов.


Одной из разновидностей модульного тестирования можно считать propery-based testing (такой подход реализован, например, в библиотеках QuickCheck, ScalaCheck). Этот подход основан на нахождении универсальных свойств, которые должны быть справедливы для любых входных данных. Например, сериализация с последующей десериализацией должна давать такой же объект. Или, повторная сортировка не должна менять порядок элементов в списке. Для проверки таких универсальных свойств в вышеупомянутых библиотеках поддерживается механизм генерации случайных входных данных. Особенно хорошо такой подход работает для программ, основанных на математических законах, которые служат универсальными свойствами, справедливыми для широкого класса программ. Есть даже библиотека готовых математических свойств — discipline — позволяющая проверить выполнение этих свойств в новых программах (хороший пример повторного использования тестов).


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


Под катом описаны несколько подходов к тестированию сложных программ с одним входом с разной степенью сложности (вовлеченности) и разной степенью покрытия.

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

Обратной дороги нет: личный опыт тестировщика

Reading time7 min
Views44K
Хочу рассказать о работе тестировщика с нетипичного ракурса, который вряд ли покажут в учебных заведениях или профессиональной литературе. Становясь профессионалом в этой области, ты неизбежно начинаешь жить концепциями, заложенными в саму основу тестирования. И это очень по-разному отражается на обустройстве жизни. О том, как именно это происходит у меня, под катом.

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

Основы электробезопасности при проектировании электронных устройств

Reading time12 min
Views72K
Привет, Хабр!

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


Тема это большая и сложная, но я постараюсь выделить основные моменты — не в последнюю очередь на основании ошибок, которые я видел во всевозможных реальных устройствах и проектах, в том числе публиковавшихся на Хабре. Я не буду долго и нудно перечислять ГОСТы, но перечислю совсем базовые вещи, которые необходимо понимать и соблюдать, чтобы не убить хотя бы себя (если вы планируете не убивать также и окружающих, то после завершения этой статьи не поленитесь пролистать и релевантные ГОСТы).

Итак, вы собрались делать устройство, которое как минимум одним своим концом включается в розетку.
Читать дальше →

Загрузка ядра Linux. Часть 1

Reading time12 min
Views63K
От загрузчика к ядру

Если вы читали предыдущие статьи, то знаете о моём новом увлечении низкоуровневым программированием. Я написал несколько статей о программировании на ассемблере для x86_64 Linux и в то же время начал погружаться в исходный код ядра Linux.

Мне очень интересно разобраться, как работают низкоуровневые штуки: как программы запускаются на моём компьютере, как они расположены в памяти, как ядро управляет процессами и памятью, как работает сетевой стек на низком уровне и многое другое. Итак, я решил написать еще одну серию статей о ядре Linux для архитектуры x86_64.

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

Скрипт сборщика цитат и распознания текста из видео на Python

Reading time6 min
Views18K
Пост о скрипте, который скачивает видео с youtube и распознает в нем текст. Начать решил сразу с практической реализации. «Vdudictionary» — Скрипт сборщика сборника цитат героев «Вдудь» на Python. Юрий Дудь и его проект «Вдудь» не нуждается в представлении. Самые горячие интервью, которые интересно смотреть. Юрий Александрович умеет сделать интересное шоу, независимо от того, знаете ли Вы героя конкретного выпуска, являетесь его фанатом или впервые слышите это имя.

Сколько у Вас см? Что Вы скажете Путину? Слушаете ли Вы OXY?


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

Естественно человеку, пусть и не обремененного специфическим IT бэкграудом, не надлежит руками собирать эти изречения. Для этого я набросал скрипт на python.


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

Как написать сканер уязвимостей и зарабатывать на эксплойтах

Reading time8 min
Views18K

TLDR: О том как я уволился с работы безопасника и написал свой сканер уязвимостей.
И как на этом можно заработать. В конце куски кода сканера и спецификация.


Кто и что взламывает


В 1970х, давным-давно, интернет выглядел вот так.



Основную угрозу ему представляли исследователи и энтузиасты первыми добравшиеся до документации и сетей крупных корпораций.


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

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

Памятка по разновидностям фишинга

Reading time2 min
Views32K

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


Вот памятка:



A теперь пояснения, почему фишинг всё ещё актуален, и почему он останется таковым и в будущем.

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

Information

Rating
Does not participate
Location
Нижний Новгород, Нижегородская обл., Россия
Date of birth
Registered
Activity