Как стать автором
Обновить
69
0
Сергей Белов @kaimi_ru

Эксперт по информационной безопасности

Отправить сообщение

Точки соприкосновения JavaScript и Reverse Engineering

Время на прочтение8 мин
Количество просмотров25K


Если вы посмотрите описания вакансий на позицию Reverse Engineer, то вряд ли встретите там требование знания JavaScript. А если и встретите, то только в контексте его деобфускации на разных вредоносных страницах, обычно используемых эксплойт-паками.
И возможно ли вообще сосуществование JS (который некоторые даже называют веб-ассемблером) и мира low level с Assembler во главе?

Читать дальше →
Всего голосов 36: ↑36 и ↓0+36
Комментарии4

Восстанавливаем локальные и доменные пароли из hiberfil.sys

Время на прочтение2 мин
Количество просмотров112K
Утилита mimikatz, позволяющая извлекать учётные данные Windows из LSA в открытом виде, существует с 2012 года, однако помимо хорошо освещённого функционала восстановления паролей из памяти работающей ОС у неё есть ещё одна довольно интересная возможность. Далее я приведу пошаговую инструкцию, как при помощи нехитрых действий извлечь учётные данные из файла hiberfil.sys.

Подготовка


Для осуществления задуманного нам понадобятся следующие утилиты:
Читать дальше →
Всего голосов 74: ↑73 и ↓1+72
Комментарии60

Бесплатные SSL-сертификаты на 2 года с поддержкой до 100 доменов

Время на прочтение1 мин
Количество просмотров124K
Интернет на волне всеобщей прослушки и связанной с этим паранойи постепенно переходит на тотальный SSL. К сожалению, пока это сделать не очень просто и обычно не бесплатно. Из бесплатных сервисов годные сертификаты, поддерживаемые всеми браузерами, предоставляет сервис StartSSL. В середине 2015 года при поддержке Mozilla, Cisco и других уважаемых организаций будет организована раздача бесплатных сертификатов в автоматическом режиме.
Читать дальше →
Всего голосов 39: ↑34 и ↓5+29
Комментарии127

Встраиваем бэкдор в публичный ключ RSA

Время на прочтение4 мин
Количество просмотров112K

Привет, %username%!
Когда я увидел, как это работает, сказать, что я был в шоке — ничего не сказать. Это довольно простой трюк но после прочтения этой статьи вы больше никогда не будете смотреть на RSA по-прежнему. Это не взлом RSA, это нечто, что заставит вашу паранойю очень сильно разбухнуть.
Читать дальше →
Всего голосов 135: ↑125 и ↓10+115
Комментарии75

Поговорим про… фонарики?

Время на прочтение5 мин
Количество просмотров370K
Приветствую, %username%!
Это небольшой ликбез на тему сегодняшнего состояния отрасли портативного освещения.
Disclaimer
К показанным фонарям и остальному железу я отношения не имею. Их рекламой данный пост не является.

Поехали, начнем с современных светодиодов
Читать дальше →
Всего голосов 167: ↑159 и ↓8+151
Комментарии156

Tool-assisted speedrunning

Время на прочтение5 мин
Количество просмотров26K
Много в наши дни существует игрушек — и 3D, и 2D; и браузерные, и standalone; под Windows и под UNIX. Все их объединяет одно — запускаются они на компьютере. Но ещё совсем недавно, в 90-е годы XX века, самыми популярными, несомненно, были приставочные игры. Игровые приставки были наверняка почти у всех, чьё детство пришлось на тот период времени.

Казалось бы, эти примитивные игры давно уже отжили свой век. И так оно и было бы, если бы однажды не родилось такое явление как TASинг. Аббревиатура TAS означает «Tool-assisted Speedrun» и по сути под ней скрывается давнее развлечение — прохождение игр на скорость. Однако, если традиционный спидраннинг подразумевает игру в реальном режиме времени и наличие огромного игрового опыта, то при TASинге определяющими факторами становятся терпение, понимание принципов функционирования игр и наличие достаточного количества свободного времени.
Читать дальше →
Всего голосов 30: ↑30 и ↓0+30
Комментарии7

Примеры поиска в Shodan

Время на прочтение3 мин
Количество просмотров302K
Эта статья предназначена для тех, кто либо вовсе не слышал о Shodan, либо слышал, но так и не понял, как им пользоваться. Подобных материалов на русском языке я не нашел, часть информации почерпнул тут, остальное добавил из личного опыта. Я приведу примеры использования «самого страшного поисковика интернета» по имени Shodan. Сервис разработан web-девелопером Джоном Мазерли (John Matherly) и ориентирован, прежде всего, на поиск устройств подключенных к интернету.

Shodan опрашивает порты устройств и на основе полученных ответных баннеров делает выводы об устройствах и сервисах. Поисковик платный, годовая подписка обойдется в 20$, однако, попробовать его в действии можно и за так: после бесплатной регистрации доступно 50 результатов поиска. Историю создания и биографию автора найдете сами, если будет интересно, а пока перейдем к делу:
Читать дальше →
Всего голосов 30: ↑28 и ↓2+26
Комментарии9

Лучшие свободные моноширинные шрифты с поддержкой кириллицы

Время на прочтение2 мин
Количество просмотров166K


В 2011 году была переведена хорошая статья „Лучшие шрифты для программирования“. Теперь представляется список самых удачных шрифтов для кода на момент июня 2014 года.
Хотя я и уверен, что многих устраивает Courier New, используемый по умолчанию в Windows во многих редакторах. Но, как человек любящий типографику, настаиваю обратить внимание на одну из гарнитур из этой статьи. Хороший шрифт — это прекрасно!
Читать дальше →
Всего голосов 67: ↑62 и ↓5+57
Комментарии92

Подборка трюков при анализе защищенности веб приложений

Время на прочтение5 мин
Количество просмотров35K
Всем привет! Этот топик посвящен разным трюкам при анализе защищенности (пентесте) веб приложений. Периодически сталкиваешься с ситуацией, когда надо обойти какую-нибудь защиту, выкрутиться в данных ограничениях или просто протестировать какое-то неочевидное место. И этот пост как раз об этом! Добро пожаловать под кат.
Читать дальше →
Всего голосов 87: ↑81 и ↓6+75
Комментарии16

Динамическое расширение ядра Linux — добавляем функцию «удалить в корзину»

Время на прочтение4 мин
Количество просмотров20K
Многим пользователям Linux, особенно тем, кто по тем или иным причинам перешёл на эту ОС с Windows, не хватает возможности удаления файлов «в корзину». Кроме того, наверняка, каждый, кто пользовался Linux'ом и по ошибке удалял какой-либо файл, испытывал смешанные чувства от отсутствия простой возможности восстановить утраченные данные.

В продолжение предшествующего материала, посвящённого перехвату функций ядра Linux, представляю способ использования разработанного ранее фреймворка для создания модуля ядра Linux, реализующего возможность удаления файлов «в корзину» (just for fun).

Читать далее
Всего голосов 70: ↑61 и ↓9+52
Комментарии57

JUCE — Кроссплатформенный C++ фреймворк для разработки приложений с пользовательским интерфейсом

Время на прочтение8 мин
Количество просмотров64K
image

Приветствую хабросообщество!
Наверно каждый кто профессионально разрабатывает ПО или просто увлекается программированием, рано или поздно приходил к необходимости создавать пользовательский интерфейс для своей программы. И если не рассматривать нативные для платформ окружения и языки такие как C# для Windows или Objective-C для Mac OS X которые изначально содержат средства для визуализации интерфейса, то выбор оказывается не очень богатым, особенно если мы не горим желанием платить деньги за средства разработки GUI или желаем добиться кроссплатформенности.
В своем первом посте на Хабре я бы хотел рассказать о таком фреймворке как JUCE. Поиск по Хабру выдал всего 2 статьи где данный фреймворк только упоминается, но ни какой детальной информации не приводится. Думаю что тем кто только начинает осваивать кроссплатформенные GUI приложения на C++ будет интересно узнать об альтернативе таким монстрам как Qt или таким старичкам как GTK+
Хотите знать больше?
Всего голосов 70: ↑58 и ↓12+46
Комментарии74

Здравствуйте, я ошибка 217 и я вам ничего не скажу

Время на прочтение10 мин
Количество просмотров102K
Вероятно многие встречались с таким вот «партизаном» при старте или завершении приложения:



Очень информативное сообщение, сразу понятна причина ошибки, место и способ ее решения.
Впрочем, если без шуток, что это вообще такое?
Конечно-же это исключение, но ни тип исключения, ни его описание нам не доступны — просто «Runtime error 217» и адрес, а дальше сами…

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

И тратил бы его в дальнейшем, если бы на днях со мной не связался Виктор Федоренков и не рассказал о своих мыслях по поводу ошибки за номером 217.
Читать дальше →
Всего голосов 137: ↑114 и ↓23+91
Комментарии51

Сетевое программирование для разработчиков игр. Часть 2: прием и передача пакетов данных

Время на прочтение9 мин
Количество просмотров106K
От переводчика: Это перевод второй статьи из цикла «Networking for game programmers». Мне очень нравится весь цикл статей, плюс всегда хотелось попробовать себя в качестве переводчика. Возможно, опытным разработчикам статья покажется слишком очевидной, но, как мне кажется, польза от нее в любом случае будет.
Первая статья — http://habrahabr.ru/post/209144/



Прием и передача пакетов данных


Введение

Привет, меня зовут Гленн Фидлер и я приветствую вас в своей второй статье из цикла “Сетевое программирование для разработчиков игр”.


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

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

BSD сокеты

В большинстве современных ОС имеется какая-нибудь реализация сокетов, основанная на BSD сокетах (сокетах Беркли).

Сокеты BSD оперируют простыми функциями, такими, как “socket”, “bind”, “sendto” и “recvfrom”. Конечно, вы можете обращаться к этим функциями напрямую, но в таком случае ваш код будет зависим от платформы, так как их реализации в разных ОС могут немного отличаться.

Поэтому, хоть я далее и приведу первый простой пример взаимодействия с BSD сокетами, в дальнейшем мы не будем использовать их напрямую. Вместо этого, после освоения базового функционала, мы напишем несколько классов, которые абстрагируют всю работу с сокетами, чтобы в дальнейшем наш код был платформонезависимым.
Читать дальше →
Всего голосов 42: ↑40 и ↓2+38
Комментарии20

6 простых вопросов по C# с подвохом

Время на прочтение7 мин
Количество просмотров39K
Почитав 10 простых задач на c# с подвохом я огорчился т.к. по сути своей там и подвохов-то не было особо (этак можно скатиться до "чему будет равно i++ + ++i")… Посему решил немного повспоминать подвохи, которые не хотел бы видеть никогда в жизни 8-). Уровень подготовки middle наверно.

Читать дальше →
Всего голосов 49: ↑43 и ↓6+37
Комментарии15

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

Время на прочтение6 мин
Количество просмотров114K
image

Речь пойдёт о далёком 2005 году, когда только-только вышла Civilization4 от Sid Meier. К тому времени я плотно висел в Civilization3, прошёл её раз дцать на самых разных картах, и тут вышла долгожданная четвёрка. Это были годы P3-512Mb для mid-end и P4-1Gb в hi-end. Только топовые конфиги в те годы имели два гига памяти на борту.

Civilization 4 вышла с графикой уровня года 2002-2003го, что в принципе нормально для мэинстрима тех времён, особенно учитывая что это пошаговая стратегия, а не шутер. Но жрала с течением игры до 900Mb оперативки, что приводило к жуткому свопу, особенно на больших картах, особенно к концу игры, особенно на ноутбуках. Народ недоумевал, я тоже. Учитывая, что в те же годы вышел Far Cry с куда более красивой графикой, и который вполне игрался на максимуме даже с 512Mb на борту, такое поведение Civilization 4 выглядело крайне странным. Захотелось разобраться и покарать…
Читать дальше →
Всего голосов 551: ↑547 и ↓4+543
Комментарии177

Перехват функций ядра Linux с использованием исключений (kprobes своими руками)

Время на прочтение8 мин
Количество просмотров14K
Перехват функций ядра является базовым методом, позволяющим переопределять (дополнять) различные его механизмы. Исходя из того, что за исключением небольших архитектурно-зависимых частей, ядро Linux почти полностью написано на языке C, можно утверждать, что для осуществления встраивания в большинство из компонентов ядра, достаточно иметь возможность перехвата соответствующих функций ЯВУ, реализующих ту или иную логику.

Данная статья является практическим обобщением представленных ранее статей:
  1. Управляемый PageFault в ядре Linux
  2. Кошерный способ модификации защищённых от записи областей ядра Linux

Далее будет рассмотрено каким образом использование данных материалов может быть применимо в обеспечении возможности перехвата функций ядра Linux.
Читать далее
Всего голосов 47: ↑45 и ↓2+43
Комментарии8

Как Роберт Моррис на 8-ми битах до 10 000 считал

Время на прочтение3 мин
Количество просмотров36K


Как все знают с помощью n-бит, можно реализовать счетчик считающий до 2n-1, но если у вас очень ограниченные ресурсы, или вам просто хочется поэкспериментировать и объединить в одно целое последовательности, вероятности, рандом и увеличение счетчика, то прошу под кат.

Читать дальше →
Всего голосов 61: ↑52 и ↓9+43
Комментарии51

Читаем QR код

Время на прочтение5 мин
Количество просмотров1.1M
Иногда возникают такие ситуации, когда нужно прочитать QR код, а смартфона под рукой нет. Что же делать? В голову приходит лишь попробовать прочитать вручную. Если кто-нибудь сталкивался с такими ситуациями или кому просто интересно как же читается QR код машинами, то данная статья поможет вам разобраться в этой проблеме.

В статье рассмотрены базовые особенности QR кодов и методика дешифрирования информации без использования вычислительных машин.

Иллюстраций: 14, символов: 8 510.
Читать дальше →
Всего голосов 623: ↑614 и ↓9+605
Комментарии109

Кошерный способ модификации защищённых от записи областей ядра Linux

Время на прочтение4 мин
Количество просмотров11K
Те, кто хоть однажды сталкивался с необходимостью поменять что-то в ядре на лету не понаслышке знают, что данный вопрос требует детальной проработки, ведь страницы памяти ядра, хранящие код и некоторые данные, помечены как «read-only» и защищены от записи!

Для x86 известным решением является временное отключение страничной защиты посредством сброса бита WP регистра CR0. Но следует применять это с осторожностью, ведь страничная защита является основой для многих механизмов ядра. Кроме того, необходимо учитывать особенности работы на SMP-системах, когда возможно возникновение разных неприятных ситуаций.

Читать далее
Всего голосов 18: ↑15 и ↓3+12
Комментарии5

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность