Инструкция по применению программы EraseFSR.

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

Многим не понравился такой ход событий, и они начали искать выход из данной ситуации.
Один из зарубежных пользователей нашел выход: правильно модифицировав NAND он заставлял забыть консоль, что она забанена.
Но, к сожалению, раскрыть данный способ он не захотел: он запрашивал 30$ за самостоятельное изменение дампа NAND, гарантируя разбан.

Понадобилось совсем немного времени, прежде чем нашелся еще один человек, которому удалось определить необходимые действия для разбана: им оказался пользователь vlack форума Xboxland.net.

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

Изначально программа могла лишь самое простое: определять список блоков, которые возможно требуют изменения.
От версии к версии программа получала все новые функции: генерация файлов для изменения только нужных блоков, поддержка 256\512 дампов, сравнение и проверка дампов на целостность.
Когда программа умела выполнять почти все необходимые функции, она была переименована в EraseFSR.



Прежде чем начать изучать программу, скачайте ее: EraseFSR 0.28.
Поместите запускаемый файл в папку к NandPro для простоты выполнения команд.



Принцип работы.



Прочитав readme.txt можно узнать основной принцип работы:
EraseFSR - это утилита для последовательного удаления FS Root в NAND (разбан консоли)

Сперва немного теории.
Когда консоль хочет обновить один из файлов своей файловой системы (ссылки на эти файлы, их имена и т.д. хранятся в FS Root), то она не затирает старый файл новым, а для безопасности создает его на свободном месте, затем на другое свободное место записывает измененную FS Root с сылками на не измененные файлы и новой ссылкой на этот обновленный файл. Стоит обратить внимание, что предыдущие сектора занятые предыдущей версией FS Root и старой версией файла заносятся в список свободных и могут быть затерты другими файлами при обновлении. Если самая новая FS Root испорчена, то приставка автоматически считывает предыдущую FS Root, и так далее до тех пор пока не будет найдена рабочая. Однако, если файл на который есть ссылка в FS Root испорчен, то консоль не будет считывать другую FS Root.

Делаем выводы.
1. В NAND памяти может хранится несколько разных версий FS Root и файлов.
2. Чтобы откатить последние изменения, нужно испортить последнюю FS Root
3. Предыдущие версии FS Root или файлов могут быть уже затерты новыми данными.

Известно также, что признак бана находится в файле secdata.bin

Ну чтож, теперь понятно, что нужно стереть все FS Root в которых есть ссылка на secdata.bin с баном, если конечно хорошая версия еще не затерта другими данными. Так что чем быстрее после бана вы постараетесь разбаниться - тем выше ваши шансы.

Утилита EraseFSR как раз и создает список FS Root и соответствующих secdata.bin (заодно и проверяет сразу живой (ALIVE!) этот файл или уже затерт (DEAD)), а также командные файлы для удаления FS Root разбитые по датам. Вам нужно просто удалить все FS Root от самой старшей даты до дня вашего бана включительно. Только учтите, что дата 22.11.2005 - это дата сброшенного времени когда консоль не подключена к Live!
Проще говоря - по порядку  запускайте все командные файлы с первого по тот когда вы получили бан. Если после того как вы получили бан статус файла secdata.bin выдается как DEAD - значит вы слишком долго тянули с разбаном и уже ничем помочь нельзя.
С первого раза понять о чем речь сложно, потому рассмотрим все возможные необходимые действия для достижения результата.




Получение необходимых данных.



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

Как только вы наладите соединение, можно будет приступать к работе.

  • считайте дамп, используя программу nandpro:
    • измените команду под свои параметры:
      NandPro.exe lpt: -r16 nand1.bin
      lpt - использовать интерфейс LPT, при использовании SPI USB Flasher необходимо заменить буквы на usb
      -r16 (-r256 ; -r512) - выставляется в зависимости от размера флеш памяти
      nand1.bin - файл, куда сохранится дамп нанда
      Примеры правильных команд:
      NandPro.exe usb: -r16 nand1.bin
      NandPro.exe lpt: -r256 nand1.bin
      NandPro.exe usb: -r512 nand1.bin
      
    • После ввода команды программа выдаст список выполняемых действий и запросит подтверждение:
      e:\NandPro20>NandPro.exe lpt: -r16 nand1.bin
      NandPro v2.0 by Tiros
      
      Testing LPT device address:0378
      Using LPT device at address:0278
      FlashConfig:01198010
      Starting Block:0x000000
      Ending   Block:0x0003FF
      Press any key to begin reading nand
    • при нормальной работе программа должна определить флеш память и выдать ее FlashConfig
      таблица верных значений:
      Значение FlashConfigТип материнской платыОбъем NAND (Мб)
      01198010Xenon/Zephyr/Opus/Falcon16
      00023010Jasper/Kronos16
      008A3020Jasper/Kronos256
      00AA3020Jasper/Kronos512
      если у вас иные значения - соединение работает неверно, его необходимо исправлять

    • если все определилось верно, нажмите любую клавишу
      Запустится процесс считывания NAND, номер текущего считанного блока будет указан в последней строке.
      В идеале во время считывания не должно возникать ошибок, одноко возможно появление ошибок 210, 250, 280, 300.
      Дампы с ошибкой 280 содержат неверные данные, требуется считать его повторно
      При возникновении других ошибок, вернитесь к инструкции по соединению консоли и ПК
    • Как только считается последний блок - в папке с программой создастся файл nand1.bin, содержащий считанные данные.

    • откройте файл nand1.bin в HEX-редакторе, убедитесь что в самом начале присутсвует надпись



  • считайте дамп повторно, заменив в команде название файла с nand1.bin на nand2.bin

  • после получения второго дампа сравните оба файла:
    • Выполните команду
      erasefsr.exe nand1.bin nand2.bin
      Если вы увидели такой результат, значит с большой вероятностью дампы не содержат ошибок
      e:\NandPro20>erasefsr.exe nand1.bin nand2.bin
      Batch Creator for erase FS Root in NAND v0.27
      Concept by vlack, coded by Chook.
      
      NAND Size 16Mb Detected.
      -----------------------------
      No Differences found!
      Press Any Key...
      Если вы увидели ошибку, то проверьте, что все файлы находятся в одном каталоге с программой, повторите команду
      Cannot open nand1.bin
      Если в сравнении обнаружились ошибки, снимите третий (и последущие дампы), и сравните с предыдущими дампами до тех пор, пока ошибки не пропадут
      Difference in Block: 03D9
      ECC Error  in Block: 03D9 in 1st file
      Difference in Block: 03DA
      ECC Error  in Block: 03DA in 1st file
Если все было сделано верно и соединение оказалось стабильным, у вас на компьютере окажутся пара идентичных файлов, которые с большой вероятностью будут точными копиями вашего NAND.

Очень важно, что бы вы были уверены, что все сделали верно.
Эти дампы - единственный шанс восстановить работу вашей консоли, если что-то пойдет не так.

Если вы не уверены, что данные файлы содержат верные данные - не продолжайте, иначе ваша консоль навсегда превратится в набор железок!




Создание команд для снятия бана.



На данный момент у вас на руках должны быть верные дампы вашего NAND.
Не забудьте сохранить их в надежном месте.

Выполните одну из команд
erasefsr.exe nand1.bin
erasefsr.exe -u nand1.bin
вместо nand1.bin впишите название вашего дампа
-u необязательный параметр, требуется при использовании SPI USB Flasher
Программа обработает данные, содержащиеся в дампе и выдаст на экран лог:
e:\NandPro20>erasefsr.exe nand1.bin
Batch Creator for erase FS Root in NAND v0.27
Concept by vlack, coded by Chook.

NAND Size 16Mb Detected.
-----------------------------
GOOD: No ECC Errors detected!
-----------------------------
01 FS Root: 166 at 0x04B; Secdata.bin at: 0x04A Date: 22.11.2005 12:00:02 ALIVE!

02 FS Root: 165 at 0x049; Secdata.bin at: 0x048 Date: 07.11.2009 12:53:24 ALIVE!

03 FS Root: 164 at 0x044; Secdata.bin at: 0x043 Date: 22.11.2005 12:00:02 ALIVE!
03 FS Root: 163 at 0x029; Secdata.bin at: 0x028 Date: 22.11.2005 12:00:02 ALIVE!
03 FS Root: 162 at 0x027; Secdata.bin at: 0x3DB Date: 22.11.2005 12:00:02 ALIVE!
03 FS Root: 161 at 0x3DA; Secdata.bin at: 0x3D9 Date: 22.11.2005 12:00:02 ALIVE!
03 FS Root: 160 at 0x3D8; Secdata.bin at: 0x3D7 Date: 22.11.2005 12:00:02 ALIVE!
03 FS Root: 159 at 0x3D6; Secdata.bin at: 0x3D5 Date: 22.11.2005 12:00:02 ALIVE!
03 FS Root: 158 at 0x3D4; Secdata.bin at: 0x3D3 Date: 22.11.2005 12:00:02 ALIVE!

04 FS Root: 157 at 0x3D2; Secdata.bin at: 0x0A2 Date: 28.10.2009 12:44:32 ALIVE!
04 FS Root: 156 at 0x3D1; Secdata.bin at: 0x0A2 Date: 28.10.2009 12:44:32 ALIVE!
04 FS Root: 155 at 0x3D0; Secdata.bin at: 0x0A2 Date: 28.10.2009 12:44:32 ALIVE!
04 FS Root: 154 at 0x0A8; Secdata.bin at: 0x0A2 Date: 28.10.2009 12:44:32 ALIVE!
04 FS Root: 153 at 0x0A7; Secdata.bin at: 0x0A2 Date: 28.10.2009 12:44:32 ALIVE!
04 FS Root: 152 at 0x0A6; Secdata.bin at: 0x0A2 Date: 28.10.2009 12:44:32 ALIVE!
04 FS Root: 151 at 0x0A5; Secdata.bin at: 0x0A2 Date: 28.10.2009 12:44:32 ALIVE!
04 FS Root: 150 at 0x0A3; Secdata.bin at: 0x0A2 Date: 28.10.2009 12:44:32 ALIVE!

05 FS Root: 149 at 0x0A1; Secdata.bin at: 0x0F9 Date: 22.11.2005 12:00:02 DEAD
05 FS Root: 148 at 0x09F; Secdata.bin at: 0x0F9 Date: 22.11.2005 12:00:02 DEAD


Press Any Key...
Рассмотри данные, содержащиеся в логе:
  • NAND Size 16Mb Detected. - размер флеш памяти, с которого считан дамп
  • Если вместо этого вы увидите такое сообщение
    WARNING: Trim NAND Size 10Mb Detected.
    то ваш дамп является неполным
    Для таких дампов просчет номера блока идет не от начала NAND, а от стартового снимаемого блока, для использования такого нанда необходимо вручную высчитывать нужные блоки
    Все операции с таким нандом вы делаете на свой страх и риск.
  • GOOD: No ECC Errors detected! - собщение о проверке контрольных сумм, говорит о отсутствии ошибок
    отсутсвие ошибок не гарантирует верность данных
  • допустимо наличие ошибок в малом количетве блоков, только если данные блоки совпадают во всех снимаемых дампах
    ECC Error in Sector: 00BD
  • Далее каждая строчка соответсвует одной записи FSRoot, все записи были разделены на несколько групп по схожей дате.
    Рассмотрим данные по первой из записей:
    01 FS Root: 166 at 0x04B; Secdata.bin at: 0x04A Date: 22.11.2005 12:00:02  ALIVE!
    • 01 - номер группы, в которую программа определила запись
    • FS Root: 166 - порядковый номер версии FSRoot. Чем он больше - тем позднее создана запись
      повторных версий быть не должно, это возможно только при ошибке в считывании NAND
    • at 0x04B - номер блока,в которой находится данная запись FSRoot
      именно эти блоки необходимо затирать для снятия бана
    • Secdata.bin at: 0x04A - адрес самой secdata.bin, в которой и содержится метка бана
      с большой вероятностью данный адрес будет встречаться в нескольких строчках, это нормально
    • Date: 22.11.2005 12:00:02 - дата, когда по мнению консоли была сделана запись
      при включении система неверно определяет текущее время, почти все записи обычно содержат похожие даты
      если посмотреть на все даты, то вы сможете заметить, что одна запись выделяется и содержит дату и время вашего бана
      в данном случае это: 07.11.2009 12:53:24
    • ALIVE! (DEAD) - состояние файла secdata.bin по указанному ранее адресу
      как не трудно догадаться, первое состояние указывает на рабочую запись, а второе - на нерабочую
Теперь от вас требуется понять, сколько требуется удалить записей для того, что бы бан пропал, но при этом консоль осталась рабочей.

Как было замечено ранее, в записях с большой вероятностью вы найдете запись с датой и временем вашего бана.
Для удаления бана требуется удалить запись с этой датой, а так же все записи, у которых номер FSRoot больше, чем у этой записи.
В данном примере запись с датой 07.11.2009 12:53:24 имеет номер 165, а последняя запись - номер 166. Значит нужно удалить все записи с номена 165 до номера 166 включительно.

Для облегчения работы программа разбила все записи по группам с одинаковой датой.
В данном конкктретном случае таких групп будет 5, в них будут записи с номерами:
166; 165; 164-158; 157-150; 149-148.
Для каждой из групп программа создала по два файла: Erase_01.cmd и Restore_01.cmd (номера в названии файлов соответсвуют номеру группы).
Первый предназначен для создания бекапа и удаления каждой записи группы, а второй - для восстановления этой группы из сделанных бекапаов.

Как не сложно догадаться, для удаления бана потребуется запустить один или несколько файлов Erase.

Прежде чем начать запускать файлы, необходимо запомнить несколько правил:
  • не имеет смысла запускать файл с номером группы N, не запустив до этого все файлы с меньшим номером
    такие действия не преведут ни к чему, консоль читает только последнюю запись, а она содержится в первой группе
  • нельзя запускать все файлы Erase
    в таком случае не останется ни одной записи, консоль просто не запустится
  • нельзя запускать последним файл, если в следущей группе идут записи с меткой DEAD
    прочитав такую запись консоль выдаст ошибку и не запустится
    в случае если после группы с DEAD идет группа с записями ALIVE!, можно удалить мертвый блок
  • необходимо оставить как минимум одну группу, в которой содержатся ALIVE! записи
Итак, дата бана - 07.11.2009 12:53:24, в логе выше по списку содержится всего одна уникальная запись 22.11.2005 12:00:02.
Нехитрыми подсчетами приходим к выводу, что для удаления бана необходимо запустить Erase для двух дат, т.е. Erase_01.cmd и Erase_02.cmd.

Последняя живая запись - 28.10.2009 12:44:32, следуя выше по списку в логе встречаются 3 изменения даты (одна из них встречается 2 раза).
Опять же, нехитрыми вычислениями выходит, что последняя живая запись содержится в 4 группе, а значит максимум возможных удаляемых групп - 3.

Высчитайте количество необходимых Erase для своего дампа и убедитесь что данное количество блоков дат можно затереть.



Фикс NAND для снятия бана.



Итак, необходимые файлы для изменений созданы, высчитано их необходимое количетво.
Теперь необходимо их запустить, при этом постаравшись сохранить шанс откатить все изменения.

Еще раз убедитесь что у вас есть верный дамп вашего NAND, для гарантии можете снять его еще раз.
Лишнее затраченное время поможет вам избежать порчи консоли.

Сам фикс - самое простое и самое опасное действие:
выполните команду
e:\NandPro20>erase_01.cmd
-------------------------------------
ERASE DATA: 22.11.2005 12:00:02
-------------------------------------
NandPro v2.0 by Tiros
Если все сделано верно, программа считает удаляемые блоки с указанной датой три раза и сохранит их в папке backups, после чего удалит их.

Не запускайте один Erase более одного раза, при этом повторно считается уже стертый блок, перезаписав сохраненные бекапы!

Повторите команду для каждого удаляемого блока, заменяя цифры в названии выполняемого файла.

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

Если бан снят - не подключайте более консоль к сети XBOX LIVE, иначе придется выполнять все действия с самого начала.

Если консоль выдала ошибку E71 или E79 - разбан скорее всего невозможен.
Для возврата консоли в рабочее состояние подключите ее снова к компьютеру.
Для отката изменений выполните команду:
e:\NandPro20>restore_01.cmd
---------------------------------------
RESTORE DATA: 22.11.2005 12:00:02
---------------------------------------
NandPro v2.0 by Tiros
Выполните команду повторно для каждого запущенного Erase, изменяя цифры в названии файла.
Если все сделано верно - консоль вернется в исходное состояние, отсоедините ее от ПК и проверьте работоспособность.



FAQ по возможным проблемам.



  • Этой программой можно удалить любой бан?

  • У меня не определяется нанд!

  • При считывании нанда идут ошибки 280 после блока 200!

  • У меня возникает ошибка на считывании одного и того же блока!

  • У меня вечно появляются ошибки в разных местах!

  • У меня не было ошибок, на дампы не совпадают!

  • Дампы вечно не совпадают в одних и тех же блоках!

  • Программа говорит, что дамп неверен!

  • Я не вижу в списке даты бана!

  • Я запустил все необходимые Restore, но консоль по прежнему неработает!

  • Мне не помогло полное восстановление, что делать?

Идея vlack; создание программы Chook, пользователи форума Xboxland.net