PE Viewer 3.0

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

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

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

Сообщение iteg »

1) yozhik
Косметика 5) и 6) из этого поста, пока, наверное, руки не дошли? Скромное напоминание Smile
Да, пометил себе в лист ToDo.

2) imig73
Хотелось бы видеть основную информацию крупно
Изменить размер шрифта можно через файл "PEViewer_config.ini.sample" в папке установки плагина. Необходимо убрать расширение ".sample" и задать нужное значение.

3) burav
Базу PEiD UserDB.txt брал из проекта UserDB.txt https://github.com/packing-box/peid/tree/main/src/peid.
Базу PE Sniffer Signs.txt не нашел новее, поэтому оставил такой, какой была изначально в версии 2.0 плагина.
Предположительно, ошибка в алгоритме поиска.
Записи в базах необходимо обновлять/пополнять. Если есть желание, то находите новые записи или базы, выкладывайте, буду объединять.
Можете сбросить ссылку на PE Sniffer 4.0?
Аватара пользователя
yozhik
Сообщения: 353
Зарегистрирован: Вс май 04, 2014 20:34
Откуда: Электросталь

Сообщение yozhik »

iteg писал(а):Можете сбросить ссылку на PE Sniffer 4.0?
Вот, кажется, в составе PETools:
https://github.com/petoolse/petools/releases
там и Signs.txt от 2017 года.
Аватара пользователя
burav
Сообщения: 22
Зарегистрирован: Пт окт 07, 2011 18:16

Сообщение burav »

С сигнатурами вообще не совсем понятно, куча каких-то проектов, которые к себе в базы тянут всё подряд, непонятно по каким правилам, на выходе получается каша.

Ну, допустим, попробуем опираться на базу сигнатур PE Sniffer 4.0 (Signs.txt), она теперь в формате PEiD.

Если её подсунуть в сам PEiD 0.95 (удалив начальные комментарии), то PEiD показывает (нужно нажать -> External scan) информацию, отличную от PE Sniffer. То есть тут или реализация парсера базы сигнатур отличается, или ещё какие-то доп условия имеют место.

Если эту же базу подсунуть плагину в виде UserDB.txt, на тех же файлах он в большинстве случаев показывает "Неизвестный", то есть, скорее всего, есть ошибка в алгоритме поиска.
iteg
Сообщения: 116
Зарегистрирован: Чт дек 01, 2011 17:01

Сообщение iteg »

Исправил алгоритмы поиска и для PE Sniffer и для PEiD.
Тестовая версия https://dropmefiles.com/7kxkj.

В плагине эти два алгоритма выполняют поиск только с начала EP. Но некоторые утилиты позволяют выполнять поиск и по содержимому секций.
Для PEiD записи с параметром "ep_only=false" пока игнорируются.

Теперь на CABRK.DLL PEiD будет выдавать "NeoLite v2.0", т.к. сигнатура поиска совпадает с WATCOM и располагается в списке первее. Если удалить из базы, то будет определять WATCOM.
Аватара пользователя
burav
Сообщения: 22
Зарегистрирован: Пт окт 07, 2011 18:16

Сообщение burav »

iteg, спасибо за ваш труд! буду тестировать)

посмотрите, пожалуйста, на эти два файла
Изображение Изображение
https://disk.yandex.ru/d/S7reQE5fRD5_VQ

LockHunter64 совпал по PES, но по PEiD - нет, хотя в комплектной базе UserDB.txt сигнатура MEW 11 SE v1.2 есть, и она расположена выше, чем Morphine v1.2 (DLL). и, кстати, что это за 96%?
MediaDB напротив, не совпал по PES, хотя должен бы был, в Signs.txt такая запись есть

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

Сообщение iteg »

Алгоритм PES делает нечеткий поиск. Проценты это количество совпавших байтов деленное на количество известных байтов в сигнатуре. Если сигнатура полностью совпала, то проценты не выводятся и алгоритм завершается. Иначе алгоритм пробегается по всем сигнатурам и в конце выводит сигнатуру с наибольшим процентом совпадений, которое должно быть больше 80%.
153 / 159 * 100 = 96%

Алгоритм PEiD ищет 100% совпадение.

Как ранее писал PES и PEiD делают поиск только с начала EP.

Для проверки сигнатуры необходимо:
1) Узнать EP в файле (Entry Point Raw Offset) на вкладке Info.
2) В шестнадцатеричном редакторе перейти до данному смещению и проверять сигнатуру. Некоторые редакторы позволяют делать поиск Hex-паттерна с подстановочными символами.
3) Для PES символы "::" и для PEiD "??" означают произвольное значение байта.

Для LockHunter64.RUS:
PES нашел неточное совпадение "MEW 11 SE v1.2 (96%)". Сигнатура "Morphine v1.2 (DLL)" из Signs.txt не подошла (длиннее), т.к. отличается от одноименной в UserDB.txt
Для "Morphine v1.2 (DLL)" разные сигнатуры в базах Signs.txt (1шт.) и UserDB.txt (2шт.)
PEiD нашел точное соответствие.
Интересно то, что сигнатура "MEW 11 SE v1.2" не должна подходить, т.к. если посмотреть на нее, то первым байтом идет E9, а первый байт в файле с EP (0x00000400) идет 55. Но из-за неточного поиска (шумы) получаем 153 (совпало) / 159 = 96%.

Для MediaDB.dll:
Проблема, когда сигнатуры дают положительный результат поиска, но играет роль расположения сигнатуры в базе.
PE Shiffer
Borland Delphi 3.0 (???) - Signs.txt, 24 строка.
Armadillo v4.x - Signs.txt, 291 строка.
PEiD
Armadillo v4.x - UserDB.txt, 1973 строка.
Borland Delphi 3.0 (???) - UserDB.txt, 2417 строка.

Поиск по сигнатурам дает коллизии.

Стоит ли выводить номер найденной сигнатуры, а также соотношение совпавших байт к количеству явных байт?
Аватара пользователя
burav
Сообщения: 22
Зарегистрирован: Пт окт 07, 2011 18:16

Сообщение burav »

Спасибо за подробное объяснение, буду разбираться)

А какой hex редактор позволяет искать с подстановочными символами? В Hxd и Hex Editor Neo не нашёл такой возможности.

А если в случае точного совпадения не прекращать поиск, а выводить все совпадения, через запятую?

Номер сигнатуры и соотношение байт лично мне кажется избыточной информацией.
iteg
Сообщения: 116
Зарегистрирован: Чт дек 01, 2011 17:01

Сообщение iteg »

А какой hex редактор позволяет искать с подстановочными символами?
Например, http://www.cihexviewer.com/. Как раз позволяет искать в формате PEiD. Например, ED A5 ?? 00 00.
А если в случае точного совпадения не прекращать поиск, а выводить все совпадения, через запятую?
Но пользователь ожидает только одно совпадение. Так сделано во многих детекторах.
Аватара пользователя
lz57005
Сообщения: 28
Зарегистрирован: Чт мар 05, 2020 09:47
Контактная информация:

Сообщение lz57005 »

iteg
а алгоритмы поиска Detect It Easy перебор?
iteg
Сообщения: 116
Зарегистрирован: Чт дек 01, 2011 17:01

Сообщение iteg »

а алгоритмы поиска Detect It Easy перебор?
DIE использует скриптовой язык для анализа. В зависимости от формата файла используется определенный набор скриптов. Некоторые скрипты используют сигнатуры, другие - иные признаки. Смотрите файлы *.sg.
the_victor
Сообщения: 10
Зарегистрирован: Сб мар 17, 2012 12:16

Сообщение the_victor »

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

Сообщение iteg »

the_victor, спасибо за информацию. Эта ошибка уже исправлена. Исправление будет в версии 3.0.7.
Аватара пользователя
burav
Сообщения: 22
Зарегистрирован: Пт окт 07, 2011 18:16

Сообщение burav »

iteg писал(а):
А какой hex редактор позволяет искать с подстановочными символами?
Например, http://www.cihexviewer.com/. Как раз позволяет искать в формате PEiD. Например, ED A5 ?? 00 00.
еще нашёл https://github.com/digitalw0lf/hextor, показался более дружелюбным
Аватара пользователя
burav
Сообщения: 22
Зарегистрирован: Пт окт 07, 2011 18:16

Сообщение burav »

Строка "Файл открыт" всегда показывает время открытия файла плагином, т.е. текущее время) А проводник какое-то другое время. И ни одно из этих времён не отражает время, когда я реально открывал файл, но это уже, наверное, вопросы к операционной системе, откуда она берёт это время.

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

Сообщение iteg »

burav
Для вывода времени использую функцию GetFileTime. В ее описании указано, что возвращаемое время файла зависит от файловой системы и ее настроек. Причем время "File Accessed" может быть с задержкой до 1 часа.
Чтобы "File Accessed" постоянно выводило текущее время, то не смог проявить данную ситуацию. Вот примеры: https://ibb.co/5vRtkXy и https://ibb.co/pQG7b1b.
Очень редко тоже замечал, что в проводнике одно из времен не совпадало.
Если "File Accessed" показывает неактуальную информацию, возможно, отключена опция формирования timestamp для NTFS. Данное отключение благоприятно сказывается на здоровье SSD.
Ответить