Хакінг: Nintendo Wii. Частина 2

Отже, з деякою перервою — третя частина статті, зауваження і критика are welcome.
Попередні частини:
0. Основні методи захисту приставки.
1. Hardware modchips (Drivechips).
Дана стаття буде не дуже довгою, оскільки інформації саме по софтверних хаках для Wii мало. Все для того щоб Nintendo довше ламала голову, як їх закрити.

Як було сказано в попередній статті, хакерам все таки вдалось витягнути приватний ключ з приставки, а тому можна було розшифровувати будь-які данні з дисків, та сейв файли. Який найпростіший спосіб викликати відмову системи? Звичайно переповнення буфера! Почалися пошуки ігор в яких є введення будь-яких даних юзером та перевірка можливості зробити переповнення буферу.

Гру знайшли. Дивно, але це виявилась легендарна гра з серії The Legend of Zelda, The Legend of Zelda: Twilight Princess. Для переповнення буферу використовувалось ім'я коня. Звичайно Nintendo не повні ідіоти, і не лишили можливість ввести 12+ (саме на 13 символі буфер переповнюється) прямо з гри, але записати в сейв файл 13 символьне ім'я для конячки ніхто не забороняв.
Так виник перший хак: Twilight Hack. Він дозволяв виконувати будь-який непідписаний Nintendo код з boot.elf/.dol файла збереженого на SD карті. Я не буду заглиблюватись в подальші дії для запуску софту, оскільки це вже виходить за рамки самого "спортивного інтересу" хакінгу.

Nintendo вперше почала пробувати блокувати хак в версії прошивки 3.3 (зараз версія 4.1). Спроба була дуже банальною. Перевірявся MD5 файлу сейва і якщо він відповідав записаному в пам'яті — він стирався. Було просто смішно дивитись на таку спробу. Досить змінити одну букву в імені конячки і вуаля, експлоїт знову працює. Epic Fail.

В версії 3.4 Nintendo зробили значно розумніше. Вони перевіряли контент файла по відповідному паттерну та шукали блок коду який відповідає за виклик файла boot.elf/.dol, але знову таки, без помилок в Nintendo не буває. Вони забули внести цю перевірку в код копіювання сейв файлів з карти на консоль. Досить було записати файл на карту, скопіювати його на консоль та одразу запустити гру. Хак працював, до першого перезавантаження. FAIL!
Фінальний удар Nintendo зробили в версії 4.0. Блокпости стояли на всіх підходах до міста консолі. Скопіювати сейв з експлоїтом не було можливості.

Але партизани і тут знайшли вихід вхід до міста. Bannerbomb. Наступна діра виявилась не в грі, а просто в прошивці! (fail again) Діра виявилась в реалізацї PNG коду для баннерів каналів. Для виклику переповнення буфера використовується не зовсім валідний PNG файл. На жаль нічого конкретного по принципу роботи цього експлоїта невідомо.

Сьогодні (23 вересня) командою Team Twiizers був випущений ще один експлоїт який використовує переповнення буфера в грі Lego Indiana Jones, Indiana Pwns. Принцип роботи такий, як і в Twilight Hack. Ще один фейл розробників ігор. Перевіряйте ваші інпути.

Отже хочу зробити деякі висновки по всіх фейлах Nintendo.
Основним фейлом було залишати сумісність з GameCube. GameCube була не настільки успішною приставкою, для неї було мало дійсно хороших тайтлів, та і портування хороших тайтлів геймкуба не зайняло би багато часу (вже виходили перевидані варіанти Pikmin). Без сумісності з кубом було би просто неможливо витягнути приватний ключ, без ключа не було би можливості створити "багнутий" сейв файл для зельди, а отже не було би можливості запускати непідписаний код. З Bannerbomb теж би нічого не вийшло, адже канал треба модифікувати, а для розшифровки потрібен той самий приватний ключ. Nintendo вирішила зрубати більшу касу на підгрунті сумісності з GameCube, але, мені здається, вийшла в значно більший мінус з піратством через софтверні хаки яке значно активізувалось останнім часом.

На цьому з Nintendo Wii мабуть закінчу. Дякую за увагу. Якщо у Вас є цікаві пропозиції по темі хакінгу — пишіть, я обов'язково розгляну можливість наступних циклів.

P.S. Вибачте за можливі орфографічні та стилістичні помилки (має бути вже менше, я встановив спелчекер в опері).

коментарі:

Enetri 23.09.2009 16:42
Просимо рекомендацій дотримуватися, адже це ваших інтересах:
Абзаци вартує розділяти пустим рядком
Інакше сприймати "монолітний" текст значно важче…
deleted 23.09.2009 17:24
Можливість редагувати пости є одною з найважливіших проблем. От зараз повставляв би розриви.
Enetri 23.09.2009 17:30
Насправді, цієї проблеми більше немає.
А можливість така - є, принаймі експериментальна :)

P.S. E
deleted 23.09.2009 17:36
Эм, можливо варто базувати можливість редагувати пост не на рейтингу статті, а на рейтингу автора. Я хочу виправити цю статтю зараз, але не можу... Будь яка користь від редагування у такому випадку пропадає тому, що:ї
1) Якщо в статті є помилки при постінгу, то я не зможу їх відредагувати і стаття провалиться (мене замінусують в плінтус :P)
2) Якщо в статті є помилки, того-ж форматування які я хочу виправити, але стаття вже вилізе на рівень плюсів то редагувати статтю вже аж такої нагальної можливості немає.

Мабуть це варто включити в перелік "жовтих штанів". Тролям з 0 рейтингом не вдасться відредагувати пост і забрати провокаційну інфу і їх справедливо замінусують, а людям яким ТРЕБА її виправити треба чекати на +...
deleted 23.09.2009 17:38
нагальної можливості потреби немає.
Вибачте.
deleted 23.09.2009 17:43
До того-ж в формі редагування не зберігається форматування, в мене весь текст на купу в 1 рядку.
deleted 23.09.2009 19:28
Виправив. Так ніби краще. Дуже дякую за можливість редагування.
deleted 24.09.2009 06:08
Додав ще 1 експлоїт який випустила команда Team Twiizers 23 вересня (прямо в день публікації статті).
deleted 29.09.2009 17:56
Як я і казав на голову піратам впав ще один (і не останній) банхаммер. Заблоковано BannerBomb. Працюють Indiana Pwns та новий, свіжо випущений, експлоїт Smash Stack. Це досить влучний постріл зі сторони Nintendo по піратам.

додати коментар: