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

Декомпиляция 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 Объясните, пожалуйста, попроще – я в этом почти полный НОЛЬ. Если не затруднит – ответ отправьте на .
Ответить Ответить с цитатой Цитировать

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

Как вставить тесты в CHM и WebHelp…

Форматы электронной документации CHM, WebHelp и EWriter давно используются для создания и распространения электронных книг и учебников. Разработать такое учебное пособ...

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

Оформление рисунков в Help+Manual при по…

Рисунки в проекте Help and Manual можно единообразно оформить тремя способами. Во-первых, это можно сделать в графическом редакторе, например в Impict. Во-вторых, для ...

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

Подключение таблицы стилей к проекту Hel…

При работе с форматами, основанными на HTML, для оформления контента в документах можно использовать каскадные таблицы стилей, cascading style sheets или CSS. Данная т...

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

Формулы в HTML Help (CHM)

Я по образованию филолог. Специализируюсь на разработке пользовательской документации на английском и русском языках. С формулами в документации сталкиваюсь редко и по...

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

Импорт документов MS Word в Help+Manual…

Часто технический писатель получает исходные данные от аналитиков, разработчиков, тестировщиков, маркетологов и других специалистов в форматах DOC, DOCX и RTF (реже, и...

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

Поиск в WebHelp находит удаленные раздел…

Во время поддержки проекта справки со временем ряд разделов устаревает. Вы исключаете их из сборки, возможно, даже удаляете из проекта. Собираете выходную документацию...

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

Контекстная справка в приложениях Window…

Понятие контекстной или контекстно-зависимой справки (от англ. context-sensitive help) появилось в 1987 году с выходом формата WinHelp. Изначально контекстная справка ...

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

Как поддерживать скриншоты в актуальном …

Рисунки, схемы, скриншоты и другие изображения являются неотъемлемой частью любой пользовательской документации. Один скриншот с выносками может дать начинающему польз...

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

Книга «Разработка технической документац…

Уважаемые коллеги! Если вам нужно быстро освоить разработку документации по ГОСТ, рекомендую обратить внимание на книгу В.А. Глаголева «Разработка технической документ...

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

Перевод выходных документов в 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…

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

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

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

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

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