#Include CARDUTIL.DEF #Include COMMERR.DEF ComPort=101 Declare Command &HFF &H82 LDK(S$) Declare Command &HFF &H86 AUT(S$) Declare Command &HFF &HB0 RD(S$) Declare Command &HFF &HCA UID(S$) CLS:Print"MIFHEX (c)2008 Patrick GUEULLE" Call WaitForCard() ResetCard (P$) Print:Print"ATR (Hist.) : "; FOR F=1 TO Len(P$) M=ASC(MID$(P$,F,1)) M$=HEX$(M):IF Len(M$)=1 Then M$="0"+M$ PRINT M$;" "; NEXT F Print:Print T$=Mid$(P$,10,2) IF T$<>Chr$(&H00)+Chr$(&H01) Then Goto OTHER Print "Mifare 1K reconnu ! ":Print S$="":Call UID(S$,Le=4):Call CheckSW1SW2 Print "UID : "; For F=1 To 4 K$=Mid$(S$,F,1) K=Asc(K$) Print Hex$(K);" "; Next F Print:Print:Print"Barre d'espace pour avancer d'un secteur, Esc pour quitter":Print S$=Chr$(&HA0)+Chr$(&HA1)+Chr$(&HA2)+Chr$(&HA3)+Chr$(&HA4)+Chr$(&HA5) S$=Chr$(&HB0)+Chr$(&HB1)+Chr$(&HB2)+Chr$(&HB3)+Chr$(&HB4)+Chr$(&HB5) S$=Chr$(&HFF)+Chr$(&HFF)+Chr$(&HFF)+Chr$(&HFF)+Chr$(&HFF)+Chr$(&HFF) Call LDK(P1P2=&H0000,S$,Disable Le):Call CheckSW1SW2 For SECT=0 To 15 For BLOCK=0 To 3 S$=Chr$(&H01)+Chr$(&H00)+Chr$(SECT*4)+Chr$(&H60)+Chr$(&H00) Call AUT(P1P2=&H0000,S$,Disable Le) If SW1SW2=&H6300 Then Print "Secteur ";SECT;" : clef incorrecte ?";:Goto Jump If SW1SW2=26514 Then Print "Carte absente !":Goto Quit S$="":Call RD(P1P2=SECT*4+BLOCK,S$,Le=16) FOR F=1 TO Len(S$) M=ASC(MID$(S$,F,1)) M$=HEX$(M):IF Len(M$)=1 Then M$="0"+M$ PRINT M$;" "; NEXT F Print Next BLOCK Jump: K$=Inkey$ If K$=Chr$(27) Then Goto Quit If K$<>Chr$(32) Then Goto Jump Print:Next SECT OTHER: IF T$=Chr$(&H00)+Chr$(&H03) Then Print"MIFARE Ultralight reconnu" IF T$=Chr$(&H00)+Chr$(&H02) Then Print"MIFARE 4K reconnu" IF T$=Chr$(&H00)+Chr$(&H26) Then Print"MIFARE Mini reconnu" IF T$=Chr$(&HF0)+Chr$(&H04) Then Print"TOPAZ ou JEWEL reconnu" IF T$=Chr$(&HF0)+Chr$(&H11) Then Print"FELICA 212K reconnu" IF T$=Chr$(&HF0)+Chr$(&H12) Then Print"FELICA 424K reconnu" IF Left$(T$,1)=Chr$(&HFF) Then Print"Tag 13,56 MHz inconnu" Quit: Print:Print:Call WaitForNoCard