Есть ли индикатор, кроме расширения файла, который указывает тип файла?

Я пытаюсь сделать файл .txt похожим на файл .jpg, чтобы его можно было отправить по Wi-Fi с помощью SD-карты Eye-Fi. Карта отправляет только файлы .jpg по нескольким причинам. Одна из причин заключается в том, что путь передачи изображения с SD-карты на компьютер выглядит так:

Камера записывает изображения на EYE-FI SD -> EYE-FI подключается к локальному маршрутизатору -> локальный маршрутизатор загружает на серверы EYE-FI -> серверы EYE-FI загружают на ваш компьютер.

[Объяснение]

На стороне сервера мог быть какой-то фильтр, поэтому я нашел программное обеспечение, которое позволяет пользователю обходить серверы eye-fi, так что теперь я знаю, что имею дело только с SD-картой. Также приятно знать, что никто больше не просматривает мои файлы. После некоторых экспериментов я понял, что могу поместить файлы .jpg на карту и передать их после того, как будет сделан снимок. Я также обнаружил, что изображения должны быть названы в сокращенном формате; имя не длиннее 8 символов (без учета расширений файлов), возможно это связано с тем, что карта отформатирована в фат32 (карта может быть переформатирована и до сих пор работает). Я попытался загрузить файл .txt на карту и дал ему аналогичный формат и переименовал его в файл .jpg. Он действительно перешел, что указывает мне на то, что, вероятно, есть что-то другое, кроме расширения файла, которое указывает, как файл отформатирован.

[Вопросы]

1) Можно ли каким-то образом подделать файлы .txt, чтобы они выглядели как файлы .jpg?

2) Есть ли какая-то программа, которую я могу использовать (для Linux), чтобы поиграть со значениями на карте, чтобы я мог выяснить, что вызывает загрузку? Любые идеи, что может вызвать загрузку?


person krtzer    schedule 30.07.2012    source источник
comment
Возможно, вы захотите попробовать добавить небольшой действительный файл JPG к файлу TXT (или файлу ZIP), чтобы создать новый файл JPG. Я думаю, вы можете сделать это, используя dd в Linux. Вам просто нужно не забыть извлечь файл TXT обратно из нового файла JPG после его копирования.   -  person Jay    schedule 31.07.2012


Ответы (1)


1) Да, в файле есть шестнадцатеричное значение, указывающее, что это .jpg. Если вы откроете файл .jpg в шестнадцатеричном редакторе, вы заметите, что есть строки заголовков, которые содержат кучу информации о том, как изображение было сжато, иногда о том, что сделало изображение, некоторую информацию о прошивке и т. д. В редакторе вы можете можно найти строку «FF D8», это указывает на начало файла изображения. Вскоре за этим следует «FF C0». Следующие 6 байтов содержат информацию о размере изображения и (я предполагаю) используются любым программным обеспечением, отображающим изображение. Конец файла jpg обозначается двумя байтами «FF D9». Забавный факт, я поиграл с файлом jpg, который использовал, и кажется, что вы можете поместить текст после «FF D9», и jpg все еще будет работать. Я думал, что это было аккуратно. Источник

Однако ничего из этого не понадобилось, чтобы получить доступ к файлу. Как я уже сказал в своем вопросе, для карты необходимо, чтобы имя файла было в коротком формате (что означает, что заголовок не может содержать более 8 символов) и должно иметь приемлемое расширение файла, в моем случае я использовал ".jpg" . Я написал текстовый файл и просто сохранил его как "text.jpg". Я обнаружил, что для передачи файла требуется минимальный размер, что странно.

Моим шестнадцатеричным редактором для этого был выбран bless, он хорош для открытия файлов, но мне еще предстоит выяснить, может ли он открывать тома. Не похоже, что может.

person krtzer    schedule 31.07.2012
comment
Я забыл упомянуть, что этот эксперимент проводился в папке, созданной камерой и уже содержащей снимки, сделанные камерой. Это действительно важно, и я сожалею, что не заметил этого раньше. - person krtzer; 31.07.2012