Блог технического писателя Ильи Жукова

Декомпиляция CHM-файла

Файл в формате CHM представляет собой скомпилированный HTML. В него могут входить HTML-страницы, рисунки, таблицы стилей, скрипты и другие файлы. Подробное описание состава CHM смотрите в материале Формат HTML Help. Результирующий файл в формате CHM не редактируется. Отредактировать можно только файлы, входящие в его состав. Извлечь файлы или декомпилировать CHM можно при помощи бесплатной программы HTML Help Workshop.

 

Чтобы декомпилировать выбранный для примера файл api.chm:

  1. На локальном диске, например на диске С, создайте папку для работы test и в ней подпапку decompiled.
  2. Скопируйте файл chm в папку test.
  3. Запустите HTML Help Workshop.
  4. Выберите File / Decompile.

команда декомпиляции

  1. В окне Decompile .CHM file: нажмите на кнопку Browse справа от поля Destination folder и выберите папку decompiled.
  2. В поле Compiled help file: аналогичным образом выберите файл chm.

параметры декомпиляции

  1. Нажмите на кнопку ОК. На экран будет выведено сообщение о том, что 64 файла извлечено из файла chm.

Это именно те файлы, которые мы будем редактировать. Рассмотрим их подробнее:

  • CSS-файлы содержат таблицы стилей, определяющих внешний вид контента справки;
  • Рисунки в формате GIF — это скриншоты и другие рисунки, использованные в CHM-файле;
  • HTM-файлы соответствуют страницам разделов справки содержат текст, ссылки на рисунки, скрипты и т.д.
  • файл api.hhc содержит оглавление справки;
  • файл api.hhk содержит ключевые слова.

декомпилированные файлы

  1. Откройте в Проводнике папку C:\test\decompiled и найдите в ней .htm-файл, который соответствует разделу справки, открываемому по умолчанию при запуске chm. Это файл ov_main.htm.

 

Важно! Обратите внимание на то, что в содержании api.chm нет ссылки для открытия раздела из файла ov_main.htm. Это раздел справки, который открывается по умолчанию при запуске CHM-файла. Его можно также открыть при помощи кнопки Домой.

На этом декомпиляция CHM-файла завершена. Далее необходимо научиться собирать новый CHM-файл с функционалом, аналогичным оригиналу. Дело в том, что во время редактирования нужно будет периодически собирать CHM, чтобы в случае возникновения ошибок их было проще и быстрее найти. О том, как собрать новый CHM из полученных файлов, речь пойдет в следующем материале Создание и настройка проекта в HTML Help Workshop.

 

Добавить комментарий

Комментарии  

Ирина
# 0 Ирина 17.01.2019 15:35
Илья, здравствуйте!
Возможно, стоит добавить, что после декомпиляции и повторной сборки chm-файла теряется информация о контекстных вызовах справки. То есть, если chm-файл был частью какого-либо приложения и при работе в этом приложении по F1 открывались определенные страницы справки, то после процедуры редактирования справка будет везде открываться на первой странице (при условии, конечно, что ее назвали прежним именем и положили в прежнее место).
Или я не права и как-то можно при декомпиляции получить сведения, содержавшиеся в разделе MAP?
Ответить Ответить с цитатой Цитировать
Илья Жуков
# 0 Илья Жуков 18.01.2019 18:43
Ирина, здравствуйте! Вы правы: во время декомпиляции часть данных из CHM-файла, в т.ч. информация о контекстных вызовах справки, теряется. Во время декомпиляции из CHM не извлекаются служебные файлы. Полный список файлов из CHM можно посмотреть, например, при помощи 7-Zip. Данные о контекстных вызовах формируются из разделов .hhp --- [MAP] #define IDH_DefaultPage 1000 и [ALIAS] IDH_DefaultPage=ov_main.htm. --- и содержатся в служебном файле #IVB в виде 1000 = ov_main.htm. Извлекать такие данные из CHM и воссоздавать файл проекта .hhp умеют программы KeyTools (бесплатная) и CHMDecompiler (платная). Но в пересобранном из такого проекта CHM данных о контекстных вызовах не будет. Данные из разделов [MAP] и [ALIAS] можно получить во время декомпиляции, если в сборку исходного CHM-файла был включен файл проекта .hhp. Он не является служебным и будет декомпилирован вместе с остальными файлами описанным в статье способом.
Ответить Ответить с цитатой Цитировать
Ирина
# -1 Ирина 23.01.2019 14:18
Спасибо, Илья, очень интересно!
Я знала, что chm можно открыть архиватором, но не знала, что это за служебные файлы, начинающиеся с решетки. Правда, мой #IVB нечитаемый получился((
Ответить Ответить с цитатой Цитировать
Илья Жуков
# 0 Илья Жуков 24.01.2019 10:12
Часть служебных файлов из CHM можно прочитать при помощи программы KeyTools (разработчики Ralph Walden и Cheryl Lockett Zubak). Для просмотра файлов, входящих в состав CHM, без декомпиляции выберите Tools \ Examine CHM File. Файлы: #IDXHDR – количество узлов разделов; #IVB – данные контекстных вызовов; #SYSTEM – большая часть данных из файла проекта .HHP; #TOPICS – заголовки и URL разделов; #WINDOWS – определения использованных типов окон и другие файлы.
Ответить Ответить с цитатой Цитировать
Ирина
# 0 Ирина 30.01.2019 17:16
Спасибо еще раз, Илья. Собственно, пока у меня нет такой задачи, но на всякий случай приму к сведению.
Ответить Ответить с цитатой Цитировать
Владимир
# 0 Владимир 03.11.2021 15:23
Здравствуйте Илья.
Объясните, пожалуйста, непонятную для меня вещь. Речь идет о chm-файлах обычной справки программ. Если декомпилировать chm файл, получим: несколько папок (одна из них lib с изображениями), ряд файлов html, ряд изображений.
Проблема в следующем:
Справки прекрасно открываются на Windows 7 Enterprise x32, Internet Explorer 8, а вот на Windows 7 Enterprise x64, Internet Explorer 11 справки открываются, но те изображения, которые находятся после html файлов, не отображаются - вместо них квадратик с крестиком (или что-то в этом роде). Причем все изображения, находящиеся в папке lib отображаются без проблем.
Спасибо.
PS Объясните, пожалуйста, попроще – я в этом почти полный НОЛЬ. Если не затруднит – ответ отправьте на .
Ответить Ответить с цитатой Цитировать

Последние статьи

Перевод выходных документов в Help and M…

Выбрав русский язык и русскую кодировку в настройках проекта Help and Manual, многие авторы после первой сборки удивляются, увидев в выходных документах английские сло...

Читать полностью...

Размер и расположение окна CHM при перво…

Разработчик справки в формате CHM может задать размер и расположение окна, которые будут использоваться при первом запуске CHM-файла. После того, как пользователь пере...

Читать полностью...

Рваные края скриншотов в Help and Manual

Многие платные редакторы скриншотов, например, SnagIt, FastStone Capture и др., умеют создавать эффект рваных краев. В сети Интернет можно найти множество видеоуроков ...

Читать полностью...
новое в Help and Manual 9

Новое в Help and Manual 9

23 ноября 2022 года компания EC Software к 25-летнему юбилею выпустила 9-ю версию программного комплекса Help and Manual (выходит c 1997 года). Комплект шаблонов Premi...

Читать полностью...

Создание CHM-справки в бесплатной програ…

KEL CHM Creator — это «новая» хорошо забытая программа, выпущенная в 2012 году, предназначенная для создания и декомпиляции CHM-файлов. Программа не требовательна к ре...

Читать полностью...

KEL CHM Creator — бесплатная программа д…

Если вам нужно создать CHM-файл, и вы больше не хотите пользоваться глючной программой HTML Help Workshop, тогда KEL CHM Creator — это ваш вариант. Программа позволяет...

Читать полностью...
ключевые слова

Ключевые слова в Help+Manual

Предметный указатель — это список ключевых слов (терминов, основных понятий и т.п.), помогающий читателю быстро найти в документе нужную информацию. В печатной докумен...

Читать полностью...

HTML Help Workshop – бесплатная программ…

В 1997 году Microsoft выпустила новый формат справки, HTML Help (CHM), а также бесплатную программу для создания и редактирования справки в этом формате — HTML Help Wo...

Читать полностью...

HelpNDoc — бесплатная альтернатива Help+…

Еще одной альтернативой RoboHelp и Help&Manual является программа HelpNDoc от французского разработчика, компании IBE Software. Это практически полный аналог HelpS...

Читать полностью...

HelpSmith — достойная альтернатива Help+…

Продолжая тему средств разработки справки и пользовательской документации, нельзя не рассказать о программе HelpSmith. Она работает по принципу единого источника и под...

Читать полностью...
отечественная программа для разработки справки

Dr.Explain — отечественная программа для…

За почти 30-летнюю историю существования RoboHelp и Help&Manual стали стандартом средств разработки справки и пользовательской документации в среде Windows. Сегодн...

Читать полностью...
вычитка текста

Как вычитать свой текст: инструкция для …

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

Читать полностью...
качество текста

Как повысить качество текста инструкций

Каждый автор знает: во время написания и правки текста глаз замыливается. Смотришь в текст и читаешь не то, что написано, а то, что хочешь видеть. В этой статье я расс...

Читать полностью...

Закон построения нехудожественного текст…

Вы не задумывались, почему некоторые тексты читаются на одном дыхании, а через другие приходится продираться? Почему одна статья запоминается на лету, как бы сама собо...

Читать полностью...

Примечания и предупреждения в тексте инс…

Важную информацию в тексте можно выделять по-разному. Можно целые предложения оформлять жирным, подчеркнутым и курсивным шрифтом. Можно написать все слова в предложени...

Читать полностью...

Методика чтения научных книг

Я не люблю брать в руки разрисованные книги. Текст исчиркан, подчеркнут, зачеркнут. Ручкой, карандашом, маркером. Уголки страниц загнуты. На полях рукописные пометки, ...

Читать полностью...

Все о справке и документации для пользователей!

Следить за новыми статьями:

© Илья Жуков, 2019-2023. Охраняется законом об авторском праве.