Integrity Checker — работа с хеш-суммами выделенных файлов

Здесь можно обсудить ваш любимый плагин.
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by Ariman »

Анонс

Хотелки от пользователей:
  • работа с плагиновыми панелями, на которых реальные файлы
  • сравнить хэш с содержимым клипборда
  • возможность использовать upper case для шестнадцатеричного вывода
  • поддержка выбора кодировки для файлов хеш-листов
  • опция 1 хеш файл на 1 каталог
  • генерация одновременно нескольких хешей для файла
  • возможность сравнить вновь вычисленный хэш с предыдущим
  • запуск генератора через префикс
  • сохранение в лог ошибок при генерации
  • добавить поддержку ed2k хешей
Для желающих тестировать последние изменения, актуальные бинарники можно взять здесь. (Уже нельзя)
Last edited by Ariman on Tue 04 May, 2021 08:01, edited 14 times in total.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by buniak_a_h »

Latest post of the previous page:

Ariman wrote: Sun 03 Feb, 2019 15:52
buniak_a_h wrote: Sat 02 Feb, 2019 12:07 может, имеет смысл включить в комплект поставки такого типа lua?
Есть же уже похожий скрипт в комплекте, для md5. Какой смысл плодить их для каждого алгоритма, кому надо, поправит под свои нужды.
Я про назначение префикса. Есессно, я за основу (как пример) взял из поставки. Просто не все знают про CommandLine. А про разные алгоритмы - я не по уши деревянный, чтоб такое предлагать.
Last edited by buniak_a_h on Sun 03 Feb, 2019 17:46, edited 1 time in total.
Heir
Posts: 4
Joined: Wed 09 Jan, 2019 15:17
Has thanked: 3 times

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by Heir »

buniak_a_h Полезный макрос обнародовали. Ещё хорошо бы результат в Буфер помещать.

И ещё, чтобы префиксы вручную не набивать можно вот такой пользовать, просто медленно последовательно нажимая одну и ту же цифру (или знак — меняется легко).
Attachments
вставкаВкомстрокуПоКругуПрефиксовРасчетаКсНажатиемЦифры2(Heir)con.lua
(2.15 KiB) Downloaded 119 times
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by buniak_a_h »

Heir wrote: Mon 04 Feb, 2019 17:19 Ещё хорошо бы результат в Буфер помещать.
У меня для этого есть свой макрос

Одно нажатие лишнее, зато мне далеко не всегда требуется помещать его в буфер (а иногда - и нельзя: в буфере что-то нужное).
Можно было бы заменить far.Show на far.Message с кнопками "в буфер", "в комстроку", "закрыть". Было бы универсальнее, но лениво...
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by IgorZ »

Windows XP SP3, Far 3.0.5382, Integrity Checker 2.7.1

У меня есть каталог с кучей имиджей дисков. Для контроля целостности сделан файл с контрольными суммами MD5, и периодически произвожу проверку. В этот раз встал на файл с контрольными суммами (создан также Integrity Checker), вызвал меню плагина, выбрал пункт "Проверка файлов", Enter, получил
Стек, если надо:
Создал файл с контрольными суммами для каталога IntChecker непосредственно версией 2.7.1 - результат попытки проверки тот же.

С версией 2.7.0 всё работает нормально.

Также заодно повторяю вопрос buniak_a_h: что делает префикс плагина, и почему команда "check: <filename>.md5" вызывает сообщение "Файл не является списком хешей" (файл заведомо корректен, и в версии 2.7.0 при вызове проверки через меню плагина отрабатывается нормально)?
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by Ariman »

IgorZ wrote: Tue 09 Apr, 2019 10:18В этот раз встал на файл с контрольными суммами (создан также Integrity Checker), вызвал меню плагина, выбрал пункт "Проверка файлов", Enter, получил
А можно файлик посмотреть, на котором падает? Само сообщение мне не сильно много говорит. Раз проблемный файл создается плагином нормально, то, похоже, что падает в парсере. Код хеширования одинаковый для обеих операций.
IgorZ wrote: Tue 09 Apr, 2019 10:18 почему команда "check: <filename>.md5" вызывает сообщение "Файл не является списком хешей" (файл заведомо корректен, и в версии 2.7.0 при вызове проверки через меню плагина отрабатывается нормально)?
Потому что пробел перед именем файла. Плагин его считает частью имени и не находит такой файл. В имя попадает всё, что после двоеточия.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by IgorZ »

Ariman wrote: Tue 09 Apr, 2019 10:41
IgorZ wrote: Tue 09 Apr, 2019 10:18В этот раз встал на файл с контрольными суммами (создан также Integrity Checker), вызвал меню плагина, выбрал пункт "Проверка файлов", Enter, получил
А можно файлик посмотреть, на котором падает? Само сообщение мне не сильно много говорит. Раз проблемный файл создается плагином нормально, то, похоже, что падает в парсере. Код хеширования одинаковый для обеих операций.
Зашёл в каталог плагина, создал hashlist.md5 (приложил), тут же вызываю проверку - падение.
Подключил FExcept.dll, создал траплог - может, поможет. Тоже прицепил.
Ariman wrote: Tue 09 Apr, 2019 10:41
IgorZ wrote: Tue 09 Apr, 2019 10:18 почему команда "check: <filename>.md5" вызывает сообщение "Файл не является списком хешей" (файл заведомо корректен, и в версии 2.7.0 при вызове проверки через меню плагина отрабатывается нормально)?
Потому что пробел перед именем файла. Плагин его считает частью имени и не находит такой файл. В имя попадает всё, что после двоеточия.
Спасибо, помогло.
Attachments
FarTrap_20190409154548.log.7z
(3.98 KiB) Downloaded 93 times
hashlist.md5.7z
(617 Bytes) Downloaded 87 times
Last edited by IgorZ on Tue 09 Apr, 2019 12:03, edited 1 time in total.
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by Ariman »

IgorZ wrote: Tue 09 Apr, 2019 12:00 Подключил FExcept.dll, создал траплог - может, поможет. Тоже прицепил.
Не повторяется. Пробовал версию 2.7.1 и x86, и x64. Проверяет файлы без ошибок.
Судя по логу, падает где-то в коде boost-а. В новой версии я его уже не использую, может и ошибка пропадет.
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by Ariman »

IgorZ
Проверь, ради интереса, будет ли текущая версия падать. А то у меня никак не повторяется.

Версию для последнего билда можно достать в Appveyor-е (закладка Artifacts для нужной конфигурации).
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by IgorZ »

Ariman wrote: Wed 10 Apr, 2019 10:05 IgorZ
Проверь, ради интереса, будет ли текущая версия падать. А то у меня никак не повторяется.

Версию для последнего билда можно достать в Appveyor-е (закладка Artifacts для нужной конфигурации).
Да, версия 2.7.2 работает, не падая, на любых падучих в 2.7.1 вариантах, спасибо. В общем, что это было, неясно, но ушло.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by buniak_a_h »

Обнаружена неприятная особенность плагина: при невозможности открытия файла (для подсчёта КС) он валится так, что обойти в скрипте на LUA невозможно (или я не нашёл как).
Например. В скрипте написано такое:

Code: Select all

local fn=win.GetEnv('USERPROFILE') .. '\\NTUSER.DAT'
local www=Plugin.SyncCall("E186306E-3B0D-48C1-9668-ED7CF64C0E65", "gethash", 'MD5', fn)
far.Show(www)
При выполнении скрипта получаю:

Code: Select all

╔══════════════════ Error ═══════════════════╗
║         Can not calculate hash for         ║
║         \\?\C:\Users\PC\NTUSER.DAT         ║
╟────────────────────────────────────────────╢
║ { Skip } [ Skip All ] [ Retry ] [ Cancel ] ║
╚════════════════════════════════════════════╝
При этом после Skip в переменную www помещается результат предыдущего вычисления КС.
Определить, что была ошибка, в скрипте не представляется возможным: pcall и xpcall возвращают true! Например:

Code: Select all

local fn=win.GetEnv('USERPROFILE') .. '\\NTUSER.DAT'
return pcall(Plugin.SyncCall,"E186306E-3B0D-48C1-9668-ED7CF64C0E65", "gethash", 'MD5', fn)
возвращает

Code: Select all

╔══════════════════════════════════════╗
║  1│ true                             ║
║  2│ 35d1750061b8382c69ccd119c0237029 ║
╚════════════ 2 arguments ═════════════╝
(то, что указано во второй строке, это - результат вычисления MD5 предыдущего файла!)
Нельзя ли как-нибудь этот вопрос решить? Причём или по параметру Quiet, или по настройке не только возвращать nil, но и блокировать вывод сообщения об ошибке?
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by Ariman »

buniak_a_h wrote: Tue 10 Sep, 2019 14:58 Нельзя ли как-нибудь этот вопрос решить? Причём или по параметру Quiet, или по настройке не только возвращать nil, но и блокировать вывод сообщения об ошибке?
Посмотрю.

UPD. Закомитил исправление на гитхаб. Теперь будет возвращать false вместо хеша от предыдущего файла. И добавил опциональный параметр Quiet.
Last edited by Ariman on Sat 28 Sep, 2019 09:16, edited 1 time in total.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by buniak_a_h »

Ariman wrote: Sat 28 Sep, 2019 08:18 Закомитил исправление на гитхаб
Спасибо. Но может я чего-то не понимаю... А дальше-то какие мои действия? Качать исходники и компилить ? На плагринге - старое... Или где-то ещё есть бинарники?
skipik
Posts: 318
Joined: Wed 03 Jun, 2015 15:24
Has thanked: 67 times
Been thanked: 29 times

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by skipik »

buniak_a_h, вот я сегодня собирал, включает последние изменения: https://www.upload.ee/files/10531924/In ... r2.7z.html
На будущее, вот тут можно брать бинарники после каждого нового коммита: https://ci.appveyor.com/project/lazyham ... s/27732657
Last edited by skipik on Sat 28 Sep, 2019 13:46, edited 1 time in total.
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by Ariman »

buniak_a_h wrote: Sat 28 Sep, 2019 12:48 А дальше-то какие мои действия?
Добавил инструкцию в шапку. Каждый комит собирается через AppVeyor. Можно качать архивы под свою конфигурацию.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by buniak_a_h »

skipik wrote: Sat 28 Sep, 2019 13:45 buniak_a_h, вот я сегодня собирал, включает последние изменения: https://www.upload.ee/files/10531924/In ... r2.7z.html
На будущее, вот тут можно брать бинарники после каждого нового коммита: https://ci.appveyor.com/project/lazyham ... s/27732657
Немножко удивляет, что бинарники, полученные с разных ссылок, различаются. Но это - так, к слову...
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by Ariman »

Может skipik другой версией студии собирал, по сравнению с той, что в AppVeyor-е используется.
Post Reply

Return to “Обсуждение плагинов”