• Реверс-инжиниринг полёта Бэтмена



      Этим летом вышла очередная игра из серии Batman Arkham, в ПК версии которой оказалось столько багов, что было принято беспрецедентное решение снять её с продаж. Я решил посмотреть, что же там такого ужасного.

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

      На скриншоте изображён этот момент: вместо того, чтобы лететь вперёд, Бэтмен повернулся вниз головой, демонстрируя полнейшее пренебрежение к происходящему. Аналогичный баг был в предыдущей игре (Arkham Origins), и он до сих пор не исправлен. Видимо тот же самый кривой код был перенесён в новую игру. Попробуем найти, какие ошибки делают программисты в играх такого уровня, и исправить их.
      Читать дальше →
    • О сколько нам открытий чудных готовит Office Microsoft



        По сообщениям в комментариях к статье про блокнот, во всех версиях Microsoft Excel, начиная по крайней мере с '97 и до самых новых, в имени листа не всегда можно ввести большую букву Ж. Данная проблема обсуждается в сети уже давно, например на этом форуме забавно наблюдать, как некоторые утверждают, что у них проблемы нет, а у других есть, но не всегда, и никто не понимает, почему так. На первый взгляд можно подумать, что это просто недоработка программистов: они хотели не дать пользователю ввести символ ':', и просто не подумали о том, что Ж находится на той же кнопке.

        На деле оказалось всё гораздо хуже. Описать нормальными словами то, что происходит в excel, когда вы просто нажимаете кнопку 'Ж', практически невозможно. Поэтому я попытаюсь обрисовать в целом процесс исследования, сократив его где возможно, и не слишком перегружая статью ассемблерным кодом. В итоге мы узнаем, почему получается так, что не любые символы можно ввести, и как это можно исправить.
        Читать дальше →
      • Многострадальный notepad: ошибка, которую не исправляют уже 13 лет



          В стандартном блокноте для всех версий Windows, начиная примерно с 2001 года, имеется ошибка, про которую практически все знают, но никто не собирается её исправлять. И это понятно, ведь это не критическая уязвимость, ничьей безопасности она не угрожает. Да и пользуется ли кто блокнотом вообще?

          Тем не менее, сам факт довольно странный, поэтому мы попробуем найти эту ошибку в коде 64-битного и 32-битного notepad.exe от windows 7, исправим её, и выясним наконец, почему же она возникла. Заключается ошибка в следующем:

          Если в блокноте включена опция «перенос по словам» (word wrap), то после сохранения файла начинаются всевозможные глюки: строки начинают разъезжаться, курсор улетает, текст вводится не туда, куда вы ожидаете, и так далее.
          Читать дальше →
        • Разбор форматов: 3d-модели изнутри

            image

            Еще одна статья о разборе форматов, для летнего воскресного вечера, небольшая и развлекательная. На этот раз речь пойдёт о 3d-моделях. Принципы хранения данных для любых моделей одинаковы, но форматы файлов весьма разнообразны. Даже в условиях одного и того же движка разработчики норовят всё модифицировать и впихнуть что-нибудь своё, ведь в коммерческих версиях у них есть возможность менять код движка, и они ей обычно пользуются.
            Читать дальше →
          • Lines и теория вероятностей



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

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

              В этой статье вы сможете вернуться на 20 лет назад и увидеть, как примерно проходил тогда процесс реверс-инжиниринга. Мы рассмотрим 16-битный ассемблерный код, который выбирает место для шариков. Здесь не будет современных 32- и 64-битных инструкций, обрастающих специальными наборами команд, не будет вызовов всяких там dll, потоков и прочих ухищрений. Только простой код. Мне кажется, его поймут даже те, кто ни разу не видел ассемблера. Желающие смогут исправить алгоритм, чтобы он работал «честно».
              Читать дальше →
            • Разбор форматов: упакованные хешированные ресурсы



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

                Рассмотрим это на примере довольно редкого движка bitsquid. Он простой и компактный, но, тем не менее, имеет все необходимые для современных игр возможности. В прошлом году bitsquid вместе с его разработчиком был куплен компанией Autodesk, и теперь они собираются скрестить его с Maya и сделать свой собственный игровой движок, который, как они обещают, будет чем-то невероятным.
                Читать дальше →
              • Разбор форматов: звуковой пакет в Unreal Engine



                  В прошлый раз я рассказал об исследовании связи звука с текстом в движке UE3. Сегодня рассмотрю подробнее более простой случай — разбор пакета звуков Bioshock Infinite, с которого начиналась полная локализация этой игры на русский язык.

                  Разбор ресурсов — это как разгадывание ребуса или кроссворда: начинаем с одной стороны, и постепенно узнавая значение все новых полей, разгадываем всё остальное. Сначала структура ресурсов игры была для нас как тёмный лес. Но постепенно мы узнавали о них всё больше и больше, одно тянуло за собой другое, и в итоге были исследованы и модифицированы практически все ресурсы игры: звук, текстуры, 3D-модели. Пример надписи, изменённой в виде модели вместе с текстурой, картами освещения и отражения, светящимися лампочками, бликами и тенью, можно видеть на картинке.

                  Но началось всё это с простой на первый взгляд задачи: найти, где в игре находится звук, и как его можно заменить.
                  Читать дальше →
                • Разбор форматов: звук в некоторых играх на Unreal Engine



                    Культура модификации игр зародилась ещё в древние времена. Самое раннее, что я помню, это Wolfenstein 3D (1992 год). Если не ошибаюсь, можно было рисовать свои карты, а потом и новых врагов, заменять текстуры и звуки. Главным препятствием в моддинге является разбор неизвестных форматов данных. Оставим моральные аспекты этого явления для других ресурсов, и остановимся на технических сложностях, которые могут возникнуть в этом нелегком деле.

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

                    Допустим, у вас появилось желание заменить определённые фразы в игре, или вообще замахнуться на полную озвучку на каком-нибудь языке, для которого у разработчиков не хватило сил или ресурсов. Казалось бы, надо только записать звук, найти где он находится в игре, и заменить нужные файлы. Но не всегда это бывает просто, например, в последних играх из серии Batman: Arkham используется звуковой движок wwise, который уже довольно давно интегрирован в Unreal Engine.

                    Я уже не раз сталкивался с UE, но, как известно, коммерческие разработчики имеют возможность полностью менять любую часть кода движка, поэтому почти все игры получаются уникальными с точки зрения структур данных, и это всегда интересно поисследовать.
                    Читать дальше →
                    • +28
                    • 18.7k
                    • 3
                  • Анонимное интервью с бывшим участником варезной сцены — 2

                    • Translation

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

                    Начну с самого короткого и простого интервью, с бывшим курьером одной из крупнейших групп, которая занималась музыкой. Роль курьера на сцене невелика, но его взгляд и мнение возможно тоже кому-то будут интересны. Курьер распространяет релизы с сайта группы на другие сайты по всему миру. Под «сайтами» здесь и далее имеются в виду FTP-серверы сцены. Рекомендую ознакомиться также с историей и структурой сцены. Интервью было взято в 2009 году, но несмотря на то, что, как говорят, «сцена умирает», сейчас там по-прежнему каждый день выходят несколько сотен музыкальных релизов в mp3 и flac.
                    Читать дальше →
                    • +16
                    • 13.3k
                    • 9
                  • Нигерийская исполнительница предлагает отрезать пиратам пальцы



                      Нигерийское правительство еще в прошлом августе заявило, что планирует усилить меры по борьбе с пиратством, но певица Stella Monye считает, что этого недостаточно. Она предлагает свой изящный и очень действенный способ: за каждый случай нарушения копирайта отрезать по одному пальцу.
                      Читать дальше →
                    • Novell vs BBS — обзор борьбы с пиратством в конце XX века



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

                        В середине 90-х годов две компании, Novell и Microsoft, были главными борцами с пиратством, которое тогда существовало в виде сети BBS — файлы передавались модемами по телефонным линиям. Всего в США тогда были сотни, возможно тысячи таких узлов, которыми пользовались несколько тысяч человек. О том, как действовала система, можно прочитать в истории сцены. Фактически получалось, что довольно закрытая группа объединённых общим интересом людей покупала каждую выходившую программу, одну копию «на всех», затем снимая защиту, чтобы каждый мог сделать себе копию.

                        По четырём пресс-релизам 1995-1997 годов мы можем проследить, как происходила борьба с пиратами, какие предъявлялись суммы ущерба, какие наказания грозили операторам BBS и какие заявления делали в связи с этим представители указанных компаний.
                        Читать дальше →
                        • +15
                        • 7.9k
                        • 1
                      • Структура современной пиратской (варезной) сцены



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

                          Кроме описания самой сцены, которая и сегодня действует по сформировавшимся еще в начале принципам «сцена — только для сценеров» и «никакого бизнеса», статья также содержит информацию о «нежелательной деятельности», связанной с получением прибыли, которая неизбежно возникла в этом глобальном пиратском андеграунде.
                          Читать дальше →
                        • Mikeysoft — сисоп BBS, прекратившей существование в 1995 году



                            В прошлый раз я публиковал перевод истории сцены, о тех временах, когда релизы передавались через BBS. Теперь я хочу рассказать об одном из случаев, произошедших тогда. Во 2 номере варезного журнала «The Naked Truth» мы можем прочитать список под названием «BBS Cemetery» — список BBS-ок, которые в разные годы закрылись сами, либо их закрыла полиция. В этом списке в том числе значится Аризонский узел The Final Frontier под управлением некого Mikeysoft и The Pits, которым заведовал Pieman.

                            Когда 17 октября 1995 года (если я не ошибаюсь в расчётах) модемные линии The Final Frontier вдруг перестали отвечать, все забеспокоились, что же случилось. Ходили разные слухи. Через несколько дней сам Mikey появился в сети, но он всё отрицал, отговариваясь различными историями. Другой известный участник сцены — w00per заявил, что Mikey арестован, и что адреса, телефоны и другие данные практически всех, кто имел с ним дело уже находятся в руках властей, так как он был весьма неосторожен, и хранил всё это в незашифрованном виде. На следующей неделе в Нью-Йорке был арестован Pieman. Он сам сообщил об этом сцене немедленно, хотя это грозило ему увеличением наказания.

                            Тогда уже все поняли, что Mikeysoft тоже был арестован, и на этот счёт высказались несколько человек, которые его знали, но самым интересным был разговор с Oil Patch 4 ноября, который был опубликован в 5 номере журнала Inquisition. Полный перевод этой беседы — под катом.
                            Читать дальше →
                          • Хабраинтервью с бывшим сценером



                              Интервью с бывшим сценером, русским, участником топовой crack-группы в середине 2000-х. Вопросов было задано не слишком много, поэтому он ответил на все. Похожие вопросы я объединил, если что потерялось — пишите, добавлю. Структура и принципы работы сцены уже давно известны, поэтому здесь мы их почти не касались, но чтобы заполнить возможные пробелы в ближайшее время я продолжу перевод сайта «aboutthescene», первую часть которого публиковал ранее. Несмотря на то, что было уже много статей про сцену, практически в каждой из них всплывает вопрос, получают ли сценеры какую-то прибыль от своей деятельности. И в этом интервью он снова был задан. Ответ на него и все остальные — под катом.
                              Читать дальше →
                            • Вопросы для хабраинтервью с бывшим сценером



                                Ранее я уже публиковал интервью со сценерами, но они были взяты давно, и для других сообществ и сайтов. Сегодня я предлагаю интервью с бывшим сценером специально для хабра. Начинал он, как это обычно бывает, в малоизвестных группах, а в итоге к середине 2000-х стал участником топовой crack-группы, то есть они взламывали софт — выпускали кряки, кейгены и т.п. Он русский, хотя во всех группах, где он состоял, подавляющее большинство были зарубежные коллеги.
                                Читать дальше →
                              • История пиратской сцены

                                • Translation


                                За последний год я опубликовал на хабре около десятка статей про сцену. Это пиратский андеграунд, тысячи и десятки тысяч энтузиастов во всём мире, которые соревнуются между собой в скорости, делая релизы только внутри — на сцене, при этом не извлекая никакой финансовой выгоды. В 2007-2008 годах существовал сайт «aboutthescene», где была опубликована основная информация о структуре, механизмах и правилах сцены, а также история её возникновения и развития. Сейчас материалы сайта доступны только в интернет-архиве.

                                Я начал перевод с истории сцены. Статья была без иллюстраций, поэтому я добавил к ней исторические скриншоты 1995 года с крупнейшей в Нью-Йорке BBS «Park Central», на которых видно, как до 16 пользователей одновременно подключаются к ней с помощью модемов на скорости от 9600 до 28800 бод.
                                Читать дальше →
                                • +43
                                • 23.3k
                                • 8
                              • Алгоритм действия лобби правообладателей



                                  Сейчас, когда идёт активное обсуждение «антипиратского» закона, один из главных вопросов — как сделать так, чтобы к мнению общества прислушивались, а не как в прошлый раз. Создание площадок для обсуждения конечно очень положительный момент, но действовать надо во всех направлениях. Надо, чтобы к обществу не просто прислушивались, а считались с ним.

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

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



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

                                    Работа интересна не столько содержанием, сколько наличием визуальной интерактивной карты, которую он сделал на движке нелинейных презентаций prezi. Можно ознакомиться с оригиналом (на английском), либо с русской версией, которую я сделал с разрешения автора.

                                    Я не совсем уверен в некоторых терминах и выкладках Bodo Balazs, особенно трудно было разобраться в цитатах его коллег по цеху, поэтому если есть ошибки или дополнения — я исправлю. Вы также можете сделать это сами, сделав свою копию — презентация открыта для редактирования.

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

                                    p.s. на карте я спрятал небольшой секрет. Кто найдет — просьба не раскрывать в комментах, где он находится.

                                    Под катом — краткий текстовый перевод его статьи, где в общем-то изложено всё то же самое.
                                    Читать дальше →
                                  • Один из первых варезных журналов: «Pirate» за 1989 год



                                      Тема пиратства — одна из самых обсуждаемых во всём мире. Сегодня я хочу познакомить вас с пиратским журналом, который издавался в 1989 году на одной из самых крупных BBS-ок США, располагавшейся в Чикаго. Тот самый город, где орудовал известнейший торговец нелегальным алкоголем Аль Капоне. Таких людей называли бутлеггерами. Именно так сисопы этой пиратской BBS-ки называли пиратов, которые действуют ради выгоды. В наше время всех пиратов называют просто пиратами, независимо от того, зарабатывают ли они кучу денег на своём нелегальном бизнесе, или наоборот, бесплатно, как робин-гуды, выкладывают релизы в сеть, тратя на это свои время и деньги. Многим сегодня трудно поверить в то, что кто-то может делать что-то бесплатно, однако в те времена существовала четкая граница между «настоящими» пиратами, и теми, кто делал это за деньги.
                                      Читать дальше →
                                      • +33
                                      • 16.3k
                                      • 4
                                    • Я, пират (глава 6)



                                        Окончание рассказа. Начало можно прочитать здесь:

                                        Главы 1-2 habrahabr.ru/post/184910
                                        Главы 3-5 habrahabr.ru/post/186554

                                        Исправлена ошибка с почтой в главе 1, возможно позже я добавлю детали к главам 3-5, которые по отзывам получились малоэмоциональными, а пока представляю вам последнюю главу. На ней заканчивается сюжет, придуманный год назад, и пока продолжение не планируется.
                                        Читать дальше →