LINUX.ORG.RU

CapacityTester v0.7c — программа с графическим интерфейсом для выявления реальной ёмкости носителей

 , , ,


0

3

Осенью 2025 года вышла версия 0.7c ранее не освещавшейся на ЛОРе (согласно поиску) программы для выявления носителей информации (флешек и ssd) с поддельной ёмкостью. Программа кроссплатформенная, написана с использованием фреймворка Qt.

Есть два режима работы CapacityTester:

  1. Аналогичный используемому при работе консольных утилит f3write/f3read (пакет f3 – Fight Flash Fraud), когда свободное место на носителе (с файловой системой) заполняется специально сформированными файлами. На носителях большого объёма требуется длительное время для проверки.
  2. Деструктивный режим, когда данные пишутся напрямую на носитель, и фейковая ёмкость может быть выявлена быстрее (у f3 тоже, вроде бы, есть аналогичный режим, но это не точно).

Помимо авторских сборок, у программы есть пакет в репозиториях Altlinux и PKGBUILD в AUR.

>>> Исходный код на GitHub

★★★★★

Проверено: hobbit ()
Последнее исправление: CrX (всего исправлений: 15)

Вышла версия 0.7c

c0xc released this Sep 20, 2025

с использованием тулкита Qt5

Qt6 тоже поддерживается.

dataman ★★★★★
()
Ответ на: комментарий от greenman

Вам, программистам, виднее.

Да. :) https://github.com/c0xc/CapacityTester/blob/master/CMakeLists.txt#L16:

# Find and configure Qt6 or fallback to Qt5
find_package(Qt6 COMPONENTS ${QT_COMPONENTS} QUIET)
if(Qt6_FOUND)
    set(QT_VERSION_MAJOR 6)
    set(QT_PACKAGE_PREFIX Qt6)
else()
    find_package(Qt5 COMPONENTS ${QT_COMPONENTS} REQUIRED)
    set(QT_VERSION_MAJOR 5)
    set(QT_PACKAGE_PREFIX Qt5)
endif()

И последним коммитом версия увеличена до 0.7d, но релиз ещё не сделан.

dataman ★★★★★
()
Последнее исправление: dataman (всего исправлений: 1)

А что так можно было?

А что для этого прям целая софтина с GUI нужна?

kma21 ★★★★★
()
Ответ на: комментарий от Aceler

Больше 1GB, но меньше 2. Походу это такое округление до целого путем отброса дробной части. :-))

MirandaUser2 ★★
()

носителей с графическим интерфейсом

Это что за носители такие?

utf8nowhere ★★★★
()

носителей с графическим интерфейсом

🤣 пон

wandrien ★★★
()
Ответ на: комментарий от Aceler

Но 2136997888 B это не 1 GB, что она там проверяет?

Пожалуй воздержусь от такой программы. Мало ли что там еще напогромировали.

wandrien ★★★
()
Ответ на: комментарий от PcheloBiaka

Пустой. Когда купил флэшку и не уверен, что это не подделка.

Zombieff ★★
()

день добрый!
посмотрел/потестировал все ваши «версии», до 6й (дальше не запускается/не собирается)
из того, что сразу бросилось в глаза - какие-то проблемы работы с USB-системой/определением наличия флешки

как-то давно делал инструмент для «быстрой» работы с usb-флешками (форматировать/сохранять имидж итд).
на чистом bash-е и «консольных гуях» на zenity
там реализовал этот механизм (определение подключенной usb-флешки)
на скринах понятно о чем я говорю
PIC1
PIC2
usb_flash_tool
исходные

- slackware 14.2
- qt-5.12.8

p.s. я почему-то подумал, что вы автор программы :о)

sunjob ★★★★★
()
Последнее исправление: sunjob (всего исправлений: 1)
Ответ на: комментарий от Aceler

Но 2136997888 B это не 1 GB, что она там проверяет?

Я тоже не понял, что это запись значит. Там же слэш стоит, а не скобки, то есть по идее типа 1 GB из 2136997888 B… Но что это за цифры — хрен знает.

Ну или это округление вниз (1.99 GiB округлено до 1). Но тогда надо бы писать не 1 GB / 2136997888 B, а 1 GB (2136997888 B). Ну а ещё лучше округлять по-человечески, конечно…

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от CrX

А всё просто. Гигабайты надо округлять до 2 знаков после запятой, а автор решил округлять до целого вниз.

2136997888 / (1024 * 1024 * 1024) = 1.990234375
wandrien ★★★
()
Ответ на: комментарий от PcheloBiaka

Забитый носитель проверить не возможно. Суть таких проверок в том, что пишется уникальная последовательность, а потом проверяется её уникальность.

lenin386 ★★★★
()
Ответ на: комментарий от lenin386

Забитый носитель проверить не возможно.

Ну вообще чисто теоретически способы есть. Например, если забит он файлами, копии которых имеются на заведомо рабочем носителе (HDD например), или к которым есть контрольные суммы.

Вообще я обычно так и проверяю. Забиваю флешку собственно тем, чем и хотел, затем (после отмонтирования, сброса кэшей и примонтирования, на всякий случай, хотя по идее только сброса кэшей достаточно, но так как-то спокойнее), просто сверяю, что все файлы читаются верно.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от lenin386

Хм. Моя фоточка в бикини и с макбуком (которую я так и не собрался отправить макскому, чтобы стать модератором и ногебаааать в начале двухтысячных) - уникальна. И бесценна. Уж могли бы и с ней носитель проверить. Странно. Почему нельзя использовать существующие данные. Дедупликации всякие возможны на носителе? Или что? (Да, мне лень идти до гугла,у нас снега полно)

PcheloBiaka
()
Ответ на: комментарий от lenin386

Почему не помогут контрольные суммы?

CrX ★★★★★
()
Ответ на: комментарий от PcheloBiaka

Хм. Моя фоточка в бикини и с макбуком (которую я так и не собрался отправить макскому, чтобы стать модератором и ногебаааать в начале двухтысячных) - уникальна.

Если она у тебя одна на весь накопитель, 2Tb фоточка super-future-hi-rez, то да. А если ты обычную фоточку с айфона натиражировал 100500 раз, то это не это. Это и есть запись по кругу, факт которой проверяется.

Почему нельзя использовать существующие данные.

Потому что их невозможно проверить. Они мож уже запороты, что проверять, с чем сравнивать? Если только у тебя верная копия их есть.

lenin386 ★★★★
()
Последнее исправление: lenin386 (всего исправлений: 1)
Ответ на: комментарий от lenin386

вы не в курсе? а китайсы могут! (встречал флешки, с емкость 1Гб а по сути 256Мб... все писалось по кругу, круг 256 Мб, все сверху затиралось ... обьяснил понятно?)

sunjob ★★★★★
()
Ответ на: комментарий от dataman

в моем случае

src/usbstoragedevice.cpp: In member function ‘UsbStorageDevice::UsbSpeed UsbStorageDevice::getSpeed(int*, int*, int*)’:
src/usbstoragedevice.cpp:483:18: error: ‘LIBUSB_SPEED_SUPER_PLUS’ was not declared in this scope
             case LIBUSB_SPEED_SUPER_PLUS:
                  ^
src/usbstoragedevice.cpp:493:18: warning: unused variable ‘version’ [-Wunused-variable]
         uint16_t version;
                  ^
Makefile:1055: recipe for target 'obj/usbstoragedevice.o' failed
make: *** [obj/usbstoragedevice.o] Error 1

видимо, версия qt5 старовата для данных проделок?! :о)

sunjob ★★★★★
()
Последнее исправление: sunjob (всего исправлений: 2)
Ответ на: комментарий от sunjob

видимо, версия qt5 старовата для данных проделок?! :о)

Это не про Qt.
LIBUSB_SPEED_SUPER_PLUS в /usr/include/libusb-1.0/libusb.h из пакета libusb-1.0-0-dev.

dataman ★★★★★
()

Это не у клиента должно работать, а на стороне сервера. Чтобы изначально не получить такой носитель, пусть проверяют перед отправкой. А так ты уже купил флешку на 128 гигов с реальной ёмкостью в 4 по цене сосиски в тесте, и пойди кому чего докажи теперь.

Smacker ★★★★★
()

Нужная штука к сожалению.

zabbal ★★★★☆
()

Научно-технический прогресс достиг таких высот, что нам теперь понадобилась такая утилита!

kirill_rrr ★★★★★
()
Ответ на: комментарий от lenin386

Думаете накопитель, на который зажали флеша, может уметь дедупликацию на лету?

kirill_rrr ★★★★★
()

Подскажите, а есть аналог на GTK?

daniyal
()

Работает ли на вейланде?

piyavking ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.