Pull to refresh
21
0
Send message

Правим баг без исходных кодов

Reading time9 min
Views39K
image

В предыдущей статье мы разобрали, как реверс-инжиниринг может помочь в получении каких-либо преимуществ перед остальными пользователями. Сегодня мы поговорим ещё об одном применении обратной разработки — исправлении багов в отсутствии исходных кодов приложения. Причин заниматься подобными вещами может быть целое море — разработка программы давным-давно заброшена, а её сорцы автор так и не предоставил общественности / разработка ведётся совершенно в другом русле, и авторам нет никакого дела до возникшего у вас бага / etc, но их объединяет общая цель — исправить сломанный функционал, который постоянно вам досаждает.

Что ж, ближе к делу. Есть такая широко известная в узких кругах программа под названием «Govorilka». Как объясняет её автор, это ничто иное, как «программа для чтения текстов голосом». По сути, так оно и есть. При помощи неё было озвучено множество популярных и не очень видео, рапространившихся по всей сети. Программа имеет консольную версию под названием «Govorilka_cp», которую удобно вызывать из своих собственных приложений, что, собственно, я и сделал в одном из своих проектов.

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

Учитывая, что говорилка не обновлялась уже несколько лет, а сам автор оставил вот такое «послание» на своём сайте

image

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

Как протекал процесс, и что из этого вышло, читайте под катом (осторожно, много скриншотов).
Читать дальше →
Total votes 93: ↑93 and ↓0+93
Comments53

Стань повелителем загрузки Linux

Reading time24 min
Views90K
Сначала мы познакомимся с udev и научимся с его помощью исследовать установленные в компьютере устройства прямо во время загрузки: в качестве примера будем автоматически выбирать настройки видеокарт для Xorg. Затем решим задачу работы с одним образом на десятках компьютеров одновременно путём внедрения собственного обработчика в initramfs, а заодно оптимизируем систему для сетевой загрузки. Чтобы дополнительно уменьшить время загрузки и снизить нагрузку на сеть попробуем NFS заменить на NBD, и помочь TFTP с помощью HTTP. В конце вернёмся в начало — к загрузочному серверу, который также переведём в режим «только для чтения».



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

Начало смотрите здесь:
Первоначальная настройка сервера
Подготовка образа для загрузки по сети
Читать дальше →
Total votes 41: ↑40 and ↓1+39
Comments13

IPV6 — это весело. Часть 1

Reading time13 min
Views284K
Возникла у меня идея познакомить публику Хабра с IPv6 и настройкой протоколов на основе этого замечательного и еще плохо изученного сетевыми специалистами протокола. Для этих целей я остановлюсь на двух основных вендорах, это Juniper и Cisco. Моя статья будет состоять из трех частей. В первой части я соберу всю самую скучную, но очень нужную теорию. Рассмотрим поля протокола ipv6, принципы работы, разбиение на подсети и поставлю себе задачу, как можно больше акцентировать внимание на отличии его от любимого IPv4.

Ну что же, начнем, и начнем мы с плана.

План


• Заголовок IPv6 в сравнении с IPv4
• Представление IPv6-адресов
• Типы совместного использование протоколов IPv4 и IPv6
• Типы адресов
• Разбиение на подсети
Читать дальше →
Total votes 36: ↑15 and ↓21-6
Comments25

История участия в конкурсе «Летающие роботы». Часть 1

Reading time14 min
Views19K

Предисловие


В 2013 году с целью популяризации робототехники в России и создания среды программистов и инженеров, ориентированных на данную тематику компания КРОК (г.Москва) организовала конкурс «Летающие роботы». Наша команда «iKar» (3 человека из Барнаула и 1 из Москвы) участвовала в 2013 году (конкурс «Улететь и вернуться») и 2014 году («Догнать и перегнать Крок») не победила, но добилась неплохих результатов.

1. С чего все началось или условия конкурса


Будучи по профессии программистом 1С, нередко приходится пользоваться форумом forum.mista.ru. Один из моих друзей-коллег первым заметил объявление на тему «Кому лимон» и предложил участвовать.

Условия конкурса выглядели заманчиво: необходимо было построить или купить летающего робота и научить его перемещаться/ ориентироваться в помещении-полигоне, автоматически взлетать и садиться и распознавать посадочные маркеры. Срок на всю работу 1 год, а приз — 1 миллион рублей.



Имелся опыт построения вертолетов и квадрокоптеров, как для хобби, так и для профессионального применения в аэрофотосъемке. Было много вопросов по поводу различных настроек, ПИД коэффициентов, кода и алгоритмов полетных контроллеров. Используя мотивацию конкурса, можно было глубоко во всем разобраться.

С детства была мечта заниматься робототехникой, участие в конкурсе позволило сделать первые шаги в данном направлении. Вера в собственные силы, «правое» дело и «вкусный» приз, сделали свое дело, весь семейный бюджет плюс доступные кредитные средства, были направлены на постройку «бюджетного» робота-беспилотника и поездку в Москву на конкурс.
Читать дальше →
Total votes 32: ↑30 and ↓2+28
Comments10

Как мы обеспечивали связь в городах Северного Полярного Круга

Reading time16 min
Views35K
Северный Полярный Круг – это низкие температуры и вечная мерзлота под ногами. Климат в таких краях резко континентальный и суровый. Но здесь нужна связь. Например, в Салехарде и Лабытнанги.


Суровый зимний климат в г. Салехард

Мы провели модернизацию оборудования мобильной связи в этих городах и развернули новую опорную сеть. Был выполнен «перенос» мобильного коммутатора через реку Обь и осуществлена «телепортация» абонентов на новое оборудование. Я отвечал за организационную и техническую части этого северного проекта.
Читать дальше →
Total votes 35: ↑34 and ↓1+33
Comments10

Мобильные телефоны и тотальная слежка АНБ: как это работает

Reading time6 min
Views140K
image

Имя Эдварда Сноудена последние два года регулярно мелькает в новостях по теме информационной безопасности. Благодаря разоблачениям этого бывшего сотрудника американских спецслужб все уже слышали, что Агентство национальной безопасности (АНБ, NSA) обладает возможностями тотальной мобильной слежки за гражданами. Но как именно устроена эта слежка, мало кто знает. В данном обзоре мы собрали некоторые подробности о технологиях, которыми пользуется NSA — и не только оно.

Одна из первых неприятных новостей от Сноудена касалась подрыва доверия к технологиям криптозащиты. В рамках секретного проекта АНБ под названием Bullrun была получена возможность обхода многих систем шифрования – но не за счёт взлома, а за счёт эксплуатации закладок, специально оставленных производителями по требованию АНБ. А в некоторых случаях вендоров просто обязали сдавать агентству шифровальные ключи. Таким образом, были дискредитированы многие стандарты безопасности, считавшиеся надёжными и применявшиеся в крупном бизнесе и государственных организациях.
Читать дальше →
Total votes 107: ↑99 and ↓8+91
Comments31

Процессоры, ядра и потоки. Топология систем

Reading time12 min
Views283K
В этой статье я попытаюсь описать терминологию, используемую для описания систем, способных исполнять несколько программ параллельно, то есть многоядерных, многопроцессорных, многопоточных. Разные виды параллелизма в ЦПУ IA-32 появлялись в разное время и в несколько непоследовательном порядке. Во всём этом довольно легко запутаться, особенно учитывая, что операционные системы заботливо прячут детали от не слишком искушённых прикладных программ.



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

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

Выразительный JavaScript: JavaScript и браузер

Reading time9 min
Views46K

Содержание




Браузер – крайне враждебная программная среда

Дуглас Крокфорд, «Язык программирования JavaScript» (видеолекция)


Следующая часть книги расскажет о веб-браузерах. Без них не было бы JavaScript. А если бы и был, никто бы не обратил на него внимания.

Технологии веба с самого начала были децентрализованными – не только технически, но и с точки зрения их эволюции. Различные разработчики браузеров добавляли новую функциональность «по случаю», непродуманно, и часто эта функциональность обретала поддержку в других браузерах и становилась стандартом.

Это и благословление и проклятие. С одной стороны, здорово не иметь контролирующего центра, чтобы технология развивалась различными сторонами, иногда сотрудничающими, иногда конкурирующими. С другой – бессистемное развитие языка привело к тому, что результат не является ярким примером внутренней согласованности. Некоторые части привносят путаницу и беспорядок.
Читать дальше →
Total votes 30: ↑29 and ↓1+28
Comments4

Электрошокер в разрезе: 3.000.000 вольт для учебных целей

Reading time3 min
Views132K
(3.000.000 вольт — надпись на коробке, реальное напряжение на выходе неизвестно)

Вдохновленный экспериментами луганских коллег и интересом к распилу лазера, решил продолжить исследовать внутренности мощных устройств, которые можно легко купить в интернет магазине. (Благодарю magnad.ru за предоставленное оборудование.)



Немного истории


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

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

О чем подумал я в первую очередь когда мне попался в руки электрошокер?
???
О том что можно захватить живого пришельца

Ностальгия по UFO

Слабо парализовать вот этого товарища?
image



Под катом несколько фоток и описание того, что находится внутри электрошокера-фонарика, плюс как сделать электрошокер самому и как сделать бронежилет против электрошокера
Читать дальше →
Total votes 82: ↑63 and ↓19+44
Comments70

Ловцы молний. Необычные эксперименты с грозой

Reading time7 min
Views166K
Добрый день, уважаемые читатели Хабра.

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

image

Меня всегда вдохновляла красота и мощь молний. Сила тока в разряде молнии достигает 10-300 тысяч ампер, а напряжение — от десятков миллионов до миллиарда вольт. Мощность разряда — от 1 до 1000 ГВт. Вот было бы хорошо «приручить» эту энергию!

Хочу предупредить, не повторяй это дома! Я соблюдаю особую осторожность и хорошо знаю природу электрических явлений. Помни, поражение молнией смертельно.
Читать дальше →
Total votes 266: ↑245 and ↓21+224
Comments195

FAQ по программированию под Android от новичка, и для новичков

Reading time16 min
Views158K
Предисловие к FAQ.

Программирование является моим хобби уже давно (правда на других языках и платформах), но до андроида руки дотянулись совсем недавно. Прошло несколько этапов, прежде чем я добрался до написания программ.
Сначала была пара месяцев посвященных Java, на сайте с «Сгибателем».
После, долгие попытки подружится с Eclipse, закончившиеся побегом на Android Studio.
На данный момент выпущено 7 программ и две находятся в разработке.
Данная подборка возникла как попытка структурирования и оптимизации полученной в процессе информации.
Заранее извиняюсь за возможно некорректную терминологию – так как практикую обучение через создание, и в теоретической части есть пробелы.

Надеюсь, что приведенные примеры окажутся полезными.
Читать дальше →
Total votes 114: ↑98 and ↓16+82
Comments23

Патч для гипервизора сознания

Reading time4 min
Views150K
image

Недавно в топе Хабра появился пост, заставивший меня вылезти из read-only: «Overclock мозга или внутрення виртуализация сознания».
Вводящее в заблуждение название и не менее спорное содержание. Неприятные ощущения вызывает еще и тот факт, что при всей неточности и искажении фактов автор осмелился прикрепить к нему метку tutorial.

Желающих взглянуть на осознанные сновидения без налета авторской фантазии, прошу под кат.
Читать дальше →
Total votes 135: ↑113 and ↓22+91
Comments168

Overclock мозга или Внутренняя виртуализация сознания

Reading time29 min
Views455K


Все помнят этот фильм? Какого черта он делает на Хабре? И вообще что тут делает подобный пост?
Наверное потому, что я считаю главным звеном в IT все таки человека, а точнее его мозги. Я попробую рассказать еще об одной возможности использовать свой мозг чуточку эффективнее. Одна из слабо задокументированных возможностей, которую мы используем каждый день, но не всегда даже об этом вспоминаем. Все описанное проверялось на мне. Если что-то я не пробовал, но рассказать об этом важно буду отмечать особо. Никаких наркотиков, аппаратов и издевательств над собой, только общедоступные легкие методики (короче, лег проспался и вперед, не вставая даже с кровати).
И да… Это до жути реалистично, на столько, что попробовав, вы не сможете не рассказать об этом.

Что бы не было лишних криков в комментах, попрошу всех кто ярых сторонников любой религии и конфессии, а так же убежденных эзотериков сразу поставить минус в карму и не читать дальше. Здесь не будет философии и великих вселенских тайн. А остальных прошу под кат — попробую рассказать о своей практике разгона мозга с помощью встроенных функций.
ночь как полигон для...
Total votes 224: ↑172 and ↓52+120
Comments292

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

Reading time6 min
Views68K
Здравствуйте! Квантовая механика продолжается во второй части цикла Элиезера Юдковски, и сегодня вы узнаете немного больше о конфигурациях, а также поймёте, почему процесс наблюдения влияет на объект наблюдения. Критики в адрес непонятливого человечества, само собой, тоже будет предостаточно. В общем, не проходите мимо!
Читать дальше →
Total votes 53: ↑45 and ↓8+37
Comments33

Ричард Фейнман. Характер физических законов. Лекция 1

Reading time1 min
Views8.6K
Мой хороший друг по собственной инициативе решил сделать перевод популярных лекций известного физика-теоретика, лауреата Нобелевской премии Ричарда Фейнмана, прочитанных им в Корнельском университете в 1964 году.

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

Итак, «Характер физических законов», лекция первая.

http://vimeo.com/14174734

Те, кто интересуется, кто же такой Ричард Фейнман и почему его лекции настолько интересны, для начала могут ознакомиться со статьей в Wiki.
Читать дальше →
Total votes 105: ↑100 and ↓5+95
Comments44

Интерфейсы в реальном мире

Reading time5 min
Views179K
IT-интерфейсы часто растут из физических. Например, вот аппаратные чекбоксы:



Вообще, лучший же пример правильного инженерного интерфейса – это гранёный стакан.

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

Сейчас покажу ещё несколько интерфейсов, которые облегчают жизнь. Общий смысл – попробовать понять, как думал разработчик, чтобы сделать что-то удобнее.
Читать дальше →
Total votes 314: ↑304 and ↓10+294
Comments347

Видеопост: сверхзвуковой теннисный шарик, автомат Калашникова и колибри

Reading time3 min
Views36K
Всех с пятницей! У нас накопилась вторая подборка различных удивительных видеороликов. Если пропустили первую, то рекомендуем ознакомиться. Сегодня у нас, в основном, подобрались видео о тех или иных проявлениях физических сил и свойств. И, конечно, наука и техника тоже не остались обделёнными.

Высокоскоростная съёмка столкновения шарика и ракетки для настольного тенниса. Шарик имеет сверхзвуковую скорость



Не знаем, как вы, а мы обалдели дважды. Первый раз, когда шарик (шарик для пинг-понга!) пробил ракетку, второй раз — когда он её вообще сломал к чёртовой матери. И это несмотря на ничтожную массу.
Читать дальше →
Total votes 87: ↑50 and ↓37+13
Comments23

О космическом тепле и холоде

Reading time5 min
Views160K
В жаркие летние дни самое время поговорить о жаре и холоде космоса. Благодаря научно-фантастическим фильмам, научно- и не очень научно-популярным передачам, у многих закрепилось убеждение, что космос — это невообразимо холодное место, в котором самое главное — найти как согреться. Но на самом деле все гораздо сложнее.


Фото космонавта Павла Виноградова
Читать дальше →
Total votes 160: ↑159 and ↓1+158
Comments180

Книги о кибербезопасности: 5+ рекомендаций наших экспертов

Reading time5 min
Views97K
Недавно у меня состоялся показательный разговор с Алексеем Малановым, сотрудником «Лаборатории» и опытным исследователем вредоносных программ, о том, может ли, например, сотрудник отдела по связям с общественностью (=не технарь) стать вирусным аналитиком? Ответ был простой и сложный одновременно: основы программирования, архитектура процессоров, особенности операционных систем, сетевые протоколы… В общем, «купи книжку по Ассемблеру и приходи лет через пять».

А что, если подняться на уровень выше? От анализа конкретных экземпляров вредоносных программ (что само по себе непросто) перейти к комплексному исследованию компьютерных инцидентов? Этим у нас занимается подразделение Global Research and Analysis Team (GReaT). К ним я недавно обратился с похожим вопросом: какие книги они могут порекомендовать другим специалистам по компьютерной безопасности (имея в виду, что азы программирования и прочие базовые вещи уже освоены)? В результате получился список из пяти книг — а на самом деле из десяти :-), — с которым можно ознакомиться под катом.
Читать дальше →
Total votes 52: ↑48 and ↓4+44
Comments14

Почему нельзя делить на ноль, даже если очень хочется?

Reading time5 min
Views110K
Недавно на Хабре появилась удивительная статья «Папа, а почему на ноль делить нельзя?», которая собрала массу не менее удивительных комментариев.

Детские вопросы обычно очень сложны («Почему небо ночью темное?», «Почему яблоки падают на землю?») и у взрослых обычно не хватает времени, чтобы их доходчиво объяснить. Да и не всегда взрослые знают ответ на эти вопросы.

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

image

Самые серьезные сомнения появляются, я думаю, после изучения рациональных чисел, когда для любого числа x, кроме нуля, вводится понятие обратного числа 1/x, и графика гиперболы y(x)=1/x.

Очевидно, что при делении 1 на очень маленькие числа появляются очень большие числа, и чем меньше мы берем x, тем больше становится 1/x. Почему же мы не можем сказать, что 1/x=∞ — есть некоторое число?

Алгебраическое возражение против этого состоит в следующем. Предположим, что ∞=1/x является числом. Тогда на это число должны распространяться все правила, которые имеют место быть для обычных чисел. В частности, с одной стороны должно быть верно соотношение 0⋅∞=1, а с другой стороны поскольку 0=1−1 должно быть выполнено 0⋅∞=1⋅∞−1⋅∞=0. Таким образом, имеем 1=0, а из этого уже следует, что все числа равны между собой и равны нулю. В самом деле, поскольку для любого числа x верно 1⋅x=x, то 1⋅x=0⋅x=0.

«Ну разве это не полная чушь?» — спросим себя, добравшись до этого места.

Разумеется, это полная чушь, если мы говорим об обычных числах. Но я недаром подчеркнул выше слово «правила». К ним мы вернемся чуть позже, после рассмотрения арифметического возражения против деления на ноль, и поможет нам в этом фасоль.

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

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

image

Тем самым, мы установили делимое на нашем бобовом калькуляторе.

Читать дальше →
Total votes 97: ↑81 and ↓16+65
Comments96

Information

Rating
Does not participate
Date of birth
Registered
Activity