Pull to refresh
0
0
Евгений @Ancitr

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

Send message

Создаём собственный блокчейн на Ethereum

Reading time11 min
Views64K

Как создать приватный блокчейн Ethereum с нуля?


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

Инструкция включает в себя следующее:

  • Создание приватного блокчейна Ethereum с помощью geth.
  • Создание кошелька MetaMask для работы с приватным блокчейном.
  • Перевод средств между несколькими аккаунтами.
  • Создание, развёртывание и вызов смарт-контракта в приватном блокчейне с помощью remix.
  • Создание обозревателя блоков Ethereum поверх приватного блокчейна.
Читать дальше →
Total votes 28: ↑25 and ↓3+22
Comments5

Деобфускация одного скрипта с попапами

Reading time127 min
Views11K
Тяжело найти человека, который не сталкивался бы с таким отвратительным явлением на сайтах, как рекламный попап. Откровенно не понимаю зачем их делают, но, судя по всему, это работает. И это печально. В своё время данное явление достало даже разработчиков браузеров из-за чего на тот же window.open были наложены ограничения, не позволяющие открывать новые окна без спросу пользователя. К сожалению их было недостаточно и в борьбу включились баннерорезки. К сожалению API, предоставляемые браузерами, не идеальны и потому периодически обнаруживаются новые пути ухода от блокировки, которые как-то приходится затыкать. Вот только довольно сложно заткнуть брешь не зная как она работает и разработчики рекламных скриптов это тоже прекрасно понимают. В результате код обфусцируется всё новыми и новыми способами. Здесь я попробую разобрать один такой скрипт и техники обфускации кода, применяемые в нём, крайний раз обнаруженный на средней популярности сайте хентайной мангой (японские порнокомиксы).
Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments14

Библиотека быстрого поиска путей на графе

Reading time8 min
Views35K

Привет, Друзья!


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


Пример использования на огромном графе:



Поиграться с демо можно здесь


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


Описание разных вариантов A* уже не раз встречалось на хабре. Мне очень понравилось вот это, потому повторяться в этой статье я не буду. Под катом расскажу подробнее почему библиотека работает быстро и о том, как было сделано демо.

Читать дальше →
Total votes 114: ↑112 and ↓2+110
Comments53

Попиксельная заливка экрана в Wolfenstein 3D

Reading time4 min
Views42K
В коде id Software порой встречаются бесподобные жемчужины. Самая знаменитая — это, конечно, 0x5f3759df, удостоившаяся даже комикса на xkcd. Здесь же речь пойдёт о заливке экрана: пиксели закрашиваются по одному в случайном порядке, без повторов. Как это сделано?

Читать дальше →
Total votes 152: ↑151 and ↓1+150
Comments96

Реализация алгоритма A*

Reading time30 min
Views82K


Эта статья является продолжением моего введения в алгоритм A*. В ней я показал, как реализуются поиск в ширину, алгоритм Дейкстры, жадный поиск по наилучшему первому совпадению и A*. Я стремился как можно больше упростить объяснение.

Поиск по графам — это семейство схожих алгоритмов. Существует множество вариаций алгоритов и их реализаций. Относитесь к коду этой статьи как к отправной точке, а не окончательной версии алгоритма, подходящей ко всем ситуациям.
Читать дальше →
Total votes 29: ↑28 and ↓1+27
Comments4

Введение в алгоритм A*

Reading time10 min
Views185K
При разработке игр нам часто нужно находить пути из одной точки в другую. Мы не просто стремимся найти кратчайшее расстояние, нам также нужно учесть и длительность движения. Передвигайте звёздочку (начальную точку) и крестик (конечную точку), чтобы увидеть кратчайший путь. [Прим. пер.: в статьях этого автора всегда много интерактивных вставок, рекомендую сходить в оригинал статьи.]


Для поиска этого пути можно использовать алгоритм поиска по графу, который применим, если карта представляет собой граф. A* часто используется в качестве алгоритма поиска по графу. Поиск в ширину — это простейший из алгоритмов поиска по графу, поэтому давайте начнём с него и постепенно перейдём к A*.
Total votes 70: ↑69 and ↓1+68
Comments20

Моделирование переходных процессов при коммутации электрической цепи средствами Python

Reading time3 min
Views13K


Зачем нужно учитывать переходные процессы


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

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

В сети много публикаций по данной теме [1,2,3], однако большая их часть содержит описания переходных процессов, основанное на методах аналитического решения соответствующих уравнений. Численные методы используются значительно реже, причём большая часть таких публикаций посвящена описанию метода численного решения дифференциального уравнения.

Учитывая хорошо развитые в библиотеке SciPy численные методы, привожу пример математического моделирования переходных процессов при коммутации в электрических цепях средствами данной библиотеки.
Читать дальше →
Total votes 11: ↑8 and ↓3+5
Comments0

Burp Suite: швейцарский армейский нож для тестирования веб-приложений

Reading time6 min
Views109K

 
Burp Suite – это мультитул для проведения аудита безопасности веб-приложений. Содержит инструменты для составления карты веб-приложения, поиска файлов и папок, модификации запросов, фаззинга, подбора паролей и многое другое. Также существует магазин дополнений BApp store, содержащий дополнительные расширения, увеличивающие функционал приложения. Стоит отметить и появление в последнем релизе мобильного помощника для исследования безопасности мобильных приложений — MobileAssistant для платформы iOS.
Читать дальше →
Total votes 32: ↑28 and ↓4+24
Comments2

Пишем простого чат-бота для Telegram на PHP

Reading time8 min
Views228K
Шукюров Заур, разработчик @KinomanBot и @GaidarForum_bot, написал руководство по созданию простого чат-бота на PHP.

24 июня 2015 года разработчики Telegram открыли платформу для создания ботов (программ, которые выполняют определенные действия по заданному алгоритму).

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


Читать дальше →
Total votes 23: ↑9 and ↓14-5
Comments15

Security Week 14: Взлом банка с бразильским размахом, банкоматы кидают деньги в bitch, 54 часа Mirai

Reading time4 min
Views15K
Знаете ли вы, друзья, что антивирусные аналитики любят больше всего на свете? Рассказывать друг другу страшные истории. Так вот для нашего ежегодного съезда аналитиков Фабио Ассолини и Дмитрий Бестужев заготовили настоящую крипоту. Можете себе представить старинный уважаемый банк с капитализацией в 25 ярдов нерублей и 500 отделениями, скомпрометированный сверху донизу? Все его 36 доменов и почтовый сервер в придачу были заражены и бодро заливали малварь всем пользователям.
Читать дальше →
Total votes 29: ↑25 and ↓4+21
Comments0

Об опасностях беспроводных клавиатур и мышей

Reading time4 min
Views92K


Изображение: home thods, Flickr

Компьютерные мыши и клавиатуры с радиоинтерфейсом и USB-трансивером стоят немногим дороже обычных проводных моделей и пользуются популярностью. Но такие устройства не защищены от взлома: собрать набор для проведения атаки можно всего за 300 рублей, а вестись она может с расстояния до 1 км.

Мы протестировали безопасность устройств Logitech, A4Tech и Microsoft. В ходе тестов нам удалось перехватить данные, передаваемые клавиатурами и мышами, дешифровать трафик и осуществить ряд других атак. Обнаруженные уязвимости могут привести к утечке паролей, платежных реквизитов, персональных данных и другой важной информации.
Читать дальше →
Total votes 64: ↑59 and ↓5+54
Comments45

Создание вашей первой игры на Phaser. Часть 3 — Создание игрового мира

Reading time2 min
Views14K

Phaser


Оглавление


0. Подготовка к работе
1. Введение
2. Загрузка ресурсов
3. Создание игрового мира [Вы тут]
4. (wip) Группы
5. (wip) Мир физики
6. (wip) Управление
7. (wip) Добавление целей
8. (wip) Последние штрихи


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


Не забывайте читать комментарии в коде, они важны!


Весь код, как и в прошлый раз, лежит в Github репозитории с тегом part-3.

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

Краткая история JavaScript. Часть 1

Reading time11 min
Views73K
Отдел фронтенд-разработки компании Лайв Тайпинг перевёл для читателей Хабра большой материал о зарождении, развитии и перспективах языка JavaScript, вышедший в блоге сервиса Auth0. Сегодня мы публикуем первую часть перевода. Соперничество Netscape и Mosaic, грёзы об интерактивном вебе, язык программирования для не-программистов, переход от классов к прототипам и что общего между JavaScript и ECMAScript (спойлер: всё).

Краткая история JavaScript. Часть 2
Краткая история JavaScript. Часть 3


Total votes 23: ↑21 and ↓2+19
Comments45

Web PUSH Notifications быстро и просто

Reading time17 min
Views350K

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


Информации по этой теме в интернете полно, но она фрагментирована, разбросана по разным ресурсам и перемешена с уведомлениями для мобильных устройств с примерами на Java, C++ и Python. Нас же, как веб-разработчиков, интересует JavaScript. В этой статье я постараюсь саккумулировать всю необходимую и полезную информацию.


Web PUSH Notifications


Я думаю, вы уже знаете что такое push-уведомления, но я всё же напишу коротко о главном.


Пользователь, заходя на сайт, вытягивает (pull) с него данные. Это удобно и безопасно, но с развитием интернет ресурсов, появилась необходимость оперативно доставлять информацию пользователям не дожидаясь пока те сами сделают запрос. Так и появилась технология принудительной доставки (push) данных с сервера клиенту.

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

Начальный уровень подготовки в области практической информационной безопасности

Reading time6 min
Views28K

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

Читать дальше →
Total votes 34: ↑33 and ↓1+32
Comments3

Чистый javascript.Классы

Reading time8 min
Views38K
Читать дальше →
Total votes 33: ↑28 and ↓5+23
Comments7

VulnHub: USV 2016. CTF в Румынии, какие они?

Reading time6 min
Views6.5K


Всем доброго времени суток, в этой статье рассмотрим решение Румынского CTF-USV 2016, на тему: «Игра престолов». Скачать образ виртуальной машины можно по ссылке с VulnHub.

Если вам интересно как проходят межвузовские CTF в Румынии, прошу под кат
Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments0

CTFzone write-ups — Deeper into the WEB

Reading time9 min
Views5.3K

image


Друзья, надеемся, что выходные у всех прошли хорошо, и вы снова готовы немного поломать голову над заданиями CTFzone. Мы продолжаем публиковать райтапы к таскам, и сегодня мы разберем ветку WEB. На всякий случай запасайтесь кавычками и вперед ;)


Направление WEB было вторым по популярности после Forensics, в общей сложности хотя бы одно задание решили 303 человека. Кстати, из них задание на 1000 решили всего пять участников, поэтому ему мы уделим особое внимание. Задания на 50 и на 100 уже публиковались, так что мы сразу перейдем к таскам посложнее.


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

[ZeroNights2016] [CTFzone] Без 100 грамм не разберёшься

Reading time7 min
Views8.8K


Продолжаем цикл статей, посвященный райтапу по CTFzone, который проходил 17 и 18 ноября в рамках ZeroNights2016 под флагом Bi.Zone. В этот раз мы поговорим о заданиях, выполнение которых приносило по 100 очков в пользу реальных хакеров!
Продолжение внутри
Total votes 17: ↑15 and ↓2+13
Comments6

Javascript-путешествие с шестью символами

Reading time5 min
Views38K


Javascript – это странный и прекрасный язык, который позволяет писать безумный, но все еще валидный код. Он пытается помочь нам, конвертируя одни штуки в другие в зависимости от того, как мы работаем с ними.


Если добавить строку к чему-то, то он допустит, что мы хотим получить текст, поэтому сконвертирует все в строку.


Если мы добавляем префикс "плюс" или "минус", то он допустит, что нам нужно числовое представление и сконвертирует строку в число, если сможет.


Если мы отрицаем что-то, то он сконвертирует это в булево значение.


Мы можем использовать эти особенности языка и создать немного магии со всего-лишь шестью символами: [,],(,),! и +. Если вы читаете это на десктопе, то можете открыть консоль в вашем браузере (developer tools, например) и запускать код. Просто копируйте любой код из примеров ниже в консоль, и он должен исполнится и вернуть true.


Давайте начнем с простого. Вот главные правила:


  1. Префикс ! конвертирует в Boolean
  2. Префикс + конвертирует в Number
  3. Добавление [] конвертирует String

Вот они в действии:


![] === false
+[] === 0
[]+[] === ""
Читать дальше →
Total votes 123: ↑112 and ↓11+101
Comments32
1

Information

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