RfidResearchGroup / ChameleonMini

The ChameleonMini is a versatile contactless smartcard emulator compliant to NFC. The ChameleonMini was first developed by KAOS. This is NOT the official repo for KAOS's ChameleonMini. For further information see the Getting Started Page
http://chameleontiny.com/help/
Other
404 stars 76 forks source link

NTAG215 Support Possible? #20

Open bmorgenthaler opened 4 years ago

bmorgenthaler commented 4 years ago

I've been trying to get NTAG215 support working on the ChameleonTiny. I found this PR which added NTAG215 support to the original (single button) Chameleon Mini hardware. Merging in the necessary code components and building works however but when I load it onto the ChameleonTiny it becomes unresponsive and I have to DFU recover.

I'm trying to make the ChameleonTiny emulate Amiibo's so I can carry a number of them at once instead a stack of cards or figurines.

FrankWu100 commented 4 years ago

That PR have lots of strange problems. So I have been re-write a new code to support NTAG215 (not fully supported all methods). And the big problem is if you want to do that as Amiibo, it would also need an encrypted function. otherwise just a normal NTAG. So I already give up at this moment.

HexRabbit commented 4 years ago

@FrankWu100 I think there's no need to implement crypto functions, since we won't modify the data in NTAG.

bmorgenthaler commented 4 years ago

@HexRabbit Correct, the encryption is done with the data before loading it. There are a number of examples of using the Proxmark3 to do this and it requires the use of a conversion tool beforehand, once converted the data is loaded onto the Proxmark3 a MiFare Classic hf 14a sim

HexRabbit commented 4 years ago

@bmorgenthaler How did you enter DFU mode after it become unresponsive? Can it still receive command?

bmorgenthaler commented 4 years ago

@HexRabbit No it wouldn't accept any commands, completely unresponsive. I had to hold down RBUTTON while plugging it into USB and then through the bootloader I was able to upload firmware again per the directions. This is on OSX btw.

HexRabbit commented 4 years ago

@bmorgenthaler I've noticed there's a bug in code (ref), but it should works fine without being unresponsive. (I built from @gcammisa master branch)

HexRabbit commented 4 years ago

I put a amiibo dump into it, and it can be recognized correctly by TagMo, but I'm not able to use it in game.

FrankWu100 commented 4 years ago

@bmorgenthaler I've noticed there's a bug in code (ref), but it should works fine without being unresponsive. (I built from @gcammisa master branch)

oh, yes. I also found that typo too.

I put a amiibo dump into it, and it can be recognized correctly by TagMo, but I'm not able to use it in game.

Me too, so that is why I said, the data are not totally the same. The dump binary we put in, maybe just more like raw data, not encrypted type dump. (I guess)

HexRabbit commented 4 years ago

@FrankWu100 Yup, so users need to encrypt the binary first (can be done by pyamiibo), then upload it onto Chameleon.

gcammisa commented 4 years ago

I put a amiibo dump into it, and it can be recognized correctly by TagMo, but I'm not able to use it in game.

Just adding some informations based on the testing I did when I wrote the NTAG215 code: I tested my branch with an Amiibo dump on the Nintendo 3DS and it was working fine (both recognizing the amiibo, making edits and saving it back to the chameleon).

I did NOT test it with the Nintendo Switch.

Right now I can't do any further testing because I don't have a Chameleon (I used a friend's chameleon to write the code and test it).