Pull to refresh
10
0

Pentester

Send message

Как работает yield

Reading time6 min
Views694K
На StackOverflow часто задают вопросы, подробно освещённые в документации. Ценность их в том, что на некоторые из них кто-нибудь даёт ответ, обладающий гораздо большей степенью ясности и наглядности, чем может себе позволить документация. Этот — один из них.

Вот исходный вопрос:
Как используется ключевое слово yield в Python? Что оно делает?

Например, я пытаюсь понять этот код (**):
def _get_child_candidates(self, distance, min_dist, max_dist):
    if self._leftchild and distance - max_dist < self._median:
        yield self._leftchild
    if self._rightchild and distance + max_dist >= self._median:
        yield self._rightchild

Вызывается он так:
result, candidates = list(), [self]
while candidates:
    node = candidates.pop()
    distance = node._get_dist(obj)
    if distance <= max_dist and distance >= min_dist:
        result.extend(node._values)
        candidates.extend(node._get_child_candidates(distance, min_dist, max_dist))
        return result


Что происходит при вызове метода _get_child_candidates? Возвращается список, какой-то элемент? Вызывается ли он снова? Когда последующие вызовы прекращаются?

** Код принадлежит Jochen Schulz (jrschulz), который написал отличную Python-библиотеку для метрических пространств. Вот ссылка на исходники: http://well-adjusted.de/~jrschulz/mspace/

Подробный и обстоятельный ответ
Total votes 141: ↑136 and ↓5+131
Comments41

Spectre и Meltdown больше не самые опасные атаки на CPU Intel. Исследователи сообщили об уязвимости Foreshadow

Reading time3 min
Views66K


В начале этого года информационное пространство потрясли новости о Spectre и Meltdown — двух уязвимостях, использующих спекулятивное исполнение кода для получения доступа к памяти (статьи и переводы на эту тему на Хабре: 0, 1, 2, 3, 4, 5, 6, 7, 8 и в поиске можно найти еще десяток других). Примерно в тоже время, когда техническое сообщество активно обсуждало снижение производительности процессоров Intel и проблемы архитектуры современных процессоров в целом, которые и позволяют эксплуатацию подобных дыр, две группы исследователей независимо друг от друга стали внимательнее исследовать вопрос спекулятивного исполнения кода на процессорах Intel.

Как итог, обе группы пришли к тому, что использование этого вектора атаки позволяет не только получить доступ к кэшу процессора, но и считывать/изменять содержимое защищенных областей Intel SGX (1, 2), в расшифровке — Intel Software Guard Extensions. Таким образом еще более серьезной атаке подвержены новейшие чипы от Intel на архитектурах Sky Lake (шестое поколение) и Kaby Lake (седьмое и восьмое поколение). И все было бы не так печально, если бы SGX использовалась только системой, но к этим областям обращаются и пользовательские приложения.
Total votes 92: ↑90 and ↓2+88
Comments214

История одного вскрытия: как мы ревёрсили Hancitor

Reading time7 min
Views7.1K


Для тех, кто уже наигрался с задачками crackme, мы подвезли свежего троянца. В дикой природе загрузчик Hancitor еще встречается в своей естественной среде обитания — спам-рассылках. В настоящее время он активно используется для прогрузки банковского трояна Panda, который является модификацией небезызвестного Zeus.

В один холодный летний вечер мы встретились с ним лицом к лицу, просматривая почтовый спам. Если любите смотреть, что там у вредоносов «под капотом», почитайте наш новый реверс-разбор.
Читать дальше →
Total votes 30: ↑30 and ↓0+30
Comments8

Trojan-Downloader.Win32.Cabby.cemx — Часть первая — Распаковка

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

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

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

Сразу предупрежу, будет много картинок и листингов дизассемблированного кода.

Готов к конструктивной критике и буду рад вашим советам по оптимизации моих мыслей.

В недалеком прошлом в нашу компанию проник нашумевший CTB-Locker, что заинтересовало нашу службу информационной безопасности: почему не сработали антивирусы и фильтрация веб-трафика? Что конкретно делает данный зловред, хорошо описано на securelist. С этим все ясно и не имеет смысла проводить повторный анализ того, что и так неплохо описано.

С целью понимания причин инцидента рассмотрим именно вектор распространения данного зловреда.
Читать дальше →
Total votes 32: ↑31 and ↓1+30
Comments17

Услуги хакеров в темном интернете

Reading time5 min
Views68K

Предисловие


За последние годы роль хакеров изменилась, в прошлом эти профессионалы рассматривались как опасные преступники, которых нужно было держать на расстоянии вытянутой руки; между тем сегодня они пользуются большим спросом у частных компаний, спецслужб и преступных группировок.
Читать дальше →
Total votes 14: ↑9 and ↓5+4
Comments10

Разбор протокола World Of Tanks

Reading time8 min
Views116K
Часть первая: инструментарий мелкосерийного изобретения велосипедов

Почему и зачем: длинная и необязательная преамбула

Хорошо, что опыта игрового модостроительства у меня было немного — так, пару кастомных прицелов для Deer Hunter 2005 и «нелицензионный» недоклиент VATSIM/FSD с сопутствущим «взломом» протокола последнего. Ещё лучше, что ни разу не приходилось с головой погружаться в сколь-нибудь трудоёмкую и длительную отладку и дизассемблирование. То есть, с IDA и OllyDBG я поверхностно знаком, но не как с ежедневными рабочими инструментами.

В WOT играю с начала 2011 года. Не запоем, а, скорее, набегами — по 5-6 боёв вечером. Было время 2 года назад, наш клан состоял в Красном Альянсе, ходил на глобалку по ночам, выполнял какие-то тактические задачи на европейском ТВД, устраивал тренировки и спарринги, вовсю бурлили внутриигровые политические страсти, отпочковывались учебные кланы. Сейчас всего этого уже нет, и наш золотой ёжик превратился в табличку над «Домом Ветеранов».

Впадать в ересь сравнения танков с другими MMO не буду, так как хорошо знаком только с танками. Тем более не знаком ни с одним другим проектом, использующим BigWorld, поэтому искренне верю WarGaming'у на слово, что существуют и (не)тривиально (не)преодолеваются различные техномагические ограничения движка — на размер карты, на максимальную скорость юнита, на численность команд и прочее. Оставаясь в рамках внутренней критики, я также понимаю, что, с точки зрения целевой аудитории танков вообще, и их активного игрового коммьюнити в частности, каждое нововведение из очередного патча, безусловно, гораздо более востребовано и обосновано, сколь бы малым оно ни было. И что оптимизировать Motion Blur на несколько процентов это, безусловно, важнее, чем отменить принципиальную неизменяемость привязки действий на кнопки мыши для тех, кто привык на них ставить движение вперёд-назад (DOOM-стайл, да).

Итак, я уверен, что в обозримом будущем никаких планов по введению полноценного режима спектатора в WOT нет и не будет. Под полноценным режимом спектатора я понимаю множественные подключения игроков в сеанс боя изначально как невзаимодействующих на игру «привидений»-наблюдателей, а не на технике. Это тот самый режим, из-за отсутствия которого комментаторы на чемпионатах WOT вынуждены заходить в бой 15-м танком, убиваемым своими на базе. Это тот самый режим, из-за которого появились моды «командирского zoom» и «кинематографической камеры» — по сути, просто костыли. А нужен такой режим затем, чтобы командир роты занимался командованием, а не скакал впереди на лихом танке по-чапаевски, чтобы он видел ситуацию на карте в целом непрерывно, а не отвлекался на неё в пылу нападения из засады. В идеале, командиру даже не нужны красоты трёхмерного мира — достаточно одной большой карты на весь монитор с игровой ситуацией в реальном времени — HP, повреждениями модулей, членов экипажа, направлениями стволов и прицелов союзной техники, засвеченных в каждый момент вражеских юнитов и прочей вспомогательной информации.

WOT предоставляет широкие возможности модостроительства, но такая идея выходит за рамки классического «заменить пару swf-файлов на свои». Потребуется перехват и разбор самого игрового протокола для того, чтобы иметь возможность передать на командирский планшет своё видение игровой ситуации.
Читать дальше →
Total votes 173: ↑167 and ↓6+161
Comments90

Избранное: ссылки по reverse engineering

Reading time10 min
Views72K


Всем привет!


Сегодня мы хотели бы поделиться своим списком материалов по тематике reverse engineering (RE). Перечень этот очень обширный, ведь наш исследовательский отдел в первую очередь занимается задачами RE. На наш взгляд, подборка материалов по теме хороша для старта, при этом она может быть актуальной в течение продолжительного времени.


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


Забавный факт: нам показывали, как некоторые компании рассылают наш список материалов от себя, но только в очень старой редакции. И вот после этой публикации они, наконец, смогут использовать его обновленную версию с чистой совестью ;)


Итак, перейдем к списку материалов!

Читать дальше →
Total votes 37: ↑36 and ↓1+35
Comments15

Как устроены дыры в безопасности: переполнение буфера

Reading time29 min
Views134K
Прим. переводчика: Это перевод статьи Питера Брайта (Peter Bright) «How security flaws work: The buffer overflow» о том, как работает переполнение буфера и как развивались уязвимости и методы защиты.

Беря своё начало с Червя Морриса (Morris Worm) 1988 года, эта проблема поразила всех, и Linux, и Windows.



Переполнение буфера (buffer overflow) давно известно в области компьютерной безопасности. Даже первый само-распространяющийся Интернет-червь — Червь Морриса 1988 года — использовал переполнение буфера в Unix-демоне finger для распространения между машинами. Двадцать семь лет спустя, переполнение буфера остаётся источником проблем. Разработчики Windows изменили свой подход к безопасности после двух основанных на переполнении буфера эксплойтов в начале двухтысячных. А обнаруженное в мае сего года переполнение буфера в Linux драйвере (потенциально) подставляет под удар миллионы домашних и SMB маршрутизаторов.

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

На поверхности, это выглядит как весьма глупая ошибка. В конце концов, программа знает размер буфера, а значит, должно быть несложно удостоверится, что программа никогда не попытается положить в буфер больше, чем известный размер. И вы были бы правы, рассуждая таким образом. Однако переполнения буфера продолжают происходить, а результаты часто представляют собой катастрофу для безопасности.
Читать дальше →
Total votes 48: ↑47 and ↓1+46
Comments29

VulnHub Разбор HackDay: Albania

Reading time4 min
Views11K
Продолжаем разбор лаб с VulnHub. На этот раз займемся HackDay: Albania. К образу имеется следующее описание, из которого видно, что это таск с HackDay Albania's 2016 CTF
This was used in HackDay Albania's 2016 CTF.
The level is beginner to intermediate.
It uses DHCP.
Note: VMware users may have issues with the network interface doing down by default. We recommend (for once!) using Virtualbox.

Таск как и прошлый рассчитан на новичков. Поэтому в некоторые моменты в статье будут рассмотрены более подробно.
Читать дальше →
Total votes 30: ↑23 and ↓7+16
Comments0

Роутеры NetGear подвержены серьезной уязвимости

Reading time2 min
Views7.8K
В некоторых моделях роутеров NetGear была обнаружена серьезная узвимость, которая позволяет злоумышленникам удаленно исполнять команды Linux на устройствах. Для эксплуатации уязвимости злоумышленники могут использовать специальным образом сформированный запрос к роутеру и отправить его через заранее подготовленную веб-страницу.


NETGEAR has recently become aware of the security issue #582384 that allows unauthenticated web pages to pass form input directly to the command-line interface. A remote attacker can potentially inject arbitrary commands which are then executed by the system.

Читать дальше →
Total votes 19: ↑16 and ↓3+13
Comments4

Немного о квантовой криптографии

Reading time4 min
Views16K
Квантовые компьютеры и связанные с ними технологии в последнее время становятся все актуальнее. Исследования в этой области не прекращаются вот уже десятилетия, и ряд революционных достижений налицо. Квантовая криптография — одно из них.
Владимир Красавин «Квантовая криптография»

Данная статья является прологом к циклу статей и переводов по теме Квантовая криптография.

Действительно в последнее время все чаще мы слышим такие понятия как «Квантовый компьютер», «Квантовые вычисления» и конечно же «Квантовая криптография».

И если с первыми двумя понятиями в принципе всё понятно, то «Квантовая криптография» — понятие, которое хоть и имеет точную формулировку, до сих пор остается для большинства людей темным и не совсем понятным этакий Ёжик в тумане.
Читать дальше →
Total votes 23: ↑18 and ↓5+13
Comments4

Объясняем бабушке: Как зашифроваться за час

Reading time5 min
Views27K
«Выживают только параноики».
— Энди Гроув

image

Энди Гроув был венгерским беженцем, который сбежал от коммунистов, изучал инженерное дело, и в конечном итоге возглавил революцию компьютеров в качестве генерального директора Intel. Он умер в начале этого года в Силиконовой долине после долгой борьбы с болезнью Паркинсона.

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

Вынужден предупредить, что Гроув не единственный влиятельный человек, который призывает к этому. Даже директор ФБР — тот же человек, который недавно заплатил хакерам миллион долларов, чтобы разблокировать iPhone террориста — настоятельно рекомендует всем скрывать свои веб-камеры.

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

«Если кто-то даст мне шесть строк написанных самым честным человеком, я найду то, за что его можно повесить.»
— кардинал Ришелье в 1641.

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

Читать дальше →
Total votes 38: ↑27 and ↓11+16
Comments87

Основы компьютерных сетей. Тема №4. Сетевые устройства и виды применяемых кабелей

Reading time26 min
Views285K


Приветствую всех! Добрались мы до 4-ой темы. Поговорим сегодня про различные сетевые устройства и применяемые кабели. Узнаем, чем отличается коммутатор от маршрутизатора, что такое концентратор и многое другое. Приглашаю заинтересовавшихся под кат.
Читать дальше →
Total votes 35: ↑32 and ↓3+29
Comments46

Модуляция радиосигнала

Reading time4 min
Views117K
image В комментариях к статье «Критерии качества сигнала в сетях WiMax» zlyoha посетовал на отсутствие статей описывающей физическую сторону передачи информации по радио каналу.
Мы решили исправить это упущение и написать цикл постов о беспроводной передаче данных.
В первом из них мы расскажем о главном аспекте передачи информации посредством радиосигнала – модуляции.

Читать дальше →
Total votes 104: ↑99 and ↓5+94
Comments37

Математика для искусственных нейронных сетей для новичков, часть 1 — линейная регрессия

Reading time8 min
Views153K
Оглавление

Часть 1 — линейная регрессия
Часть 2 — градиентный спуск
Часть 3 — градиентный спуск продолжение

Введение


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

Цикл рассчитан на базовый ВУЗовский математический уровень читающего. Код будет написан на Python3.5 с numpy 1.11. Список остальных вспомогательных библиотек будет в конце каждого поста. Абсолютно все будет написано с нуля. В качестве подопытного выбрана база MNIST — это черно-белые, центрированные изображения рукописных цифр размером 28*28 пикселей. По-умолчанию, 60000 изображений отмечены для обучения, а 10000 для тестирования. В примерах я не буду изменять распределения по-умолчанию.
Читать дальше →
Total votes 54: ↑47 and ↓7+40
Comments43

Создание высокочувствительной направленной антенны с ФАР или почему специалисты уезжают за рубеж

Reading time5 min
Views18K
Спешу развеять возможный скепсис по поводу разведения «соплей» о тяжестях новаторов в России. Речь пойдет именно о замечательной и передовой технологии.

Читать дальше →
Total votes 33: ↑23 and ↓10+13
Comments28

Теория радиоволн: антенны

Reading time4 min
Views412K
image

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

Читать дальше →
Total votes 104: ↑99 and ↓5+94
Comments45

Спектральный анализ сигналов

Reading time8 min
Views286K
image

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

Под катом краткий обзор метода выделения гармоник из произвольного сигнала с помощью цифрового гетеродинирования, и немного особой, Фурье-магии.
Читать дальше →
Total votes 56: ↑52 and ↓4+48
Comments22

Фурье-вычисления для сравнения изображений

Reading time10 min
Views63K
Традиционная техника “начального уровня”, сравнения текущего изображения с эталоном основывается на рассмотрении изображений как двумерных функций яркости (дискретных двумерных матриц интенсивности). При этом измеряется либо расстояние между изображениями, либо мера их близости.

Как правило, для вычисления расстояний между изображениями используется формула, являющаяся суммой модулей или квадратов разностей интенсивности:
d(X,Y) = SUM ( X[i,j] — Y[i,j] )^2

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

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

Наличие большого числа библиотек, реализующих Фурье преобразований (во всевозможных вариантах быстрых версий), делает реализацию алгоритмов сравнения изображений не очень сложной задачей для программирования.
Читать дальше →
Total votes 36: ↑34 and ↓2+32
Comments47
1

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity