PE Viewer 3.0

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

iteg
Сообщения: 116
Зарегистрирован: Чт дек 01, 2011 17:01

Сообщение iteg »

yozhik
Файлы *.a - это библиотеки для unix-подобных ОС. Как и разбор ELF и ELF64 запланировал.
iteg
Сообщения: 116
Зарегистрирован: Чт дек 01, 2011 17:01

Сообщение iteg »

Тестовая версия 3.0.15.1:
- Исправлена ошибка разбора таблицы импорта.
- Доработана светлая тема к первоначальному виду (SUKER и Orion9).
Для светлой темы используется наследование фона кроме компонент TTreeView, TListView, TMemo и TListBox. Для них фон устанавливается из переменной BackColor2. Также для TListView возвращена сетка.
Для тёмной темы используется наследование фона для всех компонент.
- Переименован параметр конфигурационного файла "ImportantColor" в "HighlightColor2".
- В архиве файл PEViewer.ini содержит актуальные цветовые значения.
https://dropmefiles.com/16QFU
Аватара пользователя
yozhik
Сообщения: 353
Зарегистрирован: Вс май 04, 2014 20:34
Откуда: Электросталь

Сообщение yozhik »

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

Я надеюсь, что Вы пока не утратили интереса к VCL-стилям, и в будущем их удастся подключить. К слову, один из последних показательных примеров их грамотного и уместного использования мне встретился в программе Beyond Compare. В 4й, предыдущей, версии они пытались что-то делать, но выходило кустарно. В 5й встроили VCL и теперь программа как влитая на Windows, Linux и macOS (она кроссплатформенная, я видел её в работе на всех перечисленных системах).

Вводное: речь сейчас только про светлую тему, тёмная — особняком. Если воспринимать тестовую 3.0.15.1 как одну из переходных версий по направлению к VCL, то в целом получилась она хорошо. Если же сравнивать её с предыдущей 3.0.15.0, то в ней стало меньше реальных возможностей самостоятельной раскраски. Пока не могу отдать предпочтение той или другой, постараюсь лишь поделиться первыми впечатлениями.

По сравнению с 3.0.15.0 в тестовой появилось 2 дополнительных нераскрашиваемых элемента: рамки вокруг «кнопок» вкладок и табличная сетка. Их цвет сейчас соответствует BackColor по умолчанию $F0F0F0. По факту получается, что более-менее гармонично светлая тема выглядит только с настройками по умолчанию.

Если я меняю BackColor, «вылезают» рамки:
Изображение
Если затемняю BackColor2, «блёкнут» сетки. Из-за «неуправляемых» рамок менять BackColor отпадает желание — получается лишняя пестрота. Значит, менять остаётся только BackColor2, и только в сторону тёмного, т.к. по умолчанию он белый, но чтобы при этом «сохранить» сетки, а значит делать его темнее BackColor. Но так негармонично — если интерфейс светлый, то периферийные элементы всегда темнее, чем акцентируемые, а не наоборот. В результате, покрутив туда-сюда, понимаешь, что изменить толком ничего не можешь (кроме текста highlight'ов). Теоретически настройки возможны, но по факту обращение к ним лишь добавляет пестроты.

3.0.15.0 была не схожа со «старой, доброй», но у неё было больше простора для настройки. У 3.0.15.1 есть сходство со «старой, доброй» (только сходство, у родных контролов были ещё рамки, они играют роль), но любые самостоятельные настройки её только пестрят. Вид «из коробки» у тестовой выглядит прилично и соответствует предпочтениям части пользователей. Но при этом функционал настройки цвета становится несколько нецелесообразным (в отношении фоновых элементов), или, точнее, менее гибким, по факту усечённым. Как лучше — как в 3.0.15.0, или как в 3.0.15.1 — я, честно говоря, затрудняюсь сказать. Если VCL когда-нибудь появятся, то нормально и так, и эдак ))

Если бы была возможность сделать, чтобы BackColor влиял также и на рамки вкладок, стало бы лучше. К регулировке цвета табличной сетки, скорее всего, не «подкопаться», поэтому не упоминаю её (хотя в теории это было бы ещё лучше). Ещё пришлось пожертвовать альтернативным цветом строк («полосатостью»), если я правильно понял. Это неизбежная и безвозвратная жертва? Если нет, то цвет полос уместно было бы генерировать как средний между BackColor и BackColor2 (точнее, чуть с перевесом в сторону светлого, на точке 40% между тем и тем, ближе к светлому).

P.S. Тут ведь ещё от монитора зависит. У меня рабочий на IPS-панели, Adobe RGB отображает (по документам). Так что у меня это всё очень даже не мелочи, а ещё как заметно. Народ за стандартным канцелярским sRGB может и не понять из-за чего вообще сыр-бор и ломание копий.
Amo ergo sum
iteg
Сообщения: 116
Зарегистрирован: Чт дек 01, 2011 17:01

Сообщение iteg »

yozhik
Первичной целью было восстановление светлой темы к «старому, доброму» виду «из коробки».
Поэтому пришлось пожертвовать:
- чередованием строк списочного компонента;
- добавлением сетки и неизменностью ее цвета, который задает ОС;
- плоскими кнопками вкладок. При изменении цвета возникает дополнительная рамка, вот почему для темной темы использую выпуклые кнопки, с ними нет такой проблемы;
- BackColor и BackColor2 утратили свое предназначение.
Для 90% пользователей - это лучше, чем было. Постепенно буду устранять данные недочеты.
iteg
Сообщения: 116
Зарегистрирован: Чт дек 01, 2011 17:01

Сообщение iteg »

Тестовая версия 3.0.15.2:
- Плагин пересобран на Embarcadero RAD Studio 12.2.
- Реализован разбор ресурса 'TYPELIB' формата 'MSFT'. Просьба протестировать формирование вывода. По замечаниям буду дорабатывать. Какие есть утилиты для просмотра (кроме fileinfo) TypeLib?
- Реализована проверка хеш-сумм для полей OH.CheckSum и RichHeader.CheckSum. Если значение данных полей некорректное, то поле помечается красным цветом и в скобочках подставляется правильное значение.
- Для конфигурационного файла PEViewer.ini для секций тем добавлен новый параметр "GridLines" отображения сетки в списочном компоненте.
- На вкладке "Инфо" исправлена ошибка отображения "Entry Point Raw Offset" с 8 на 4 байта.
- Доработан алгоритм открытия файла в режиме Ctrl+Q на элементе '..' при распаковке файла wcx-плагином.
- На вкладке "Инфо" добавлено поле полного пути файла. Актуально при просмотре файла из распаковки.
- Для светлой темы возвращен стиль закладок tsButtons, чтобы можно было корректно применять параметр BackColor - устранится проблема рамок вокруг текста вкладки.
Если все-таки необходимо для темы установить стиль плоских кнопок и при этом не будет меняться стандартный цвет, то в конфигурационных файл необходимо добавить строку:
[PEViewer]
...
MainForm.tcToolbar.Style=tsFlatButtons
- Оптимизация кода и мелкие доработки GUI.
https://www.upload.ee/files/17114196/PEViewer.rar.html
Аватара пользователя
BlackFox
Сообщения: 75
Зарегистрирован: Сб дек 18, 2004 04:33
Откуда: Mayence

Сообщение BlackFox »

не уверен, что связано с версией, но в последней версии (из поста выше) не работает "Undecorate C++ names" в сецкии "Export": показываются такие же названия функций, как и без этой галки:
@@Qhandlerconfgroup@Finalize,12,4,0x00005AB4,0x000050B4
вместо
Static data __linkproc__ Snmpbfeagenttrap::Finalize
из FileInfo.
Аватара пользователя
yozhik
Сообщения: 353
Зарегистрирован: Вс май 04, 2014 20:34
Откуда: Электросталь

Сообщение yozhik »

iteg писал(а):Плагин пересобран на Embarcadero RAD Studio 12.2
Звучит обнадёживающе, спасибо :)
iteg писал(а):Какие есть утилиты для просмотра (кроме fileinfo) TypeLib?
Попадались такие:
1) Скрипт на AutoIt TLBViewer.au3. Можно скачать портативную версию AutoIt и запустить скрипт из ком-строки: "AutoIt3_x64.exe TLBViewer.au3".
2) DumpTLB
Вот пример двух *.tlb, которые плагин не воспринимает (похоже, это связано с первыми байтами: "MSFT").
iteg писал(а):стиль закладок tsButtons
Спасибо, так стало упорядоченней. Предлагаю добавить в ini закомментированную строку ";MainForm.tcToolbar.Style=tsFlatButtons", чтобы не потерялась. Хотя, если она будет в README, то, может, и не надо.

Кажется, обнаружился «косячок»: при умолчательных настройках шрифта, размер моноширинного текста во вкладках становится слишком маленьким, непропорционально маленьким:
Изображение
Если же значение FontSize изменить, даже в минус (указать 8, вместо 9), то уравновешивается:
Изображение
Amo ergo sum
iteg
Сообщения: 116
Зарегистрирован: Чт дек 01, 2011 17:01

Сообщение iteg »

BlackFox
не уверен, что связано с версией, но в последней версии (из поста выше) не работает "Undecorate C++ names" в сецкии "Export"
Пришлите ссылку на проблемный файл - посмотрю.
Аватара пользователя
BlackFox
Сообщения: 75
Зарегистрирован: Сб дек 18, 2004 04:33
Откуда: Mayence

Сообщение BlackFox »

iteg
Сообщения: 116
Зарегистрирован: Чт дек 01, 2011 17:01

Сообщение iteg »

BlackFox и yozhik, очередное спасибо за участие в развитии плагина!

BlackFox
Посмотрел файл. Это старый формат декорирования имени, который начинается с '@'. Текущий формат начинается с символа '?'. Буду искать документацию по старому формату или реверсировать fileinfo.

yozhik
1)
Вот пример двух *.tlb, которые плагин не воспринимает
В данных tlb содержится чистый формат ресурса TYPELIB, т.е. это не приложение, которое содержит TYPELIB-ресурс. Плагин открывает только исполняемые файлы. Реализовать открытие таких ресурсов, как в fileinfo, потребует значительного рефакторинга плагина. Пока себе пометил в todo.
2)
Кажется, обнаружился «косячок»
Не получилось у себя воспроизвести (Windows 11, 2560x1600, 150% - по умолчанию). Также пробовал различные комбинации. Какое у вас разрешение и масштаб? Предполагаю, что связано с переходом на RAD Studio 12.2, т.к. уже обнаружил проблему с перерисовкой.
Аватара пользователя
BlackFox
Сообщения: 75
Зарегистрирован: Сб дек 18, 2004 04:33
Откуда: Mayence

Сообщение BlackFox »

iteg писал(а):BlackFox и yozhik, очередное спасибо за участие в развитии плагина!
Это вам спасибо за это же!
iteg писал(а):BlackFox
Это старый формат декорирования имени, который начинается с '@'.
это не старый, а борландовский стиль.
Вот что нашлось в закромах Дельфи 2006:
https://filetransfer.io/data-package/7Y19LO6o#link
если что - лежит в папке дельфи по пути
c:\Program Files (x86)\Borland\BDS\4.0\source\cpprtl\Source\misc\um.c
и c:\Program Files (x86)\Borland\BDS\4.0\include\unmangle.h
Может, поможет разобраться.

P.S. ещё здесь можно глянуть
Аватара пользователя
yozhik
Сообщения: 353
Зарегистрирован: Вс май 04, 2014 20:34
Откуда: Электросталь

Сообщение yozhik »

iteg писал(а):за участие в развитии плагина!
Чувствую себя орденоносцем )) И Вам спасибо на добром слове и вообще.
iteg писал(а):Какое у вас разрешение и масштаб?
Windows 11 23H2, 27" 2560x1440, 100%. Посмотрю ещё завтра на другом экране.
Amo ergo sum
Аватара пользователя
yozhik
Сообщения: 353
Зарегистрирован: Вс май 04, 2014 20:34
Откуда: Электросталь

Сообщение yozhik »

iteg
Выявилось существенное уточнение: непропорционально маленький моноширинный шрифт у меня отображается только при светлой теме. При тёмной всё стандартно. Проверил также и на другой машине (как обещал): дисплей 1920x1200 16:10 16" 100% и 125%, Windows 11 23H2 (соотношение сторон как у Вас) — те же симптомы: при светлой маленький, при тёмной стандарт. На масштабировании 125% разница не бросается в глаза, поскольку и так, и эдак шрифт достаточно крупный, но она есть. Если сделать два скриншота одной области и попереключаться между ними, то сразу видно.
Amo ergo sum
iteg
Сообщения: 116
Зарегистрирован: Чт дек 01, 2011 17:01

Сообщение iteg »

BlackFox
это не старый, а борландовский стиль.
Спасибо за предоставленную информацию. Придется конвертировать значительный объем кода. Занес в ToDo.

yozhik
Выявилось существенное уточнение
Смог у себя проявить. Это внесенная проблема из-за перехода на Embarcadero RAD Studio 12.2. Ждем-с патч, если исправят.

Тестовая версия 3.0.15.3:
- Значительно улучшен разбор ресурса TYPELIB.
- Реализована возможность просмотра всех ресурсов TYPELIB в файле, а не только самого первого, как в fileinfo. (C:\Windows\HelpPane.exe, Windows 11).
- Чтение всех ресурсов для вкладки "Ресурсы" переделано на использование механизма отображения файла в память. Все файловые операции и промежуточные буферы удалены.
- Для вкладки "Инфо" изменен порядок блоков данных. Первым блоком является файловый. Для параметра пути файла реализовано преобразование короткого пути (name~1) в длинный путь.
- Для вкладки "Инфо" реализовано отображение файлового информационного блока данных, даже если тип файла не поддерживается.
- Исправлена ошибка завершения вспомогательного потока расчета хешей и получения VT-статуса при быстром пробеге по файлам в режиме Ctrl+Q (быстрый просмотр).
- Расширен блок копируемой информации при нажатии на вкладке краткой информации "PE32 ...". Реализовано изменение курсора мыши при наведении. Также и для закладки с описанием ошибки.
- Исправлена ошибка чтения заголовка PNG-изображения.
- Исправлена ошибка чтения ресурса PACKAGEINFO.
- Устранены внутренние ошибки.
- Оптимизация кода.
https://www.upload.ee/files/17200202/PEViewer.rar.html
Mrak_Tlen
Сообщения: 30
Зарегистрирован: Вт окт 08, 2024 21:37

Сообщение Mrak_Tlen »

Вот бы была вкладка чисто с иконками, как iclview.wlx

Периодически переключаться между плагинами не всегда комфортно...
Ответить