Search
Write a publication
Pull to refresh
11
0
Send message

Об одном способе защиты исходников Python-программы

Reading time9 min
Views100K

Как всё начиналось


Однажды мне пришлось участвовать в разработке одного небольшого проекта для научных расчётов, который разрабатывался на языке программирования Python. Изначально Python был выбран как удобный и гибкий язык для экспериментов, визуализации, быстрого прототипирования и разработки алгоритмов, но в дальнейшем стал основным языком разработки проекта. Надо заметить, что проект был хоть и не большим, но довольно насыщенным технически. Для обеспечения требуемой функциональности, в проекте широко применялись алгоритмы теории графов, математическая оптимизация, линейная алгебра и статистика. Также использовались декораторы, метаклассы и инструменты интроспекции. В процессе разработки пришлось использовать сторонние математические пакеты и библиотеки, например, такие как numpy и scipy, а также многие другие.

Со временем стало ясно, что переписывать проект на компилируемом языке слишком затратно по времени и ресурсам. Скорость работы и потребление памяти не являлись критичными показателями в данном случае и были вполне приемлемыми и достаточными. Поэтому было принято решение оставить всё как есть, и продолжить разработку и поддержку проекта на языке Python. К тому же, документация по большей части уже была написана с использованием Sphinx.

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

Здесь сразу обозначилась новая проблема: как защитить исходные коды нашей Python-библиотеки? Может быть, в ином случае никто бы не стал этим заниматься, я бы уж точно, но в библиотеке были реализованы некоторые ноу-хау, и руководители проекта не хотели, чтобы данные наработки попали к конкурентам. Так как я был одним из исполнителей, мне пришлось озаботиться данной проблемой. Далее я постараюсь рассказать об основной идее, что из этого вышло, и как нам удалось скрыть Python-исходники от лишних глаз.
Читать дальше →

Техника для проверки подлинности денег

Reading time17 min
Views313K

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

Рассмотрим подробно, как защищены современные валюты, как происходит проверка подлинности (валидация) и что за аппаратура для этого применяется.
Читать дальше →

CamBoard Pico — интерфейс жестового управления нового поколения

Reading time1 min
Views7.5K
Немецкая компания Pmdtec на днях представила новый тип интерфейса жестового управления компьютером. При этом разработана не только программная, но и аппаратная часть. Можно сказать, что эта система уже практически готова к употреблению. Вполне может быть, что уже в недалеком будущем такими системами будут оснащаться новые модели ноутбуков/ультрабуков/сборок десктопов.


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

Автомат Гаусса — реальное оружие для гика (и не только)

Reading time1 min
Views267K


На Хабре не раз и не два описывались разнообразные конструкции самодельных винтовок и пистолетов Гаусса. А как насчет автомата Гаусса? Причем автомат с достаточно высокой начальной скоростью вылета «пули». Обычно демонстрируются проекты с «пулями», которые еле долетают до цели, а тут серьезная убойная сила, пули протыкают даже крышку ноутбука.

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

Сражаясь с анонимностью

Reading time7 min
Views154K
Тема анонимности в Интернете является сейчас достаточно модной и интересной, и особенно теперь, когда новостные порталы пугают наc всякими там PRISM, правительственными инициативами и прочим. Большинство людей озабочены тем, как сохранить тайну своей личности в сети и поэтому все темы так или иначе посвящены ЗАЩИТЕ. Но иногда, раскрытие анонимности это не такое уж и плохое дело. Да-да, эта заметка — мой опыт борьбы с анонимностью своими силами, без помощи спец-служб…

image

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

Подробный разбор аудиоэффектов Premiere Pro CS6 Часть 1/3

Reading time4 min
Views103K


Всем доброго времени суток! Как и обещал, в продолжение статьи “Работа со звуком в Adobe Premiere Pro CS6” делаю полный разбор звуковых эффектов Premiere Pro CS6.
Всего “родных” эффектов не так много, а конкретнее — 31.И мы начнём разбор в алфавитном порядке. Для вашего удобства я принял решение разбить описание на три части. (Для тех извращенцев, кто использует программу на русском языке, буду указывать ВОЗМОЖНОЕ название на русском)
Читать дальше →

Команда Джеффри Хинтона победила в конкурсе компьютерного зрения ImageNet с двукратным преимуществом

Reading time3 min
Views33K
Конкурс ImageNet состоялся в октябре 2012 года и был посвящен классификации объектов на фотографиях. В конкурсе требовалось распознавание образов в 1000 категорий.

Команда Хинтона использовала методы deep learning и сверточных нейронных сетей, а также инфраструктуру, созданную в Google под руководством Jeff Dean и Andrew Ng. В марте 2013 года Google инвестировал в стартап Хинтона, основанный при университете Торонто, тем самым получив все права на технологию. В течение шести месяцев был разработан сервис поиска по фотографиям photos.google.com.
Читать дальше →

Речевые технологии. Распознавание слитной речи для чайников на примере IVR систем

Reading time9 min
Views39K
Всем привет.
По роду своей профессиональной деятельности я занимаюсь внедрением проектов на основе речевых технологий. Это синтез и распознавание речи, голосовая биометрия и анализ речи.
Мало кто задумывается, насколько эти технологии уже присутствуют в нашей жизни, хоть и далеко не всегда – явно.
Постараюсь популярно объяснить вам, как это работает и зачем это вообще нужно.
Подробно начну с распознавания речи, т.к. это более близкая к повседневной жизни штука, с которой многие из нас встречались, а некоторые уже постоянно пользуются.
Читать дальше →

Хемилюминесценция люминола / что внутри «светящихся палочек»?

Reading time3 min
Views246K
Наверняка вы хоть раз видели химические источники света — светящиеся палочки, которые начинают работать после «переламывания». Внутри — стеклянная капсула, которая при этом ломается, и начинается какая-то мистическая химическая реакция. Мне всегда было интересно разобраться, как это работает.

Энергия связи молекул, освобождающаяся во время химической реакции — может выделится в виде тепла (к чему мы все привыкли), а в редких случаях может — в виде излучения кванта света. Излучение света во время химической реакции называется хемилюминесценцией. Существуют 2 наиболее распространенных реакции с хемилюминесценцией: окисление Люминола и окисление TCPO в присутствии органических красителей.

Отличие в том, что Люминол светится сам, а TCPO — передает энергию молекулам органического красителя (вроде Родамина), и таким образом можно управлять цветом свечения выбирая краситель. Про TCPO (включая его синтез) можно посмотреть на YouTube (использование синтез), а вариант с Люминолом — под катом.
Читать дальше →

Утечка исходных текстов Carberp — это большой удар по безопасности пользователей

Reading time2 min
Views40K
Уже не является секретом тот факт, что полные исходные тексты известного банковского вредоносного ПО Carberp утекли в паблик. Около 5GB исходных текстов оказались в поле зрения фактически любого желающего. Архив включает в себя:

  • Исходный текст буткита, km драйверов и всего что работает в km.
  • Билдер дропперов.
  • Плагины.
  • Веб-инжекты.
  • LPE эксплойты.
  • Огромное количество другой полной и необходимой информации, чтобы начать свой собственный проект по разработке вредоносного кода.

Как и в случае с Zeus, история началась с того, что архив с текстами был выставлен на продажу на нескольких подпольных форумах. Ниже представлен пост с объявлением с одного из форумов. Первоначально информация о том, что исходные тексты Carberp были выставлены на продажу была опубликована Trusteer 18-го июня, т. е. около недели назад. При этом указывалось, что цена архива составляет $50,000. Но позже на одном из форумов появилась информация, что тексты продаются по очень низкой цене, всего лишь $5,000. Архив включает в себя тексты вредоносного кода и купленные сторонние наработки с 2008 г.

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

ЦРУ — большие задачи и большие данные. На пути к созданию глобального информационного колпака

Reading time20 min
Views75K

Айра Гас Хант (Ira Gus Hunt), действующий Директор по технологиям ЦРУ, рассказывает о своем видении Big Data на службе ЦРУ, а также возникающие при этом задачи и методы их решения. Выступление состоялось на конференции GigaOM Structure:Data 2013, проходившей 20 марта в Нью-Йорке. Как говорят очевидцы это было одно из самых интересных и запоминающихся выступлений.
Видение глобального информационного пространства глазами ЦРУ

Торговля знает, когда вы ждете ребенка

Reading time5 min
Views73K
Однажды в магазин Target зашел мужчина и потребовал вызвать менеджера. В своих руках он сжимал огромную кипу купонов магазина, полученных его дочерью.

«Моя дочь получила это по почте! – прокричал он. – Она еще в школу ходит, а вы посылаете ей купоны на детскую одежду и памперсы? Да как вы смеете! Вы хотите таким способом побудить школьниц рожать?»

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

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

Как Target узнал, что дочь беременна до того, как об этом стало известно ее отцу? Ответ прост – благодаря системе прогнозирования беременности (pregnancy prediction system), разработанной аналитиком компании Эндрю Полом. Под катом – обо всем по порядку.
Читать дальше →

Прохождение конкурса “Конкурентая разведка“ на PHDays III

Reading time9 min
Views12K
В этом году при разработке легенды заданий для конкурса «Конкурентная разведка» мы сделали упор на применимость выискиваемой информации в реальных работах по пассивному анализу при подготовке к пентестам и в работах по оценке осведомленности, а также на использование различных поисковых механизмов и дедуктивных методов.

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

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

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

Компанией, с которой предстояло работать конкурсантам, была Godzilla Nursery Laboratory — интернациональная корпорация, занимающаяся разведением и продажей домашних годзилл. Годзиллы были выбраны не случайно – именно они «охраняли» железную дорогу из конкурса «Choo-choo PWN».



Google подсказывал участникам сразу, что рабочий сайт этой компании с симпатичным логотипом — www.godzillanurserylab.com, а многие из ее сотрудников представлены в социальной сети LinkedIn. Ну, поехали!
Читать дальше →

Первый случай конфискации биткоинов

Reading time1 min
Views25K
Управление по контролю за распространением наркотиков США сообщило о конфискации биткоинов, принадлежащих Эрику Дэниелю Хьюзу (Eric Daniel Hughes), поскольку эта собственность была «приобретена либо потрачена незаконным путём», а именно — за счёт продажи или покупки незаконных веществ.

В информационном сообщении указано, что округ Южной Каролины 12 апреля 2013 года конфисковал 11,02 BTC с адреса 1ETDwGUC1QcjYuehFr3u1FD3MvDaUs7SFy.

Судя по всему, это первый случай, когда биткоины изъяли по официальной процедуре. История транзакций показывает, что 11,02 BTC были получены на указанный адрес 12 апреля и потрачены 17 апреля. По мнению экспертов, в данном случае конфискация, скорее всего, была осуществлена в результате спецоперации на подпольной бирже Silk Road. Управление по контролю за распространением наркотиков США могло открыть подставной аккаунт (honeypot), после чего конфисковало полученные от покупателя монеты.
Читать дальше →

Автоматическая подсветка лестницы с помощью Arduino

Reading time4 min
Views241K
Добрый день! В этом посте хочу поделится с хабро сообществом о том, как мне довелось сделать автоматическое освещение лестницы в своем двухэтажном коттедже. Начну с небольшого грустного отступления.
Около четырех месяцев назад, возвращаясь с работы в полной темноте, я не удачно подскользнулся и сломал две плюсниевых кости (пальца) на левой ступне. Целый месяц пришлось провалятся в постели, так как наступать на ногу было невероятно больно. Потом еще пол месяца хромал без гипса (у кого были переломы меня сразу поймут). После этой печальной истории я начал задумываться об автоматизации освещения ступенек лестницы. Немного поиграв с поисковыми запросами, нашел для себя очень простое решение в этом блоге, как раз на основе моего любимого микроконтроллера Arduino. Схема не вызвала каких то трудностей, но отпугивало количество и длина проводов, которые мне предстояло смонтировать. До этого ничего подобного не делал. Покупать готовые решения или нанимать кого-то — накладно. В течении месяца заказал нужные комплектующие и не торопясь смонтировал за несколько дней на свою лестницу. Всем кому интересно, что из этого получилось, добро пожаловать под кат (осторожно трафик)!
Читать дальше →

Идентифицировать человека среди 1 500 000 пользователей мобильной связи можно всего по 4 точкам во времени и пространстве

Reading time2 min
Views123K
Каждый из нас изо дня в день бывает в одних и тех же местах примерно в одно и то же время — дом, работа, спортзал, магазин, снова дом… Наш ежедневный маршрут достаточно стабилен и в то же время уникален. Совместное исследование американских и бельгийских учёных продемонстрировало, что степень его уникальности гораздо выше, чем можно предположить.

Анализ базы данных, в которой была собрана анонимизированная информация о времени и месте звонков и СМС 1 500 000 абонентов на протяжении пятнадцати месяцев показал, что для идентификации 95% людей достаточно знать всего четыре пространственно-временные точки.

Всего две точки позволяют различить индивидуальный след половины пользователей, а одиннадцати достаточно, чтобы различить все до единого следы. На иллюстрации слева приведены примеры таких индивидуальных следов. Авторы исследования сравнивают уникальность мобильного следа с отпечатками пальцев — в 1930 году французский пионер криминалистики Эдмон Локард показал, что для идентификации по отпечатку пальца достаточно двенадцати совпадений деталей рисунка.

Таким образом, получив из открытых источников (Facebook, Twitter, Foursquare, LinkedIn и т.п.) всего несколько характерных для человека пространственно-временных точек, можно деанонимизировать абонента мобильной связи среди миллионов записей, не содержащих вообще никакой персональной информации, и отследить все его перемещения.
Читать дальше →

Zyxel Keenetic 4G, arduino и датчики температуры ds18b20

Reading time6 min
Views65K
image Привет Хабрахабр! Хочу поделится с вами как я подключил Arduino к своему роутеру. Поехали!
Современные роутеры — как небольшие компьютеры, которые выполняют узкоспециализированную задачу для раздачи сетевого трафика. На борту такого небольшого устройства установлена ОС Linux, только без графического интерфейса и с урезанной программной частью. Передо мной встал вопрос, а почему бы не подключить arduino к своему роутеру — Zyxel Keenetic 4G? Немного погуглив я наткнулся на замечательный форум, где одним из участников была сделана модифицированная прошивка с поддержкой установки дополнительных пакетов для Keenetic 4G.
В нашем случае управление Arduino происходит через библиотеку php_serial.class.php и легкого веб сервера на основе Lighttpd + php. С помощью этих инструментов будем подавать команды ардуинке на чтение показаний с двух температурных датчиков (дом, улица), записывать ответ в базу данных Sqlite3 и выводить на нашу веб-страничку.
Читать дальше →

NooLite-2, или умный дом для чайников

Reading time16 min
Views157K
После успешной проверки работы системы, я замахнулся на замену всех выключателей в доме на пульты управления, и построение «умного дома», хотя бы в части освещения.
image
В итоге получилась система, сочетающая включение/выключение света как с помощью выключателей, так и через интернет — с помощью кнопок на веб-страничке.
Как это получилось — читайте под катом.
Читать дальше →

По следам мобильного телефона. Геолокация с помощью сотовой сети

Reading time5 min
Views203K
В прошлый раз, когда мы рассказывали о приложении МегаФон Навигация и принципах его работы, мы упомянули еще несколько услуг, главной составляющей которых является определение координат и их интерпретация (Location-based services).

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

Опенсорс телефон «Gongkai» за 12$

Reading time1 min
Views57K
imageПо цене пары-другой чашек кофе вы получаете полноценный телефон с двухцветным OLED-экраном, Bluetooth и возможностью воспроизведения MP3-музыки. Все это — в прозрачном зеленом корпусе.

Как пишут блогеры, предположительная себестоимость телефона Gongkai — около 10 долларов, то есть он еще и продается с неплохой маржой в 20%. В комплект поставки входят зарядное устройство, USB-кабель и защитный силиконовый чехол.

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

Интересным также выглядит сравнение с Arduino Uno 3го поколения:
Читать дальше →

Information

Rating
Does not participate
Registered
Activity