Страница 3 из 22
Добавлено: Пн сен 11, 2023 18:59
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?
Добавлено: Пн сен 11, 2023 21:36
yozhik
iteg писал(а):Можете сбросить ссылку на PE Sniffer 4.0?
Вот, кажется, в составе PETools:
https://github.com/petoolse/petools/releases
там и Signs.txt от 2017 года.
Добавлено: Вт сен 12, 2023 12:49
burav
С сигнатурами вообще не совсем понятно, куча каких-то проектов, которые к себе в базы тянут всё подряд, непонятно по каким правилам, на выходе получается каша.
Ну, допустим, попробуем опираться на базу сигнатур PE Sniffer 4.0 (Signs.txt), она теперь в формате PEiD.
Если её подсунуть в сам PEiD 0.95 (удалив начальные комментарии), то PEiD показывает (нужно нажать -> External scan) информацию, отличную от PE Sniffer. То есть тут или реализация парсера базы сигнатур отличается, или ещё какие-то доп условия имеют место.
Если эту же базу подсунуть плагину в виде UserDB.txt, на тех же файлах он в большинстве случаев показывает "Неизвестный", то есть, скорее всего, есть ошибка в алгоритме поиска.
Добавлено: Вт сен 12, 2023 18:46
iteg
Исправил алгоритмы поиска и для PE Sniffer и для PEiD.
Тестовая версия
https://dropmefiles.com/7kxkj.
В плагине эти два алгоритма выполняют поиск только с начала EP. Но некоторые утилиты позволяют выполнять поиск и по содержимому секций.
Для PEiD записи с параметром "ep_only=false" пока игнорируются.
Теперь на CABRK.DLL PEiD будет выдавать "NeoLite v2.0", т.к. сигнатура поиска совпадает с WATCOM и располагается в списке первее. Если удалить из базы, то будет определять WATCOM.
Добавлено: Вт сен 12, 2023 21:36
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 такая запись есть
просто хочу удостовериться, что так и надо)
к сожалению, знаний не хватает, чтобы самому проверять сигнатуры(
спасибо)
Добавлено: Ср сен 13, 2023 14:16
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 строка.
Поиск по сигнатурам дает коллизии.
Стоит ли выводить номер найденной сигнатуры, а также соотношение совпавших байт к количеству явных байт?
Добавлено: Ср сен 13, 2023 20:28
burav
Спасибо за подробное объяснение, буду разбираться)
А какой hex редактор позволяет искать с подстановочными символами? В Hxd и Hex Editor Neo не нашёл такой возможности.
А если в случае точного совпадения не прекращать поиск, а выводить все совпадения, через запятую?
Номер сигнатуры и соотношение байт лично мне кажется избыточной информацией.
Добавлено: Ср сен 13, 2023 22:09
iteg
А какой hex редактор позволяет искать с подстановочными символами?
Например,
http://www.cihexviewer.com/. Как раз позволяет искать в формате PEiD. Например, ED A5 ?? 00 00.
А если в случае точного совпадения не прекращать поиск, а выводить все совпадения, через запятую?
Но пользователь ожидает только одно совпадение. Так сделано во многих детекторах.
Добавлено: Ср сен 13, 2023 23:24
lz57005
iteg
а алгоритмы поиска Detect It Easy перебор?
Добавлено: Пт сен 15, 2023 00:54
iteg
а алгоритмы поиска Detect It Easy перебор?
DIE использует скриптовой язык для анализа. В зависимости от формата файла используется определенный набор скриптов. Некоторые скрипты используют сигнатуры, другие - иные признаки. Смотрите файлы *.sg.
Добавлено: Пт сен 15, 2023 20:41
the_victor
Заметил ошибку. При открытии второго окна просмотра интерфейс становится английским

Добавлено: Сб сен 16, 2023 00:24
iteg
the_victor, спасибо за информацию. Эта ошибка уже исправлена. Исправление будет в версии 3.0.7.
Добавлено: Сб сен 16, 2023 11:39
burav
iteg писал(а):А какой hex редактор позволяет искать с подстановочными символами?
Например,
http://www.cihexviewer.com/. Как раз позволяет искать в формате PEiD. Например, ED A5 ?? 00 00.
еще нашёл
https://github.com/digitalw0lf/hextor, показался более дружелюбным
Добавлено: Вт сен 19, 2023 09:31
burav
Строка "Файл открыт" всегда показывает время открытия файла плагином, т.е. текущее время) А проводник какое-то другое время. И ни одно из этих времён не отражает время, когда я реально открывал файл, но это уже, наверное, вопросы к операционной системе, откуда она берёт это время.

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