Наилучший подход к реализации функции справки в настольном приложении Windows — Ограничение базы знаний приложения для авторизации доступа

#winforms #decompiler #chm #helpfile #winhelp

#winforms #Декомпилятор #chm #файл справки #winhelp

Вопрос:

Наилучший подход для реализации функции справки в настольном приложении Windows, ниже приведен список вариантов, с которыми я столкнулся:

Ссылка:https://en.wikipedia.org/wiki/Microsoft_Compiled_HTML_Help#cite_note-2

  1. Скомпилированная Microsoft справка HTML — это собственный формат интерактивной справки Microsoft
  • Может быть декомпилирован (Tools 7-Zip, Sumatra и т.д.)
  • Предшественник Microsoft WinHelp / преемник Microsoft Help 2
  • Поддержка Win 10

Ref: https://en.wikipedia.org/wiki/WinHelp

  1. .hlp Microsoft WinHelp — это проприетарный формат для файлов интерактивной справки, которые могут отображаться в браузере справки Microsoft winhelp.exe или winhlp32.exe . -декомпилируйте файл WinHelp в исходные документы: HPJ, CNT, RTF, BMP и SHG -Файл WinHelp откроется в отдельном окне (Автор справки может контролировать, сохраняет ли файл справки настройки пользователя между сеансами или всегда открывается в размере и позиции по умолчанию).
  • Имеет заголовок, строку меню (Файл, Редактирование, закладка, Параметры и Справка) Типичные кнопки включают содержимое, Указатель, возврат и печать, а также кнопки << и >> для просмотра файла. Авторы справки также могут создавать пользовательские кнопки для перехода к определенным разделам или выполнения других действий. -Прекращение поддержки — Версия winhlp32 с открытым исходным кодом от Wine также работает в Windows 10. Он включен как часть WineVDM.

Ссылка:https://en.wikipedia.org/wiki/Microsoft_Help_2

  1. Microsoft_Help_2 — это проприетарный формат для файлов интерактивной справки, разработанный Microsoft и впервые выпущенный в 2001 году в качестве справочной системы для Visual Studio .NET (2002) и библиотеки MSDN. Microsoft Help 2.x — это механизм справки, используемый в Microsoft Visual Studio 2002/2003/2005/2008 и Office 2007 и Office 2010
  • Файл Microsoft Help 2.x имеет расширение «.hxs»
  • Для декомпиляции файла hxs можно использовать инструмент convertlit с открытым исходным кодом.

Ссылка:https://en.wikipedia.org/wiki/Microsoft_Help_Viewer

  1. Microsoft Help Viewer (HV) — это автономная справочная система (локальная справка), разработанная Корпорацией Майкрософт, которая поставляется с Visual Studio 2010 и связанной с ней библиотекой MSDN.

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

Ответ №1:

Короткая история — вы не можете предотвратить декомпиляцию, если вы компилируете в WinHelp (.hlp), HTMLHelp (.chm), Help2 (.hxs) или файлы просмотра справки (.mshc).

Winhelp около 30 лет, а HTMLHelp около 23 лет! Пожалуйста, обратите внимание, что декомпилятор для HTMLHelp (CHM-файлов) по-прежнему является интегрированной частью операционной системы Windows 10.

Вы знаете, что Microsoft создала другие справочные системы, начиная с WinHelp (.hlp) и HTML Help (.chm), но они привязаны к различным системам:

  • Справка MS 2.0 для Visual Studio 2002/2003/2005/2008 и справка Office.
  • Справка AP для ОС Windows Vista / справка OEM (на основе справки MS 2)
  • MS Help Viewer 1.0 для справки Visual Studio 2010.
  • MS Help Viewer 2.0 для Visual Studio 2012 и Windows 8 OS / справка OEM.

Эти форматы не полностью раскрыты и документированы. Они должны рассматриваться как внутренние Microsoft.

Некоторые примечания:

  • Формат WinHelp (.hlp) существует с самого начала 1990-х годов и заменен HTML Help 1.x (.chm). Корпорация Майкрософт настоятельно рекомендовала вам отказаться от WinHelp около десяти лет назад.
  • Вам по-прежнему рекомендуется использовать HTML HELP (.chm) для справки приложения Windows, если вы не интегрируетесь со справкой Visual Studio.
  • Однако сегодня наблюдается все больший переход к веб-справке (например, с использованием Markdown text => HTML)

В зависимости от ваших требований вы могли бы поэкспериментировать со следующими идеями:

  • Веб-справка: используйте защищенную паролем область для веб-справки (база знаний)
  • Зашифруйте и конвертируйте CHM в exe с помощью CHM to EXE Converter 2.0, защищенный паролем, запретите редактирование, копирование и печать. Вы можете конвертировать chm в exe только без пароля, и вы также можете установить пароль с привязкой к ПК для своих пользователей. Только вы можете создать пароль для открытия для своих пользователей. Простое распространение файлов CHM и их защита.

Редактировать:

Ваше первое требование «Я хочу разрешить доступ к базе знаний только авторизованным пользователям» может быть решено с помощью веб-справки. Вы часто сталкиваетесь с веб-сайтами, где у вас нет свободного доступа ко всем разделам: чтобы иметь возможность просматривать содержимое определенных частей веб-сайта, вам необходимо зарегистрироваться и получить логин и пароль для входа в эти закрытые области. Классическим примером является сайт компании, где доступ к пользовательскому кабинету зарезервирован для продавцов и партнеров для просмотра справочных документов и прайс-листов или порталов, требующих входа в систему для доступа к содержимому, которое можно загрузить.

Если вы действительно хотите создать структурированную справку приложения для программного обеспечения в Windows, включая контекстно-зависимую справку, CHM обычно лучше. Но даже этому нужно учиться.

Ваше второе требование «.. и авторизованные пользователи также не должны иметь возможности дальнейшего копирования или декомпиляции базы знаний». может быть решена только с большим усилием. Понятия не имею — возможно, зашифровать / расшифровать в потоке памяти и передать его в поток файлов.

Примеры веб-справки:

Комментарии:

1. Спасибо за ваш быстрый ответ. Не могли бы вы подробнее (по возможности с примером) рассказать о нижеприведенном пункте: Веб-справка: используйте область, защищенную паролем, для веб-справки (база знаний)

2. Кроме того, есть ли у нас какая-либо бесплатная альтернатива «CHM to EXE Converter 2.0» с открытым исходным кодом?

3. Я раньше не использовал «CHM to EXE Converter 2.0» и я не знаю ни одного приложения с открытым исходным кодом с такими функциями. Но есть пробная версия.