+ if ( $iso =~ m/15693/ ) {
+ _grep_tool 'librfid-tool', '--read -1' => sub {
+ $sid ||= shift;
+ $blocks->{$sid}->[$1] = hex2bytes($2)
+ if m/block\[\s*(\d+):.+data.+:\s*(.+)/;
+
+ };
+ } else {
+ read_mifare_keys unless $mifare_keys;
+
+=for unmodified mifate-tool
+ foreach my $sector ( keys %$mifare_keys ) {
+ my $key = lc $mifare_keys->{$sector};
+ _grep_tool 'mifare-tool', "-k $key -r $sector" => sub {
+ $blocks->{$sid}->[$sector] = hex2bytes($1)
+ if m/data=\s*(.+)/;
+ };
+ }
+=cut
+ _grep_tool 'mifare-tool', "-k " . $mifare_keys->{0} . " -s " . $mifare_keys->{4} => sub {
+ $blocks->{$sid}->[$1] = hex2bytes($2)
+ if m/page=(\d+).*data=\s*(.+)/;
+ };
+ }