From: Dobrica Pavlinusic Date: Fri, 21 Jan 2011 00:05:02 +0000 (+0100) Subject: decode GPB on sector trailer 0 X-Git-Url: http://git.rot13.org/?p=perl-Mifare-MAD.git;a=commitdiff_plain;h=d0bba341e27cf623b346590cdeaf39aae87c8380;hp=9d2ba0f1af517d5eeddfcb7c4b26815368b02486 decode GPB on sector trailer 0 --- diff --git a/mifare-mad.pl b/mifare-mad.pl index a9681a1..1748d6d 100755 --- a/mifare-mad.pl +++ b/mifare-mad.pl @@ -76,6 +76,11 @@ foreach my $i ( 0 .. 15 ) { , unpack('H*',substr($card,4,1)) , unpack('H*',substr($card,5,11)) ; + # General purpose byte (GPB) + my $gdp = ord(substr($card,$pos+0x39,1)); + printf "ADV (MAD version code): %d\n", $gdp & 0b00000011; + printf "MA (multiapplication): %s\n", $gdp & 0b01000000 ? 'yes' : 'monoaplication'; + printf "DA (MAD available): %s\n", $gdp & 0b10000000 ? 'yes' : 'no'; } else { my $v = unpack('v',(substr($card, 0x10 + ( $i * 2 ), 2))); my $cluster_id = unpack('HH', (( $v & 0xff00 ) >> 8) ); @@ -132,9 +137,10 @@ foreach my $i ( 0 .. 15 ) { } - printf "KEY A:%s | %s | B:%s\n" + printf "KEY A:%s | %s GDP: %s | B:%s\n" ,unpack('H*',substr($card,$pos+0x30 ,6)) - ,unpack('H*',substr($card,$pos+0x30+6 ,4)) + ,unpack('H*',substr($card,$pos+0x30+6 ,3)) + ,unpack('H*',substr($card,$pos+0x30+9 ,1)) ,unpack('H*',substr($card,$pos+0x30+10,6)) ;