Доверяй, но проверяй

Jul 12, 2017 15:31


Недавно прочитал в одном журнале, что ушлые китайцы часто подделывают SD-карты. То есть контроллер сообщает компьютеру, что объём карты, например, 64 гигабайта. На эту карту действительно можно записать 64 гигабайта, но корректно считаются только первые 8, а вместо остального будет мусор, т. к. флэш-памяти на карточке всего 8, а всё остальное пишется в /dev/null.
Недавно я купил карточку на AliExpress и решил проверить, не подделана ли она. В той же статье была ссылка на некое Приложение® for Windows®, которое тестировало карту. Под Linux такого приложения, естественно, нет, но зато его можно быстро собрать на коленке из подручных материалов, что я и сделал.
Контрольный запуск показал, что карта настоящая. Обрадованный этим фактом, я заказал у того же продавца две карточки объёмом побольше, но когда они приехали из Поднебесной, скриптик всё равно запустил. И вот тут-то он себя и окупил, т. к. обе карты оказались поддельными...
Китайцам - жирный минус в карму, а скрипт, если кому нужен, - под катом.

#!/bin/bash if [[ ! -d ${1} ]] then echo "Usage: sdtest DIRECTORY [tmpdir]" exit 1 fi echo "Preparing test file..." if [[ -d ${2} ]] then tempfile=`mktemp -p "${2}"` else tempfile=`mktemp` fi dd if=/dev/urandom of=${tempfile} bs=1048576 count=512 echo ...done CS=`md5sum -b ${tempfile} | cut -f 1 -d " "` echo MD5 = ${CS} nf=0 if [[ ${1:(-1)} != "/" ]]; then dir=${1}/; else dir=${1}; fi while true do znf=000000${nf} fn=${znf:(-6)} /usr/bin/time -f "${fn} %e" cp ${tempfile} ${dir}${fn} if [[ $? -ne 0 ]]; then break; fi echo ${CS} *${fn} >>${dir}md5sum.txt nf=$((nf+1)) done rm -f ${tempfile} pushd $1 md5sum -c md5sum.txt popd

aliexpress, unix way, linux, ЭВМ, дорогая редакция

Previous post Next post
Up