@ Оли - привет, я Джим Солтер, парень, который действительно написал эту статью. Я работал с виртуальной машиной, которая упростила ситуацию. Я начал с файла JPEG и открыл его в шестнадцатеричном редакторе. В частности, я использовал Bless, который вы можете установить в Ubuntu с помощью простого apt-get install bless .
Открыв JPEG в Bless, я несколько раз пролистал страницу вниз, чтобы разобраться с «мясом» JPEG, а затем просто выделил данные объемом около пятидесяти байтов, скопировал и вставил их в текстовый редактор (в моем случай, gEdit). Это дало мне что-то для поиска.
Теперь я сохранил JPEG в каждом массиве на виртуальной машине. Хранилище за массивами представляло собой серию файлов .qcow2. После того, как я сохранил JPEG в массивы, я мог загрузить файлы .qcow2, связанные с каждым массивом, в Bless и искать их - они были не очень большими, они представляли собой не что иное, как JPEG и некоторые метаданные - для этого пятибайтового шаблона Я выделил и скопировал из JPEG. Вуаля, у меня был блок, чтобы развратить! На этом этапе я мог просто вручную редактировать отдельные байты JPEG, хранящиеся на виртуальном диске виртуальной машины, используя Bless, и, что важно, делать это одинаково для каждого массива.
Единственная проблема заключается в том, что в случае массива RAID5, протестированного в статье, мне нужно было убедиться, что я отредактировал фактическую копию данных в полосе, а не четность для самой полосы - это было маленькое изображение на в противном случае - пустой массив, поэтому в блоке FOLLOWING на полосе не было никаких данных, поэтому в блоке четности содержатся данные, не измененные из блока данных. Если бы я случайно отредактировал блок четности вместо блока данных, изображение появилось бы как неизменное.
И последнее замечание - вам НЕ НУЖНЫ виртуальные машины для этого - вы можете делать то же самое одинаково с голым металлом; это было бы просто болью в заднице, потому что вам нужно было бы работать с целыми необработанными дисками, а не с небольшими небольшими файлами .qcow2, и вам нужно было бы либо извлечь диски и поместить их на другой компьютер, либо загружаться в живую (или просто альтернативную) среду, чтобы связываться с ними. (Я тестировал исцеление данных в ZFS именно таким образом, но на реальных машинах с «голым железом» 7 лет назад, когда я впервые заинтересовался файловыми системами следующего поколения.)
Надеюсь это поможет!