PE Viewer 3.0

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

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

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

PE Viewer 3.0

Сообщение iteg »

Всем привет!

Пересобрал проект на базе исходников "PE Viewer 2.0".
По предложениям и ошибкам пишите в текущей теме.

Плагин размещен на сайтах:
https://wincmd.ru/plugring/PEViewer3.html
http://totalcmd.net/plugring/PEViewer3.html
Аватара пользователя
LonerD
Сообщения: 1174
Зарегистрирован: Вт янв 04, 2011 03:56
Откуда: Макеевка
Контактная информация:

Сообщение LonerD »

Windows 11 | TC DreamLair eternal pre-α
junk
Сообщения: 30
Зарегистрирован: Пн июл 27, 2015 18:33

Сообщение junk »

3.0.4
[*] Исправлена обработка клавиш F3, F5, F7 и Backspace в Lister.
Но сломана обработка клавиш 1, 2, 3...
Теперь невозможно переключиться в режим Text/Binary/Hex и т.д. с клавиатуры
Аватара пользователя
yozhik
Сообщения: 365
Зарегистрирован: Вс май 04, 2014 20:34
Откуда: Электросталь

Сообщение yozhik »

iteg
Подтверждаю, цифровые клавиши перестали работать в версии 3.0.4. Исправьте, пожалуйста, это базовый функционал. А мы пока откатываемся на предыдущую 3.0.3.
iteg
Сообщения: 116
Зарегистрирован: Чт дек 01, 2011 17:01

Сообщение iteg »

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

Сообщение yozhik »

iteg
И мы благодарим, теперь с клавишами порядок, работают.

У инсталлятора Total Commander плагин не определяет некоторые поля Info. Для сравнения таблицы Info PEViewer.wlx и fileinfo.wlx:
Изображение Изображение
Так и должно быть? Или «жучок»?
iteg
Сообщения: 116
Зарегистрирован: Чт дек 01, 2011 17:01

Сообщение iteg »

Да, это ошибка. Уже исправил и выйдет в версии 3.0.6.
Аватара пользователя
burav
Сообщения: 22
Зарегистрирован: Пт окт 07, 2011 18:16

Сообщение burav »

Добрый день!
Спасибо за плагин! Хорошая потенциальная замена FileInfo
Определение компилятора и просмотр ресурсов - огонь!

Плагин версии 3.0.5 не читает информацию из этих файлов
https://disk.yandex.ru/d/XlNBkNN7S-VJ-g

Извиняюсь за кривую ссылку, но новичкам не положено вставлять нормальные ссылки в сообщения(
iteg
Сообщения: 116
Зарегистрирован: Чт дек 01, 2011 17:01

Сообщение iteg »

burav, спасибо за информацию! Поддержку расширений PLG, PLG64 и SFX добавил. Доработка выйдет в версии 3.0.6.
Аватара пользователя
burav
Сообщения: 22
Зарегистрирован: Пт окт 07, 2011 18:16

Сообщение burav »

iteg, спасибо!
а плагин определяет файлы по расширению, или по заголовку?
тот же FileInfo не обращает внимание на расширение, и это удобно, так как периодически случается, что PE файлы имеют произвольные расширения, или не имеют его вовсе

ЗЫ
Попробовал принудительно прописать все PE файлы для открытия плагином

Код: Выделить всё

[ListerPlugins]
0=%COMMANDER_PATH%\plugins\wlx\PEViewer\PEViewer.wlx
0_detect="([0]="M" & [1]="Z")"
Но, похоже, плагин имеет ещё и внутреннюю проверку расширения файла. iteg, можно ли добавить возможность выключить эту проверку?
iteg
Сообщения: 116
Зарегистрирован: Чт дек 01, 2011 17:01

Сообщение iteg »

можно ли добавить возможность выключить эту проверку?
Полностью переделал алгоритм определения допустимого файла.
Изначально плагин передавал строку с допустимыми расширениями, которая записывалась в ?_detect="..." wincmd.ini. Все файлы с расширениями вне данного списка игнорируются.
Теперь detect-строку передаю пустой, что позволяет получать все файлы.
Внутри плагина уже провожу две проверки:
1) Если расширение файла входит в список известных PE файлов, то идем на выполнение и создание GUI. Если даже файл будет поврежден, то пользователь получит сообщение. Идея такова, чтобы для известных расширений ВСЕГДА создавалось GUI.
Общеизвестные расширения:
('EXE', 'DLL', 'DRV', 'SYS', 'OCX', 'COM', 'AX', 'CPL', 'SO', 'SCR', 'MUI', 'ACM', 'BPL', 'EFI', 'WINMD', 'TSP', 'WLX', 'WFX', 'WDX', 'WCX', 'WLX64', 'WFX64', 'WDX64', 'WCX64')
2) Файл с неизвестным расширением. Если файл содержит маркеты MZ, PE и тип Machine, то идем на выполнение и создание GUI.
Если файл не прошел эти проверки, то ничего не выполняется. Lister передает управление на следующий по приоритету плагин.
Функционал выйдет в версии 3.0.6.
Аватара пользователя
burav
Сообщения: 22
Зарегистрирован: Пт окт 07, 2011 18:16

Сообщение burav »

iteg писал(а):Полностью переделал алгоритм определения допустимого файла.
вот это крутяк! будем тестировать, спасибо
Аватара пользователя
yozhik
Сообщения: 365
Зарегистрирован: Вс май 04, 2014 20:34
Откуда: Электросталь

Сообщение yozhik »

iteg
Взгляните, пожалуйста, вот на этот старенький exe (в паре с такой же старенькой dll-кой):
https://0x0.st/HL_2.zip
плагину понадобилось не меньше 10 секунд, чтобы его «открыть/обработать». Для сравнения FileInfo справился за 2 секунды. Может быть так и должно быть, я не знаю. На всякий случай рапортую.
Аватара пользователя
burav
Сообщения: 22
Зарегистрирован: Пт окт 07, 2011 18:16

Сообщение burav »

yozhik писал(а):itegплагину понадобилось не меньше 10 секунд, чтобы его «открыть/обработать». Для сравнения FileInfo справился за 2 секунды.
на моей системе открывается мгновенно что через FileInfo, что через PEViewer
если открыта вкладка DLL, тогда открытие занимает примерно полсекунды, но это справедливо для обоих плагинов
может, ваш набор плагинов и/или их последовательность тормозят открытие? попробуйте переместить PEViewer на первое место в списке плагинов
ну и антивирус попробуйте выключить, это уже классика)

что действительно смущает, это то, что на файле FOBJ600.DLL PEViewer показывает меньше DLL
или это FileInfo показывает лишние?
Изображение
Аватара пользователя
yozhik
Сообщения: 365
Зарегистрирован: Вс май 04, 2014 20:34
Откуда: Электросталь

Сообщение yozhik »

burav писал(а):переместить PEViewer на первое место
Он на первом.
burav писал(а):антивирус попробуйте выключить
Антивирусов нет вообще, Defender отключен. Windows виртуальная, интернет в ней отключен. Хост Mac OS, виртуализация от Parallels Desktop — качественная, без тормозов и лагов. Резидентные программы (типа PuntoSwitcher) не используются.

Остальное окружение: Win 10 21H2 x64, выделенная ОП 16 Гб, доступ к процессору полный Intel Xeon 6-Core 3,46 GHz, ЖД SSD 500 Гб заполнен наполовину, Total Commander 11.00 32/64, PEViewer 3.0.5, описанная задержка наблюдается на обеих битностях (x64 чуть быстрее, 6 сек, но FileInfo x64 справляется за полсекунды).

Возможно задержка объясняется участием FOBJ600.DLL — если открыть его напрямую, то плагин сообщает (в шапке, красным шрифтом) «Delay directory input is corrupted». Но при этом сам DLL открывается значительно быстрее, а когда он же считывается при обращении к DSLCOMP.EXE (на предмет ф-ций), то происходит описанная задержка.

Я понимаю, что могу что-то не учитывать в конфигурации (потому и оговорился в пред. посте, что «может быть так и должно быть»). Другое дело, что исследовать окружение и тестировать можно долго. Я был бы благодарен, если бы подсказали на что ещё нужно обратить внимание.

Добавлено спустя 30 минут:

На всякий случай добавлю и я пару скриншотов:
Изображение Изображение

iteg,
Взгляните ещё, пожалуйста, на видео на поведение колонки Name в панели Import. В какой-то момент, после запечатленных манипуляций, колонка сокращает свою ширину в ноль (чаще в 2-3 символа, так что имена становятся нечитаемыми). Думаю, описывать по пунктам сценарий воспроизведения не нужно, т.к. на видео всё достаточно ясно видно, но если надо, то я готов. Единственное условие: путь к тестируемому файлу должен быть длинный (обратите, пожалуйста, внимание, я специально создал подобный «Very_Long\Very_very...»):
https://0x0.st/HLLL.mp4
Ответить