Pull to refresh

Comments 30

UFO just landed and posted this here
Уровень безопасности некоторых игр просто поражает. Например, лично сталкивался с тем, что в одной онлайн-игре была неправильно сделана система бана пользователя, так что человек с небольшим опытом работы с API мог входить на заблокированные аккаунты. Благодаря этому, за некоторую сумму денег можно было вытащить игровые ценности с заблокированного аккаунта, главное, чтобы это не заметил никто из тех, кто знал про бан аккаунта.
UFO just landed and posted this here
Если средств и ресурсов хватает, то можно сделать песочницу на сервере, игрок взломать игру не сможет, только сервер. Те же Rockstar жмотятся на серваки и сделали Gta online p2p, а в итоге количество читеров зашкаливает.
UFO just landed and posted this here
Я вам таки больше скажу, в свое время не раз видел как народ ухахатывался над теми, кто спрашивал, как взломать онлайновую игру через artmoney или cheat engine. Как показала практика, если найти подходящую уязвимость, это вполне возможно)

Да, но начинать-то надо с уязвимости, а не с артмани.

Ясен пень. Просто фраза «я вашу ММОшку артманей ломал» звучит забавно.
Неужели разработчики не отслеживают в автоматическом режиме такие вещи, как внезапное появление 18 квинтиллионов внутриигровых денег на одном персонаже?
Не всегда инструменты позволяют это сделать. Например, локализаторы многих игр по договору имеют доступ только к ограниченному числу инструментов и логам. Остальное недоступно. И с таким ограниченным набором бывает очень сложно вычислить аномалии. Особенно, если это требует хорошего знания игры (например, персонаж выполняет какие-то странные действия в одиночном инстансе, из босса падает дорогая вещь, которую на черном рынке человек продает за 1000 рублей). Несколько таких походов в день, можно неплохо жить. А поймать это гейм мастеру без информации со стороны сложно.
Иногда бывает технически сложно или дорого получить/связать/визуализировать те или иные данные
Я какое-то время держал фри-сервер одной игрушки+знал в общем и целом обстановку на официальном русском сервере.
Фокус вот в чем: далеко не всегда локализатору предоставляют исходники, а от разработчиков ответа добиться и дождаться патча сложно. К примеру, когда в открытый доступ на ютубе выложили фокус, позволяющий рисовать из воздуха предметы, китайцы фиксили его пару месяцев, если не ошибаюсь(хотя фиксов там было пара строчек, я делал такое со старыми исходниками, утекшими в сеть).

Вообще, что бы вы понимали — средней руки ММОшка с хреново написанным кодом(это я про все ту же игру) занимает метров 300 чисто исходников. В собранном виде эта ересь весит гигабайты. Не зная сути бага, найти его крайне затруднительно. А вот если знать, как его воспроизвести — иногда можно закрыть и без доступа к исходникам.
Кроме того, иногда можно вычислять читеров по определенным параметрам в БД(я так вычислял тех, кто рисует шмотки(пока не закрыл это в исходниках), в автоматическом режиме — правда уже не помню, как именно).

Еще печально то, что даже зная о баге, не всегда можно его закрыть, не имея определенных инструментов или тех же исходников. Забавно было, когда я на 1 пиратке пытался махнуть описание sql-inject'а и способы его фикса на патчи, контактируя с админами через клиент игры(накинул себе права ГМа и системными функциями нашел ГМов онлайн), словил от них бан при обращении(среагировали на левого ГМа). Что бы снова зайти в игру, используя этот баг, понадобилось минут 5-10 — после этого выслушали и забили болт. Года через пол вроде как пофиксили, не тестировал, не в курсе.

Вообще, занимаясь параллельно исследованием багов и содержанием собственного сервера, собрал прорву информации и игре(ну и кучу лулзов, было забавно).
Долгое время играл в 1 игрушку(клиентская MMORPG), в какой-то момент надоело просто играть, начал заниматься сначала разработкой под нее разного рода аддонов/макросов, немного ковырял существующего бота, пробовал писать свои тулзы(собственно, на этой игре и учился кодить).
В какой-то момент начал заниматься реверсом игры — оказалось весьма увлекательным занятием. Первый свой баг я нашел где-то через год игры и он базировался на чужом(можно было использовать некоторые низкоуровневые «гм»-команды, подправив память). Собственно, ничего шибко интересного там не было(поначалу) — но 1 из функций позволяла изучать рецепты удаленно, не подходя к NPC.
Я запустил в цикле проходку по всем ID, которые были в игре(не только по рецептам). Представьте мое удивление, когда из ниоткуда у меня появилось что-то в районе миллиона игровой валюты.
Позже мне попались в руки исходники сервера этой игры(утекли в паблик), из интереса посмотрел, в чем был прикол. Баг был довольно нетривиальным и работал так:
Под каждый тип объектов(вещи, рецепты, NPC и т.д.) использовались специальные базы, которые считывались в union из кучи struct'ов под каждый тип объекта. Прикол был в том, что если скармливать функции левые ID, менялись оффсеты и типы данных. Для определенных данных это значение уходило в минус, что и позволяло получать миллиард валюты из воздуха.
Это был самый легкий баг, который прожил около 4 лет. Но дальше было куда интереснее.
2 баг мне подсказал знакомый, который нашел способ рисовать характеристики на вещах. В какой-то момент я экспериментировал с разными вещами и открыл так называемые «гаши»-специальные «пакеты», в которых на сервере утрамбовывалось до 8 вещей. ID вещей записывалось в «статы» «гаши» как ID_COUNT, что привело к тому, что в момент, когда я открыл несколько разных гаш, выпал какой-то левый квестовый предмет.
В итоге можно было открывая эти «гаши» получать любые вещи(включая гм-овские, правда, на часть из них требовался класс «гм»), игровую валюту(в том числе и донатную) и прочие ништяки. Еще забавно было рисовать статы поверх яиц, из которых потом выводились питомцы, что позволяло из воздуха получать миллионы хп, атаки и прочих статов.
Но это были цветочки. Следующим багом я обнаружил sql-inject. В клиентской ММО. По иронии судьбы, единственным местом, которое разработчики не додумались проверять на инжект(ну, как проверять, они тупо перегоняли все значения в hex, после чего cast'овали его обратно в строки в mssql), оказался mac-адрес, которые передавали для вычисления читеров и бана по маку. В 40 символов получилось втулить запрос, который позволял выставить себе максимального ГМа.
Ну и последним(причем на данный момент рабочим на официальных серверах) багов оказался бэкдор от самих разработчиков, позволяющий легкой правкой клиента выставлять себе максимальные права.

В-общем, забавные были времена, да.
Вот ваш коммент интереснее статьи, у вас концентрированные технические подробности, а не вода аля «я тут понял, что можно зарабатывать деньги», пересказанная несколько раз разными словами. Не в обиду переводчику, но зарубежные статьи часто таким грешат.
Не только зарубежные, хотя в этой статье содержание воды превышает все мыслимые и немыслимые рамки. Также порою читаешь биографию и удивляешься, как этот человек еще на Марс не улетел, ведь таким гением был…
На самом деле просто не все готовы открывать баги, приносящие деньги(ну или с этической стороны — отдавать подобные вещи в паблик, это как дать ядерную бомбу стаду обезьян. Плавали, знаем).
Ну и написать даже краткий гайд по эксплуатации определенных багов — еще тот квест: умея и зная, как это делать, перенос на новую версию клиента, даже не помня, что конкретно делал, занимает час-2 от силы(а если помнить — минут 10). А вот с 0 расписать пошагово — это задачка не на 1 час.
И почему же вы оставили профитное занятие в прошлом?
Сервер держать — непрофитно, по крайней мере, я им занимался больше из интереса, который под конец потерял.
Зарабатывал я толком разве что на 1 из багов на пиратке(пока был студентом), потом забанили, а заново этим заниматься было лень. Потом — просто надоело. Сейчас — есть хорошая работа и, слава Богу, нет необходимости заниматься такой фигней для заработка(а так — не шибко интересно, хотя иногда ностальгия прошибает).
в Южной Корее группу хакеров арестовали и обвинили в работе над взломами видеоигр и зарабатывании денег для Северокорейского правительства

Странно, а зачем им (хакерам) это?

Наверное не им нужно, а следствию — чтобы срок побольше дать. За работу на КНДР явно срок больше будет.

Это не им, а Ыну как один из вариантов зарабатывания валюты. Семьи этих хакеров вполне могут быть «под присмотром» дома, пока денежки зарабатываются.
Семьи этих хакеров вполне могут быть «под присмотром» дома, пока денежки зарабатываются.


Чтобы стать хакером нужна практика.
А много ли ее можно набить в Северной Корее.
Поясню про Ultima Online: В игре помимо забоя мобов можно было ещё много чего, в частности иметь недвижимость в произвольном месте на карте (не инстанс). Место, куда может влезть дом, должно быть свободно от деревьев, камней, и т.п., а карта мира не такая и большая (около 20 кв. км. не считая доп.территорий), поэтому количество таких мест ограничено, и как правило они все давно застроены. Это породило чёрный рынок территории под строительство.

Движок UO всегда был довольно сложным и запутанным; новые баги и эксплоиты находились каждый день, саппорт реагировал на репорты не всегда оперативно и адекватно. Игровые механики менялись довольно сильно на протяжении многих лет её существования. В частности, «неправильно установленный дом» — когда по текущим правилом в этом месте дома быть не должно, а он есть — это официальная фича этой игры.

В связи с вышеозначенным, хакеры также постоянно были занозой. С ними боролись, их банили, но меньше их не становилось. Дело несколько осложняло то, что для игры фанатами было разработано огромное количество полезных утилит разной степени разрешённости и распространённости.
Молодец. Выступил на Def Con и уже как бы не киберпреступник…
Выборочно у нас как то становятся или героями, или преступниками.
В таких статьях постоянно все положительное выпячивают, а отрицательное скрывают независимо от того, о чем скрывают. И учебу себе оплатил и против людей не читерил, о багах в саппорт сообщал, а потом даже решил бросить все это по морально-этическим причинам. Ну просто святой человек)
Ну да, герой. Сам он не читерил против людей, просто читерски одевал донатеров за деньги.
Star Wars New Republic
Опечатка в оригинале, должно быть Star Wars: The Old Republic.
Помню в diablo шмот клонировали. Роняли на пол какой-нибудь шмот и в момент поднятия если что-то взять из инвентаря, то у тебя оказывалась в руках копия шмотки)
А в Dungeon defenders 1 до сих пор можно «взламывать» валюту с помощью… artmoney. На офф ранкед серверах. И не только валюту, а любые статы на шмотках. И долгое время существовал черный рынок, где непонятно кто покупал шмот и валюту. Естественно хакнутую. Мб и до сих пор существует, хотя «хакнуть» эту игру и школьник вася сможет. Дюп любых шмоток тоже есть…

Разработчикам пофигу, сделали 2ю часть где погрузились еще глубже в p2w, только уже не с платными персонажами как в первой, а стэшем и бустами.
В warframe по слухам долгое время можно было в памяти редактировать хп, патроны и прочие радости жизни. Еще я в свое время развлекался, бегая на спидхаке по определенным миссиям, где это приносило неплохие дивиденты, правда, потом тупо попался — у них накатили «античит», который при запуске(!) игры чекал на наличие cheatengine и банил после 2-3 раз.
Правда, игрушка работает по принципу «клиент-хостер — сервер»(а в сингле — твой клиент и есть сервер), потому это не так удивительно.
Про онлайн-игрушки под андроид я вообще молчу, многие при выходе крякабельна(правда, потом баги все-таки обычно закрывают, если игра приносит доход). При желании можно зачастую найти видео-гайды или моды под это дело(правда, я обычно натыкался только на протухшие с прошлых версий).
Ну и про вышеупомянутую игру — я описывал чисто хаки, а дюпов там хватало. Самый прикольный был завязан на рассинхронизации баттл-серверов(арены, осады) с основными: можно было зайти на осаду, как-то хитро разлогиниться(уже не помню), залогиниться опять, впихнуть все дюпаемые предметы и валюты на почту или аук и зайти обратно на осаду. Происходил rollback(на осаде сохранялось старое состояние чара) и получали готовый дюп.
Вообще дюпов было несколько, еще всякие приколы в стиле «зайди в данж, дойди до ласта, выйди всей патькой в офф, зайди твином, ресетни данж, зайди обратно в данж всей пати в обновленном данже у последнего босса».
Флайхак местный — чуть ли не местная легенда: его даже пытались на сервере закрывать оригинальным способом — начинаешь плыть(флайхак именно так и работал, эмулировал плавание) и тупо дохнешь. Народ взвыл — фичу выключили(хотя настройка осталась). Еще им можно было при определенных условиях пролетать сквозь стены и скипать треш(который настолько лют обычно, что босс по сравнению с ним — аки младой ягненок).
Еще забавно было инвизеров палить. В игре есть 2 типа инвизов — ГМовская команда(сервер) и все остальные(клиент). Проходимся простым кодом по всем окружающим игрокам, перетыкаем флаг — видим все живое.

Ну и самая смешная хохма: в какой-то момент кто-то завтыкал и выставил неправильные флаги воротам на осадах(НПС, просто с особыми настройками). В итоге ворота, которые при грамотном хиле или багоюзе вынести крайне затруднительно, можно было тупо… обойти. Как? Подбегаем к воротам, кидаем фир(страх) — ворота убегают.
Sign up to leave a comment.

Articles