Hej gott folk.
Jag har också brottats med detta och av alla startade trådar tror jag denna är mest lämplig att fortsätta på.
Med hjälp av en mobiltelefon (av rätt modell) och MFC (Mifare Classic Tool) är det enkelt att klona ett Jojo-kontantkort idag.
Problemet är att kortet kommer bli spärrat ett par dagar efter du återställt saldot.
En lösning är att man skaffar två kort, sätter in lämplig summa, kopiera båda och åker med kort 1 tills det blir spärrat. Eftersom det kan bli spärrat när som helst är det bra att ha kort 2 redo.
Skaffa kort 3, sätt in lämplig summa, kopiera och repetera..
Detta är nog den "säkraste" lösningen så länge man undviker att registrera kortet i sitt namn eller använder annat än kontanter när man sätter in pengar. Skulle man ha oturen att få sitt kort spärrat samtidigt som en kontrollant är ombord blir det också problem, speciellt om återställda kort börjar bli vanligt i området.
Jag har plöjt igenom ett par kort och testat olika scenario, men oavsett vad kommer kortet bli spärrat.
Ett spärrat kort är värdelöst då alla Mifare Classic 1k har ett UID (Unique ID) i block 0 som inte går att skriva över, så kortet är "hett" och bör kastas.
Jag har lurat lite på hur kollen funkar men det kan ta allt mellan ett par dagar och ett par veckor innan kortet blir spärrat så jag har inte kommit fram till något banbrytande.
Med ett CMC (Chinese Magic Card) öppnas möjligheterna upp avsevärt, men även riskerna.
https://cdn.shopify.com/s/files/1/08...g?v=1481338221
Att klona och använda 2 kontantkort är meningslöst, månadskort däremot är mer intressanta.
Så länge kortet inte masskopieras eller att systemet börjar logga "omöjliga resor" kan nog 2-3 personer dela på ett kort.
Risken är att alla kort spärras samtidigt eller att man blir kollad av en kontrollant som inte nöjer sig med att skanna din plånbok och vill titta på kortet.
MFC är ett väldigt bra verktyg, du får fram all information du behöver.
https://lh6.ggpht.com/AbarcNGmkl6utJ...IU7FXgcMw=h900
UID/tillverkarinfo, ValueBlock, Key A/B och ACs (access conditions) så alla tutorials hur man får fram sånt är utdaterade.
Jag undersöker två olika lösningar men inlärningskurvan har blivit en inlärningsvägg..
1. Manipulera saldot/period på ett vanligt Jojo-kort.
ValueBlock finns inte, så all information om saldo, senaste resa och periodladdning ligger i den vita texten.
Appen ResSaldo kan läsa all nödvändig information på de vanligaste busskorten i Sverige, så den bör ju veta vart informationen ligger.
Jag har tittat på innehållet i ResSaldo med Android Studio men skulle behöva en stor burk Elvanse för att palla sätta mig in i funktioner och uppbyggnader av appar..
2. Generera nya, vitlistade UIDs.
Som jag förstår det finns det fler kort än tillgängliga UID, så alla ID är giltiga fram tills ett blir svartlistat, t.ex. av Skånetrafiken, men samma UID används samtidigt på City Metro i Chile. Jag kan ha tvärfel här, så rätta mig om du vet hur det fungerar.
Här finns det ett flertal djupa kaninhål med information om kryptering, sector trailers, BCC, Access Conditions osv.
Min telefon har ett NFC-chip, så MFC funkar att kopiera/skriva på vanliga Jojo-kort, det finns en inställning så appen även skriver på block 0, men det blir alltid skrivfel med de CMC jag har.
Jag köpte en PM3 (Proxmark3) och har försökt sätta mig in ordentligt i Linux en gång för alla, men faaaan vad trögt det går för mig och kommandorader. Sist jag gjorde någon form av liknande programmering var på en Sinclair 48k Spectrum.
Söker man lite på GitHub verkar det som att alla verktyg redan finns och har funnits i ett par år.
Det finns mjukvara för Windows (Kinesen jag köpte min PM3 av skickade en samling kul program, varav de flesta var på Kinesiska) men det är ett helvete att få helt fungerande drivrutiner.
Såå.. Jag har tillgång till en massa information men skulle behöva lite hjälp att processa delar.