Всё сломалось: легендарные баги в видеоиграх. Как найти баг в коде Что такое баги в игре

Как найти баг в коде

Как часто вы тратите часы чтобы понять почему же эта эта вредная навигация сползла, а это изображение отображаясь искажает весь текст невероятным способом? Этот способ позволяет найти причину практически не думая за 5 минут. Наверное почти все пользовались этим методом поиска багов в вёрстке.

Зачем

Очень много времени в верстке уходит на решение багов, и поиски их причин. Если вы чувствуете, что можете потратить более 20 минут на поиски причины - лучше смело использовать этот метод, он редко отнимает более 5-10 минут. Впрочем, менее 5 минут, он тоже редко отнимает. И это его единственный недостаток.

Когда

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

Идея

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

Принцип очень простой, чтобы найти, например, точку на отрезке:

  1. Делим отрезок пополам, определяем в какой половине содержится наша точка
  2. Повторяем процедуру для полученной половины отрезка с точкой

И так, пока не получим нужную точность.

А так это выглядит в задаче про поимку льва в пустыне:

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

Алгоритм в приложении к вёрстке мало отличается от классики. Львом будет кусочек кода делающий глюк. Пустыней - весь код.

>Суперпупермегаалгоритм

  1. Удаляем половину или просто большой кусок HTML (CSS)
    • Если глюк остался виден, продолжаем процедуру для оставшегося кода
    • Если глюк исчез, возвращаем удалённый код и повторяем процедуру для него (удалив другую половину)

В результате останется только “глючный” HTML, обычно это пара блоков связанных с глюком.
Тоже самое повторяем для CSS кода. Если в HTML еще нужно было соблюдать иерархию, то в CSS можно смело удалять по половине кода.

Таким образом, в конце у вас останется несколько строк CSS и только те блоки в HTML, которые составляют глюк. При таком количестве кода вам будет трудно не найти баг или опечатку.

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

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

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

В конце

Даже странно почему об этом способе так мало написано(может потому что это слишком просто?). Надеюсь кому-то он поможет, меня не раз и не два выручал. Вдобавок, такие действия помогают начинающим веб-мастеру лучше разобраться и прочувствовать как работает этот CSS. =) А при поиске глюка в чужом коде - это практически единственный путь.

Привет баклан.

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

О них и поговорим. Любимая атака (и самая лёгкая) это атака на подтверждения ввода. Суть атаки том, что кривые программисты написали своё детище так, что CGI сценарий неадекватно реагирует на вводимые в него данные. После чего этот сценарий делает не то, что от него хотел разработчик, а то, что хотел злобный взломщик:). Вот, например в IIS есть уязвимость называемая MDAC
RDS. Компонент RDS (удалённый сервис данных) и есть уязвимый объект в
MDAC. А если быть точнее, то этот компонент RDS Data Factory. Если админ - лошпекус, то он оставил настройки по умолчанию, где разрешено исполнение удалённой команды на сервере IIS. Команда выполняется обычно от пользователя
SYSTEM. Теперь о том, как эту багу юзать. На сайте
www.securityfocus.com есть сценарий на языке Перл, который позволяет послать и исполнить любую команду базе данных - btcustmr.mbr (экспериментальная база данных). Где-то я видел експлойт на Дельфи. Фишка заключается в добавлении к SQL запросу строки " | shell(\"$command\") | " . Обнаружив команду оболочки, MDAC выполнит команду в переменой
$command. Да кстати, для любителей посканировать на CGI баги, если вы обнаружите библиотеку "msadc.dll", значит вполне вероятно, что система уязвима.

Не отходя далеко от IIS, следующий баг, обнаруженный известной группой
eEye: В Microsoft IIS 4.0 хреновая проверка в именах файлов.IDC .HTR и.STM. Как юзать Баг???
Хе... пошлю я тебя на... на www.technotronic.com , там ищи прогу под эротичным
названием -Iishack. Все что надо указать это - адрес жертвы, адрес, где лежит твоя прога + путь к проге...
Большинство взломщиков, таким образом, закачивают на испытуемый сервак другую прогу:
Getem.exe. Это Троян, который распаковывает pwdump.exe и запускает
netcat. Pwdump - выводит дамп SAM, а неткат открывает 25 порт и даёт через него доступ к
cmd.exe. То есть сначала ты коннектишься к 25 порту, а затем запускаешь pwdump и смотришь зашифрованные пароли, которые можно протестить L0pht crack"ом, который попробует перебрать пароли.

Далее я расскажу про неправильное использование скрытых тегов. Читал я в одной
книжке, что некоторые магазины используют скрытые теги для присваивания цены товару!
Поясняю: input type=hidden, а value="123". А что тебе помешает поменять value??? Правильно
- совесть! Введи в поисковик (Altavista) "type=hidden
name=price"-а дальше только удача:). Ту я описал лишь два с половиной бага, известных бага. Как искать эти баги? Три пути.
Либо пойти в поисковик и ввести там что-то типа: "url: "_vti_bin" " а далее тупо перебирать выведенные сайты на iis unicode. Второй путь: есть сайт, который надо наказать, бери сканер
и скань на наличие багов, к слову есть хороший CGI сканер на
www.xp-team.com с описаниями от
www.gingroup.ru и небольшой базой експлойтов. Третий путь, путь истинных хакеров, это путь исследования, попытайся переполнить буфер запроса... короче попытайся применить все известные баги. Но будь разумен... не надо пытаться выполнить iis unicode под Apache, ну ты меня понял:).

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

Как найти баги в играх?

Ответ мастера:

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

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

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

Теперь протестируйте гейплей для обнаружения багов в игре. Если игра первый тест прошла и работоспособность движка вас устраивает, то можно внимательно изучить разработку принципов и баланса игры. Например, если ваша игра похожая на Dead Space, то обязательно оттестируйте все виды оружия и «фишки» разработчиков. Когда какие-то из них дублируют друг друга или вообще лишние, то их нужно пересмотреть или доработать. Особое внимание нужно уделить проходимости игры, чтобы ее можно было пройти даже на самых последних уровнях.

Более детально тестируйте игры beta-версий или еще более поздних. В таком тестировании нет особых приоритетов. Главная цель – это найти баги и различные погрешности. Если вы тестер, то вы должны перепробовать в игре все возможные и невозможные тактики к прохождению игры, использовать максимальное количество ходов, в общем, проявить фантазию. Используйте все возможности игры, непрерывно меняя стиль. Ведь нужно выяснить, к каким действиям игрока программа не приспособлена.

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

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

Инструкция

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

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

Протестируйте гейплей, чтобы обнаружить в игре баги . Если первый тест был удачен и подтверждает стабильную работоспособность движка, то можно уделить больше внимание непосредственно разработке принципов игры и балансу. Например, если речь идет о такое игре, как Dead Space, то нужно тестировать все виды оружия и «фишки» разработчиков.

Если какие-то из них не нужны или дублируют друг друга, то нужно их пересматривать, додумывать и в случае чего дорабатывать. Также стоит обратить внимание на проходимость игры. Даже на самом сложном уровне должна быть возможность пройти игру.

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

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

Баги, или ошибки системы, являются для операционных систем семейства Windows довольно привычным явлением. И если большинство из них являются временными и не доставляют серьезных неудобств, то некоторые могут самым негативным образом сказываться на работоспособности компьютера.

Инструкция

Для просмотра ошибок системы откройте: «Пуск» - «Панель управления» - «Администрирование» - «Просмотр событий». У вас будет возможность просмотреть разделы: «Приложение», «Безопасность» и «Система», в которых будут записаны все сообщения об ошибках.

Если при попытке открыть какой-либо из журналов появляется сообщение о невозможности просмотра, на компьютере, скорее всего, отключена служба «Журнал событий». Чтобы запустить ее, откройте: «Панель управления» - «Администрирование» - «Службы». Дважды кликните мышкой службу «Журнал событий», в открывшемся окне выберите тип запуска – «Автоматически», нажмите кнопку «Применить». После этого нажмите ставшую активной кнопку «Старт».

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

Как восстановить систему при наличии тех или иных ошибок? На практике самым надежным вариантом является переустановка Windows поверх уже установленной системы в варианте «Обновление». В этом случае у вас сохраняются все установленные программы и настройки, при этом обновленная система избавляется от большого количества накопившихся ошибок. Подобную переустановку не стоит делать слишком часто, но порой она становится самым быстрым способом восстановления нормальной работы компьютера.

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

Не забывайте время от времени дефрагментировать диск, на котором установлена операционная система. Высокая степень дефрагментации данных существенно замедляет работу компьютера. Для дефрагментации откройте: «Пуск» - «Все программы» - «Стандартные» - «Служебные» - «Дефрагментация диска».