Яндекс.Метрика

    Песочница

    Песочница

    Приложения для приема цифрового телевещания средствами DirectShow

    Приложение написано под ОС Windows7, DirectX 9, модель тюнера – AverTV Duo Hybrid PCI-E2, язык C#

    Microsoft TV Technologies Internals. В этой статье описан граф для приема цифрового телевещания, а также фильтры, которые используются при постороении графа.

    Для создания приложения необходимо:
    1. Построить граф.
    В своем графе я использую следующие фильтры:
    • Microsoft DVB-T Network Provider
    • AVerMedia 716x BDA DVBT Tuner (в зависимости от вашей модели Тюнера)
    • AVerMedia 716x BDA Digital Capture (в зависимости от вашей модели Тюнера)
    • MPEG2 Demultiplexer
    • BDA MPEG2 Transport Information Filter
    • MPEG-2 Sections and Tables
    • Microsoft DTV-DVD Video Decoder
    • Video Mixing Renderer 9

    Песочница

    Домашний сервер. WiFi роутер

    Домашний сервер это просто… компьютер, работающий 24 часа, 7 дней в неделю, 365 дней в году. Что он делает?
    «Раздает» интернет по проводу и по воздуху.
    Является складом с круглосуточном доступом для всех ваших коллекций фильмов, музыки, игр, программ, backup'ов важной информации, сюда же можно добавить, что это ваше файловое хранилище доступное внутри сети, а если постараться, то и из любого уголка мира можно попасть в него. Понравилось? Хотите «завести» подобное у себя дома?
    Тут вспоминается фраза из анекдота — «Главное, мужики, не бояться!».

    Песочница

    Сравнение DevExpress CodeRush и JetBrains ReSharper


    Первый раз я столкнулся с ReSharper лет 5 назад. Мне показалось что он тормозит Visual Studio и вообще его анализ разукрасили мой код до неузнаваемости. Большинство подсказок не представляло для меня ценности и только раздражало. Особо не разобравшись я снес его и пошел дальше валить лес двуручными пилами на протяжение следующих двух лет. Я думаю большинство начинающих, и не очень, разработчиков чувствуют что-то подобное и не понимают пользы ReSharper или CodeRush. В этой статье я сравню наиболее полезные и часто используемые возможности базируясь на моем двух летнем опыте использование CodeRush и годового опыта c ReSharper. Сразу оговорюсь перешел с CodeRush на ReSharper только из-за работодателя (на текущем месте работы компания предоставляет ReSharper).

    Песочница

    Безопасность компьютера для параноика

    image Любой специалист по безопасности понимает, что стоимость атаки должна в разы превышать стоимость защищаемого объекта, иначе от системы защиты нет смысла. На «войне», или, что то же самое, в ситуации жесткой конкуренции, в формулу также включается стоимость самой защиты (потому что война за место под солнцем не выгодна обеим сторонам), но к домашнему/офисному пользователю это не относится, поэтому ограничимся пока простой формулой.

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

    Считается, что на 100% нельзя. На самом деле — можно, если подойти к проблеме, как настоящий параноик.

    Песочница

    Стереоизображение — это просто

    Привет, %username%.

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

    Введение


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

    Очень важно, чтобы ширина повторяющегося фрагмента была меньше, чем расстояние между глаз. Для комфортного просмотра стереоизображения ширина должна колебаться в пределах от 1/3 до 2/3 данной величины. Чем ширина больше, тем более глубокое (объемное) изображение можно получить. Чем меньше ширина, тем меньше устают глаза от просмотра стереоизображения.

    Чтобы увидеть объемное изображение, необходимо сфокусировать взгляд за плоскостью рисунка таким образом, чтобы изображения для левого и правого глаз совпали. Для изображения, целиком состоящего из повторяющихся фрагментов, вы будете наблюдать точно такое же мнимое изображение (ровная плоскость). Единственное отличие – вам будет казаться, что рисунок стал располагаться дальше.
    рис 2.
    рис 2.

    Как получается объемное изображение?


    Чтобы изображение стало объемным, некоторые его части должны восприниматься, как более близкие, другие – как более удаленные. Данного эффекта можно достичь путем сдвига элементов изображения.

    На рисунке 3 показано, как изменилось мнимое изображение, после сдвига двух элементов (красного и фиолетового) реального изображения на одну позицию влево.
    рис 3.
    рис 3.

    На мнимом изображении образовалось два артефакта одинакового размера, равного размеру сдвинутых элементов. Артефакт, находящийся слева от места сдвига, воспринимается, как расположенный более близко к наблюдателю (перед плоскостью мнимого изображения). Артефакт справа, наоборот, воспринимается как расположенный за плоскостью мнимого изображения. О положении элементов мнимого изображения, которые одновременно видны только одному глазу (отмечены пунктирной линией), мозг «додумывает» самостоятельно.

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

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

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

    Собственно реализация


    Создавалось стереоизображение следующей функцией, написанной на C#:

    private Bitmap GenerateStereoPicture(Bitmap bitmapMask)
    {
      // Переводим маску в массив сдвигов
      int w = bitmapMask.Width;
      int h = bitmapMask.Height;
      int[][] mask = new int[w][];
      for (int x = 0; x < w; x++)
      {
        mask[x] = new int[h];
        for (int y = 0; y < h; y++)
          mask[x][y] = bitmapMask.GetPixel(x, y).R / 32;
      }

      // Cоздаем фон
      int s = 100;
      Bitmap stereoImg = GetNewStereoPicture(w + s, h, s);

      // Сдвигаем каждый писел
      for (int y = 0; y < h; y++)
        for (int x = 0; x < w; x++)
          if (mask[x][y] > 0)
          {
            Color pixel = stereoImg.GetPixel(x + mask[x][y], y);
            for (int i = x + s; i < w + s; i += s)
              stereoImg.SetPixel(i, y, pixel);
          }

      return stereoImg;
    }

    На входе функция принимает изображение-маску, созданное в графическом редакторе. Сперва была создана текстовая надпись, к которой затем была применена градиентная заливка (самый первый рисунок в статье).

    Точки черного цвета трактуются функцией как точки с нулевым сдвигом, т.е. они формируют плоскость мнимого изображения. Чем ярче цвет точки, тем больше ее сдвиг, тем ближе она будет казаться наблюдателю. Так как изображение выполнено в серых цветах, то для определения яркости точки я использовал яркость красной составляющей RGB, поделенную на 32. Таким образом, максимально возможный сдвиг равен 255/32 = 7.

    После формирования массива сдвигов, функция создает изображение шириной w+s пикселей, высотой h пикселей и с шириной повторяющейся части s = 100 пикселей. В качестве повторяющейся части я генерирую случайное изображение, состоящее из случайного количества случайных фигур (эллипс, прямоугольник, дуга, кривая) случайного размера и цвета. Вы же можете подойти к этому этапу творчески и заранее подготовить какой-нибудь красивый фон.

    На заключительном, самом важном этапе осуществляется сдвиг каждого пикселя изображения в соответствии с массивом сдвигов.

    P.S. Буду очень рад, если данная статья поможет кому-то хотя бы научиться смотреть стереоизображения, так как сам я далеко не сразу смог это освоить.

    Песочница

    Const vs Readonly (C#)

    Привет!

    Как вы все наверно знаете, практика хорошего программирования подразумевает, что разработчик будет использовать константы в своем коде вместо прямого использования чисел и строк. Иными словами – никаких магических чисел. Согласитесь, куда понятнее для других будет строчка a = MaxItemCount, чем a = 250.

    О том, как правильно объявлять константы, разговоры ходят довольно давно. Еще в языке C был спор, что лучше – const или define. На этот вопрос я сегодня отвечать не буду, но зато расскажу про другой спор из языка C# – const или readonly. Это не спор вовсе, а скорее совет по выбору лучшей техники.
    Что такое readonly?

    Думаю не стоит объяснять вам, что такое const. Наверняка все вы так или иначе знаете про это ключевое слово, так как оно присутствует во многих современных языках программирования. Const, написанный перед объявлением переменной, делает из нее константу – число, строку или иной простой тип, который не должен и не может изменяться. А вот readonly – это фишка именно C#, поэтому про нее поподробнее.

    Песочница

    Сборка кастомной прошивки OpenWRT

    Не так давно озадачился поднятием на своем роутере D-Link DIR-320 сервера OpenVPN. Но после установки прошивки OpenWRT оказалось, что на 4-х мегабайтной флешке роутера не осталось достаточно места для установки OpenVPN. Выходом из ситуации стала сборка собственного варианта прошивки с помощью Image Generator, что позволило при том же наборе пакетов получить прошивку меньшего размера.

    Песочница

    Background Intelligent Transfer Service

    Вы все еще не знаете, как лучше организовать передачу файлов по сети на компьютеры под управлением Windows? Тогда вам сюда!

    Background Intelligent Transfer Service (BITS) – служба ОС Windows, которая может передавать файлы в фоновом режиме. Она используется, в основном, для Windows Update.

    Какой же интерес BITS представляет для разработчиков?

    1. Возможность закачки файлов в фоновом режиме, незаметно для пользователя
    2. Высокий уровень отказоустойчивости. Если сетевой кабель перерубят, или комп выпадет в «синий экран», то BITS докачает файлы, как только это станет возможно.
    3. Intelligent сказано не зря. Если пользователь в данный момент ничего не качает и комп простаивает, BITS воспользуется освободившимися ресурсами. Эту фичу можно использовать, назначая различные приоритеты закачек.

    Песочница

    JavaScript: обработка include_once

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

    Песочница

    Удаленная поддержка компьютера на Linux OS

    Настройка IPv6-туннеля за симметричным NAT и удаленного управления через VNC


    Не так давно я искал решение для удаленного администрирования системой на Linux. Основная проблема в том, что подключен к интернету через провайдеров, использующих симметричный NAT. То есть из internet машины не доступны. Если поискать, то можно найти некоторые программы для удаленного администрирования, но как правило они немало стоят. Опишу, как можно сделать доступ снаружи без таких программ с помощью IPv6-туннеля через gogonet и VNC.

    Песочница

    Почему это может сделать только Павел Дуров?

    Начнем статью с необычной стороны. Пара слов о мотивах, которые побудили меня потратить вечер не на написание кода. Я каждый день вижу тысячи глобальных проблем. Может, у меня есть пара идей для решения двух-трех. А как же остальные? Да, это риторический вопрос, который иногда занимает ума людей. Ответ на него они не найдут. Поэтому оставим его, но, чтобы хоть как-то постараться изменить мир к лучшему, зададим другой вопрос, ответ на который дать гораздо проще:

    «Почему Билл Гейтс выступил с инициативой отдать половину состояний миллиардеров на благотворительность?» Он известен не только как создатель правильно работающей ОС. Последнее время ему нравятся вот такие вещи. Но он прекрасно понимает, что никакие деньги не способны решить всех проблем, поэтому значительную их часть тратит на то, что дороже любых пиастров. То, что всегда являлось самым ценным активом. То, что старик Генри Форд знал еще век назад, когда сказал: «Мое самое ценное вложение денег, самый дорогостоящий актив — это люди, с которыми я работаю». Поэтому Билл тратит много сил и денег на образование. Это и есть ответ на вопрос: Гейтс знает, что мы бессильны против тех проблем, с которыми человечеству предстоит столкнуться в ближайшем будущем. Единственный выход — дать следующему поколению лучшее образование.

    Итак, мы ответили на вопрос. Зададим следующий: «Как с помощью WWW нести просвещение в массы?» Это чуть более сложный вопрос, для ответа на него нам придется ответить на несколько других. Согласно Принципу Парето, около 20% выпускников школ будут приносить 80% пользы для общества, и наоборот. Кто же эти 20%? Наверное, такие как Павел. Те, у кого раскрылся талант благодаря обстоятельствам, учителям и т.д. Я, к сожалению, отношусь к другой части, но это позволяет взглянуть на проблему с другой стороны: поступил не на тот факультет, поняв это слишком поздно. Согласитесь, так редко бывает, когда школьники точно знают, чем хотят заниматься в жизни, что их по-настоящему волнует. А ведь это очень важно, вот именно это: заниматься тем, что не отпустит тебя на обед.

    Вот так неожиданно сформировался следующий вопрос: «Как сделать так, чтобы после 10 лет в школе и 5 в ВУЗе люди не мечтали (слишком сильно) на работе об обеденном перерыве?» Вконтакте делает первые шаги в сторону освоения коллаборативной фильтрации. Я понимаю, что проще начинать с аудио и видеозаписей: количество сущностей в этих сферах минимально относительно других (контента интернета, к примеру). Google, тот, который с Плюсом, понял одну очевидную вещь: мы хотим делиться информацией только с небольшим кругом людей. Часто, просматривая какую-либо страницу в интернете, я жму Like, но не отправляю это в ленту. Это, как правило, та информация, которая интересна мне, но совсем не интересна друзьям. «Она интересна мне, но среди моих друзей нет тех, кому она интересна» — говорю я, нажимая «Мне нравится», но не отправляя в ленту. Сбор этих данных и их обработка коллаборативными методами позволит сделать особые рекомендации: друзей по интересам. Почему это так важно? Придется опять привести в пример себя. Я, как уже сказал, принадлежу к 80% лузеров. Среди моих 200 друзей нет ни одного, кому было бы интересно обсуждать со мной мои идеи. Не то, чтобы вместе поработать над чем-то интересным, нет. Порой они даже оценить не в состоянии. В результате вот тружусь один над довольно сложным проектом. А что если сейчас кто-то знает, как создать экологичный двигатель, но тоже трудится над ним в одиночку вечерами? Ну, вы поняли.

    А теперь ненадолго вернемся к выступлению Билла на TED. В нем он упоминает, что 20% учителей были самыми эффективными (все тот же принцип Парето). Что же нам с ними делать? Дать больше возможностей для обучения. Наука шагнула настолько далеко за последние десятилетия, а в обучении мы уже несколько веков подряд пользуемся таким примитивом как классная доска, которую видят 30 учеников. С чего можно начать? Когда-то Вконтакте пытался изобразить некое подобие страниц Википедии. Не знаю, отказались ли они от этой затеи, но вторая всемирная энциклопедия нам, конечно, не нужна. «А чего не может Википедия?» — вот еще один важный вопрос. Ответ будет, как минимум, странным. Обучать. Да-да, она на пару с Google ответит на любой вопрос, но не сможет обучить, т.к. это совсем иное. Человек так устроен, что любую сколь угодно сложную сущность он пытается представить абстрактно. Это заложено в нас эволюцией, природой. Именно так мы боремся с неимоверной сложностью окружающего мира. От простого — к сложному. Это именно то, чем в совершенстве владеют те, лучшие 20% учителей. Так давайте же дадим им простой и удобный функционал, пусть для начала выложат в онлайн свои программы обучения, в форме вики-статей с необходимой иерархией и навигацией. С помощью социльного функционала они смогут получать фидбек от учеников, править и совершенствовать материал и методы (есть еще много идей в этой области, но не в рамках данной статьи и ее объема). Далее им можно предоставить (с согласия родителей) возможность видеть «лайки» своих подопечных, чтобы отделять более важные предпочтения от менее важных (фильтровать видео с пляшущими кошками). Такие учителя, без сомнения будут прекрасно выполнять свою работу, подобно лучшим преподавателям из «Азазеля» Б. Акунина. Ученики будут расти вместе с ними, увеличивая точность коллаборативных выборок. И после окончания ВУЗа они поставят им оценку и, выберут 20% самых успешных, у которых получилось найти то, что будоражит их ум и не дает спать вечерами. Следующее поколение также будет ставить лайки и безобразничать на уроках. Только на вопрос родителей: «Чем бы ты хотел заниматься в жизни?» им будет проще ответить. У них будут друзья, увлеченные теми же идеями и проблемами, что и они. Лучшие учителя в стране, пусть и виртуально (зато 1 на 100 000, а не 30 учеников). И, конечно, бесценные рекомендации в разделе «моя будущая профессия» соц. сети на основе самой точной коллаборативной фильтрации предыдущих поколений. Они не будут слишком сильно мечтать об обедах на работе. А WWW будет успешно нести просвящение в массы.

    Напоследок объясню, что побудило к написанию. Вот это интервью и в частности, последние слова: «С другой стороны, заниматься мессианством – неэффективно и сравнимо с деятельностью телеканала «Культура», который вещает, но кто его смотрит? Поэтому, если «В Контакте» удастся придумать и реализовать что-то, что побудит людей учиться, становиться лучше, самосовершенствоваться и менять свои ценности – это будет лучшей новостью лично для Павла Дурова за последние несколько лет.» Потому что мне тоже грустно, когда инструмент, призванный помогать людям, используется так жалко: группы для списывания на ЕГЭ, бьющие все рекорды популярности. Думаю, что администрация Вконтакте прекрасно понимала, что запрещать — не решение проблемы, которую надо решать задолго до списывания на ЕГЭ.

    Песочница

    HaxTor — проходим «разогрев» и получаем бесплатный шелл

    Здравствуйте!
    Сегодня я хочу поговорить с вами о таком ресурсе, как HaxTor. Этот сайт сделан специально для того, чтобы его взламывали, это грубо говоря :) В нем содержатся 5 разогревочных уровней, которые можно пройти и получить себе бесплатный шелл на 2 Гб (по крайней мере это было при тех временах, когда я его получал, сейчас не уверен :)) Затем, после разогрева, можно продолжить усовершенствовать и проверять свои навыки в разных областях ИТ. Вот приведу список заданий, которые дают после разогрева:
    Level 1. Make a nasa.gov URL display a text of my choice
    Level 2. debfKNH1AvtBo deGH9Aq./kiSY denjFRfA8kzL2
    Level 3. Recognize
    Level 4. IP address is 72.14.221.104. What contains 'art' that points to it?
    Level 5. Password is the owl's name
    Level 6. Let's see you do some easy SQL ninjitsu
    Level 7. snifflog.txt — ngrep format
    Level 8. Password is on a picture: not available from anywhere
    Level 9. Elementary Maths
    Level 10. A poem
    Level 11. As simple as hashing a string
    Level 12. Ultra Turing
    Level 13. PHP with source — needs exploiting and/or o-o-t-b thinking
    Level 14. Recognize #2
    Level 15. download.com's uptime
    Level 16. root:hsmfs;g@10.0.0.5
    Level 17. Feed me!
    Level 18. Find all usernames
    Level 19. red+blue+green =?
    Level 20. Recognize #3
    Level 21. Backdoor on a suspended domain
    Level 22. MS-Word
    Level 23. Too easy
    Level 24. Defense Intelligence Agency
    Level 25. BitNinja
    Level 26. PHP filemanager with source — needs more exploit
    Level 27. The photo doesn't load
    Level 28. telnet://hax.tor.hu:1800 — Google Word Game
    Level 29. Circumvent PHP filters for XSS
    Level 30. Create the given image using a number
    Level 31. Find all usernames v2.0
    Level 32. Exploit file2image.php
    Level 33. Defense Information Systems Agency — 209.22.99.66
    Level 34. Password is in the image
    Level 35. Follow the pattern
    Level 36. Root password needed
    Level 37. password = f(200)
    Level 38. Name the malware
    Level 39. China Science And Technology Network
    Level 40. I can has satellite?
    Level 41. Poem vs PHP
    Level 42. Criminal Minds FBI haxor scene
    Level 43. CNN's router
    Level 44. Blind SQL injection
    Level 45. Frogs n Toads
    Level 46. Seizure!!!
    Level 47. Backdoor is listening on host — find it
    Level 48. .htaccess editor vs basic auth
    Level 49. Forged DNS from the CIA
    Level 50. No info


    Теперь начнем работу над получением шелла ;)

    1-ое задание
    Здесь вас просят ввести пароль, который по заверениям подсказки находится в исходниках. Давайте посмотрим в исходный код страницы. Проанализировал HTML-код формы, мы узнаем какая функция вызывается при нажатии на кнопку GO:
    
    <form method="GET" action="/warmup1/" name="lf" onSubmit="a(); return false;">
    				Password: <input name="pw" class="input">
    				<input type="button" class="button" value="Go" onClick="a()">
    			</form>

    Видим что вызывается функция по имени «а». Давайте же посмотрим наш исходный код, в надежде увидеть эту функцию. Есть, мы ее находим в самом конце исходного кода:
    
    function a(){
    	thepw = 'warmup1';
    	thepw = thepw+'lol';
    	thepw = thepw + 'copter';
    	if (document.lf.pw.value==thepw) {
    		document.location = '/'+thepw; } else { alert('That is not correct. Please try again.');
    	}
    }
    

    Судим по коду и узнаем, что пароль хранится в строке thepw. Получаем при конкатенации строк вот такой пароль: warmup1lolcopter. Вбиваем его в поле и нажимаем Go. Переходим на следующий уровень.

    2-ое задание
    Сейчас этот эпизод не работает, поэтому можно просто вбить fail и нажать Go :)

    3-ое задание
    Здесь нужно выбрать со списка элемент Bacon, которого нету в этом списке. Как же его выбрать? Та очень просто. Заходим в исходный код страницы и видим строки:
    
    <form method="POST" action="/warmup3/" name="lf">
    				<input type="hidden" name="crypt_key" value="d719b8adfc6e3841ffc856d52abc5fb9">
    				<select name="chosen" class="select">
    					<option value="Apple">Apple</option>
    					<option value="Lemon">Lemon</option>
    					<option value="Mango">Mango</option>
    					<option value="Orange">Orange</option>
    				</select>
    				<input type="submit" class="button" value="Proceed">
    			</form>
    

    Из исходника мы видим, что имя переменной, которая передается на сервер «chosen». Именно в этой переменной и передается выбранный нами элемент в списке. Давайте же попробуем передать бекон через глобальные переменные. Составляем запрос: ?chosen=Bacon. Добавляем его к нашей странице. Получаем вот такой запрос: hax.tor.hu/warmup3/?chosen=Bacon. Нажимаем Enter и переходим на следующий уровень :)

    4-ое задание
    Здесь нам предлагают перейти на страничку с паролем, но при переходе почему-то вылетает вот это: This browser is banned: Opera/9.80 (X11; Linux i686; U; ru) Presto/2.9.168 Version/11.50. Что же делать в этом случае? В этом случае тоже все очень просто. Можно решить двумя способами: первый — это через телнет, а второй через локальный веб-сервер и PHP. Я выбрал второй способ, так как с запросами GET и HTTP не особо знаком. Если у вас стоит Linux и NetBeans, настроен Apache на локальном сервере и настроен PHP, то это не будет проблемой ;) Заходим в NetBeans (или любой другой редактор, это ваши вкусы и предпочтения) и пишем такой код:
    
    <?php
    echo file_get_contents('http://hax.tor.hu/pwfor4/index.php');
    ?>
    

    Вбиваем в адресную строку localhost и видим текст: The password is: spaceship. Заходим в хакстор и вбиваем в поле spaceship. Переходим на следующий уровень :)

    5-ое задание и последнее для получения шелла :)
    Здесь нам дан хеш пароля, и нам нужно его расшифровать. Я же сразу в тупую кинул его в John Ripper, но ничего в ответ не получил. Начал анализировать этот хеш и пришел к выводу что каждая четная позиция этого хеша не изменяется при соблюдении количества символов и меняется при их изменении. Начал подставлять разные символы, каждый раз увеличивая длину пароля на единицу, и наконец-то я нашел совпадение этих позиций при длине пароля в 5 символов:
    Исходный хеш: 83 230 69 128 66 214 89 24 92 204
    Хеш моего пароля 12345: 6 230 5 128 4 214 3 24 2 204
    Значит каждая нечетная позиция означала сам код символа. Начал изучать таблицы ASCII, UTF и прочие таблицы. Перебрал все совпадения с таблицей и ничего не получилось. Тогда я заметил, что если идти по алфавиту, то и сам код будет возрастать на единицу или спадать. Тогда я начал делать вручную «тупой» подбор пароля, подбираясь все ближе и ближе к самому паролю :) В итоге я попал на слово "drunk". Его хеш полностью отвечал исходному хешу и меня пропустило на страницу регистрации :)

    После регистрации вы получаете данные доступа к своему аккаунту, что позволяет вам решать дальнейшие головоломки и управлять своим бесплатным шеллом :)

    Песочница

    Nokia анонсировала новые смартфоны на Symbian Belle — Nokia 600, Nokia 700 и Nokia 701


    На Хабре незамеченным прошел анонс трех новых смартфонов фирмы Nokia, который состоялся 24-го августа в Гонконге. Не смотря на радикальное изменение глобальной стратегии, компания Nokia продолжает вести работу над Symbian и выпускает как обновления ПО, так и новые аппараты на Symbian. На мой взгляд, смартфоны получились очень интересными и могут потягаться с конкурентами в своем ценовом сегменте. Меня, как разработчика ПО для Symbian, новые смартфоны очень порадовали.
    Все смартфоны построены на базе одноядерного процессора ARM 11 с частотой 1 ГГц, содержат 512 Мб ОЗУ. По утверждению производителя, GPU в новых смартфонах в четыре раза быстрее, чем GPU на моделях текущего поколения (Nokia N8, E7 и др.). Все смартфоны имеют встроенный чип NFC, а новая версия Symbian, Symbian Belle, умеет прекрасно работать с ним. Разрешение экрана осталось традиционным для Symbian — 360x640. Также каждый смартфон линейки может снимать видео в HD, имеет встроенный FM-приемник, GPS, Bluetooth 3.0, WiFi b/g/n, USB host. Из плохого — во всех смартфонах линейки камера без автофокуса (опять...).

    Песочница

    Вопрос фрилансерам. Как вы относитесь к объединению фрилансеров в удаленные офисы?

    Проголосовало 72 человека. Воздержалось 17 человек.

    Песочница

    История создания сетевой игры на ZX Spectrum


    Quake на эмуляторе без второго подключенного ZX Spectrum

    Первая полноценная сетевая игра на ZX Spectrum. Работает она на двух любых клонах speccy 48kb памяти и более, с наличием сопроцессора AY-3-8910 или YM2149F. Поскольку мало кто знает, что на speccy можно было делать такие вещи немного приоткрою тайну создания этой игры.

    Песочница

    Беру и пишу — pen.io

    pen.ioНекоторое время назад мне на глаза попался веб-сервис pen.io, предназначенный для быстрой публикации информациии в интернете. Лично меня, сервис подкупил своей простотой и лаконичностью — всё что надо, чтобы создать страницу, так это ввести название страницы, оно же доменное имя 3-го уровня, и пароль, который защитит страницу от несанкционированного редактирования. И всё — буквально, несколько секунд.

    Для чего можно использовать данный сервис? Для чего угодно: электронных книг, мыслей, публикаций, кулинарных рецептов… А если сообщить коллеге пароль от страницы, то сервис превращается в быстрый способ поделиться, к примеру, кодом программы для совместного обсуждения и анализа.

    Песочница

    Программный RAID-6 под Linux: опыт восстановления массива 16Тб

    Несколько дней назад вышел из строя один из жестких дисков на бюджетном массиве из 16х1ТБ дисков. Уровень массива: RAID 6. Ситуация осложнилась тем, что (как оказалось) ранее также встал кулер на видеокарте этого же сервера, что не было заранее подмечено, и после замены HDD, в результате изменения режима охлаждения корпуса — это стало проявляться в виде зависаний во время синхронизации, что само по себе очень неприятно. Вылилось это в то, что массив перестал автособираться, и были помечены как сбойные еще несколько дисков, и пришлось уже разбираться с ним по-серьёзному, курить вики, мануалы и форумы (форумы — самое полезное, поскольку описывают опыт конкретных людей в конкретных ситуациях).

    Песочница

    Быстрая сборка С++ библиотек под Андроид

    Привет хабрасообщество!

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

    Песочница

    Обзор систем онлайн-консультирования (часть 1)

    Большинство статей в Рунете, посвященных онлайн-консультированию, носят либо чисто рекламный характер, либо выхватывают лишь небольшую толику возможностей этих систем и практически совершенно не дают точки опоры в выборе оптимального консультанта для ваших нужд, будь вы ИТ-директор крупной компании, владелец интернет-магазина или частный предприниматель, желающий увеличить продажи, через свой сайт. В итоге, приходится устанавливать каждую систему, пробовать многочисленные “клоны”, тратить время и, в результате, разочаровываться в веб-консалтинге, как в инструменте. Данная серия статей задумана неким гидом по технологиям, на которых построены все существующие системы онлайн-консультирования их возможностям и цене. Прочтя этот обзор, вы сможете ориентироваться в том потоке систем, которые сейчас представлены на рынке и, я надеюсь, подобрать именно тот продукт, который удовлетворяет вашим потребностям. Как и все авторы, я не претендую на объективность и все же я старался максимально подробно поделиться той информацией, которой обладаю сам на момент написания статьи. Перед прочтением желательно все же знать хоть что-то об интернет ))), браузерах, иметь понятие о сервере и подобных системах.

    Песочница

    PowerShell+Hyper-V

    Не могу уже через gui...


    Примерно так начинался мой разговор с другом которому в течение короткого промежутка времени пришлось несколько раз подряд экспортировать виртуальные машины из Hyper-V. Обычно для этого используется Hyper-V Manager (HVM), который устанавливается вместе с ролью Hyper-V под Windows Server 2008 R2. Я должен признаться что интерфейс этой программы не вызывает у меня каких-либо негативных эмоций. Среди всех программ для управления, которые Microsoft поставляет к Server эта мне кажется наиболее удобной и понятной (сравниваю например с IIS Manager, который вызывает недоумение у новых пользователей и бурное негодование у тех кто использовал IIS 6 в 2003 Server). Однако если нужно экспортировать или импортировать виртуальную машину в количестве N-штук в промежуток t-времени то используя Hyper-V Manager можно сломать кнопку у мыши и жутко возненавидеть Hyper-V. Тут на помощь и приходит PowerShell.