Внутрішня будова документа WordsteemCreated with Sketch.

in Ukraine on Steem • 5 days ago (edited)

Я майже на 100% впевнений, що кожен із вас, відкриваючи простий файл Microsoft Word, ставиться до нього не більше як до просунутого текстового документа. Тобто ви його просто відкриваєте, туди щось пишете, вставляєте фотографії, таблиці. Але мені здається, що ви ніколи не замислювалися про те, що там відбувається всередині такого файлу.

1000093859.png

Сучасний документ Word – це майже звичайний ZIP-архів, усередині якого знаходяться файли та папки. Щоб продемонструвати це, я перейменував розширення простого файлу .docx на .zip.

1000093847.png

1000093848.png

Після перейменування документа на .zip його можна відкрити будь-яким архіватором, наприклад WinRAR.

1000093850.png

1000093849.png

Коли я відкриваю цей архів, одразу бачу кілька файлів і внутрішніх директорій. І кожен із файлів має своє призначення. Основна папка документа – це word. Найцікавіший документ усередині цієї папки, це document.xml, усередині якого зберігається збережений мною текст “Hello world”.

1000093846.png

1000093851.png

Текст там знаходиться не зовсім у звичному вигляді. Він оточений спеціальними позначеннями, мітками, які допомагають програмі зрозуміти, де починається абзац, який текст потрібно показати і як його оформити. У цій же папці знаходяться інші важливі файли, такі як стилі тексту, заголовків і абзаців, загальні налаштування документа, інформація про шрифти. У папці media зазвичай зберігаються вставлені зображення (на скриншоті її немає). І... так, не всі файли або папки обов'язково присутні в кожному такому документі. Вони з'являються залежно від вмісту файлу Word.

1000093852.png

У папці _rels знаходиться інформація про зв'язки між окремими частинами документа. Наприклад, Word повинен розуміти, які файли належать до основного вмісту документа і де шукати пов'язані з ним елементи.

У Microsoft Word є можливість захистити документ паролем, щоб стороння людина не змогла прочитати його вміст. Для цього використовується функція шифрування документа, доступна через меню “Файл” → “Відомості” → “Захистити документ” → “Зашифрувати за допомогою пароля”.

1000093853.png

Але коли ми встановлюємо пароль на документ, це не просто доступ до перегляду вмісту. Після встановлення пароля відбувається шифрування всього вмісту файлу. І це означає, що дані перетворюються на зашифровані. Без правильного пароля отримати з них початковий документ майже неможливо. Звичайний файл .docx можна відкрити як zip-архів. Але якщо документ зашифрований, то його внутрішня структура змінюється, і звичайним zip-архіватором його відкрити не вдасться. Демонструю на скриншотах, що в мене вийшло і як поводиться архіватор WinRAR.

1000093854.png

1000093855.png

При простій спробі відкрити файл двома клацаннями миші вискакує помилка про те що файл у невідомому форматі або пошкоджений. При спробі розпакувати архів локально в папку я бачу аналогічне повідомлення про помилку.

Будь-хто з вас може провести цей експеримент самостійно. Створіть будь-який файл Microsoft Word. Зробіть невеликий запис у документі та збережіть його. Створіть ще один документ із будь-яким записом і встановіть на нього пароль. Після цього обидва файли перейменуйте і замініть розширення на .zip, і подивіться що у вас вийде.

Навіщо я взагалі про це пишу? Подібна інформація дозволяє поглянути на прості речі трохи іншим поглядом, з глибшим розумінням як це все влаштовано і що там усередині.

Sort:  

Це чудовий технічний розбір внутрішньої структури файлів .docx. Дійсно цікаво бачити, як стандартні документи насправді є архівами зі структурами XML та налаштуваннями шифрування.

Qué loco que un .docx sea básicamente un ZIP, nunca se me había ocurrido renombrarlo y abrirlo con WinRAR para ver el document.xml por dentro. La diferencia se nota cuando ves que el texto ahí está lleno de etiquetas en vez de limpio como lo escribís. ¿Probaste también qué pasa si editás ese XML directo y lo volvés a comprimir?

Наступний раз почитаємо як брутфорсити зіпархіви)))
image.png

 5 days ago 

Наступний раз почитаємо як брутфорсити зіпархіви)))

Сумніваюсь )))

Дякую 😉

Curious how the word/_rels folder links the XML parts together—have you tried editing the document.xml to tweak paragraph styles directly? 🔧📂🤔