Merge remote-tracking branch 'upstream/master' into feat/hf-gallagher-remove-aid-limits

This commit is contained in:
Matt Moran 2022-01-15 12:11:12 +13:00
commit a6280e2978
426 changed files with 6633 additions and 4196 deletions

View file

@ -27,15 +27,15 @@ assignees: doegox, iceman1001
#!/usr/bin/env bash #!/usr/bin/env bash
make clean && make -j PLATFORM=PM3GENERIC PLATFORM_EXTRAS= && tools/pm3_tests.sh --long || exit 1 make clean && make -j PLATFORM=PM3GENERIC PLATFORM_EXTRAS= && tools/pm3_tests.sh --long || exit 1
make clean && make -j PLATFORM=PM3RDV4 PLATFORM_EXTRAS= && tools/pm3_tests.sh --long || exit 1 make clean && make -j PLATFORM=PM3RDV4 PLATFORM_EXTRAS= || exit 1
make clean && make -j PLATFORM=PM3RDV4 PLATFORM_EXTRAS=BTADDON && tools/pm3_tests.sh --long || exit 1 make clean && make -j PLATFORM=PM3RDV4 PLATFORM_EXTRAS=BTADDON || exit 1
make -j PLATFORM=PM3RDV4 PLATFORM_EXTRAS=BTADDON && sudo make install PLATFORM=PM3RDV4 PLATFORM_EXTRAS=BTADDON && ( cd /tmp; proxmark3 -c 'data load -f lf_EM4x05.pm3;lf search -1'|grep 'Valid FDX-B ID found' ) && sudo make uninstall || exit 1 make -j PLATFORM=PM3RDV4 PLATFORM_EXTRAS=BTADDON && sudo make install PLATFORM=PM3RDV4 PLATFORM_EXTRAS=BTADDON && ( cd /tmp; proxmark3 -c 'data load -f lf_EM4x05.pm3;lf search -1'|grep 'Valid FDX-B ID found' ) && sudo make uninstall || exit 1
( cd client; rm -rf build; mkdir build;cd build;cmake .. && make -j PLATFORM=PM3GENERIC PLATFORM_EXTRAS= && cp -a ../*scripts ../*libs . && ../../tools/pm3_tests.sh --clientbin $(pwd)/proxmark3 client ) || exit 1 ( cd client; rm -rf build; mkdir build;cd build;cmake .. && make -j PLATFORM=PM3GENERIC PLATFORM_EXTRAS= && cp -a ../*scripts ../*libs . && ../../tools/pm3_tests.sh --clientbin $(pwd)/proxmark3 client ) || exit 1
( cd client; rm -rf build; mkdir build;cd build;cmake .. && make -j PLATFORM=PM3RDV4 PLATFORM_EXTRAS= && cp -a ../*scripts ../*libs . && ../../tools/pm3_tests.sh --clientbin $(pwd)/proxmark3 client ) || exit 1 ( cd client; rm -rf build; mkdir build;cd build;cmake .. && make -j PLATFORM=PM3RDV4 PLATFORM_EXTRAS= ) || exit 1
( cd client; rm -rf build; mkdir build;cd build;cmake .. && make -j PLATFORM=PM3RDV4 PLATFORM_EXTRAS=BTADDON && cp -a ../*scripts ../*libs . && ../../tools/pm3_tests.sh --clientbin $(pwd)/proxmark3 client ) || exit 1 ( cd client; rm -rf build; mkdir build;cd build;cmake .. && make -j PLATFORM=PM3RDV4 PLATFORM_EXTRAS=BTADDON ) || exit 1
# Hitag2crack, optionally with --long and --gpu ... # Hitag2crack, optionally with --long and --opencl ...
make hitag2crack/clean && make hitag2crack && tools/pm3_tests.sh hitag2crack || exit 1 make hitag2crack/clean && make hitag2crack && tools/pm3_tests.sh hitag2crack || exit 1
``` ```

View file

@ -1,40 +1,58 @@
# https://git-scm.com/docs/gitmailmap # https://git-scm.com/docs/gitmailmap
# Reunificating commits done under various names and emails variants # Reunificating commits done under various names and emails variants
# Feel free to edit if you need to reunify your commits or change your display name # Feel free to edit if you need to reunify your commits or change your display name
iceman1001 <iceman@iuse.se>
iceman1001 <iceman@iuse.se> <herrmann1001@gmail.com> iceman1001 <iceman@iuse.se> <herrmann1001@gmail.com>
iceman1001 <iceman@iuse.se> <iceman1001@iuse.se> iceman1001 <iceman@iuse.se> <iceman1001@iuse.se>
iceman1001 <iceman@iuse.se> <40314039+RfidResearchGroup@users.noreply.github.com> iceman1001 <iceman@iuse.se> <40314039+RfidResearchGroup@users.noreply.github.com>
iceman1001 <iceman@iuse.se> <chris@rfidresearch.com> iceman1001 <iceman@iuse.se> <chris@rfidresearch.com>
Philippe Teuwen <phil@teuwen.org>
Philippe Teuwen <phil@teuwen.org> <phil-github@teuwen.org> Philippe Teuwen <phil@teuwen.org> <phil-github@teuwen.org>
Philippe Teuwen <phil@teuwen.org> <yobibe@ef4ab9da-24cd-11de-8aaa-f3a34680c41f> Philippe Teuwen <phil@teuwen.org> <yobibe@ef4ab9da-24cd-11de-8aaa-f3a34680c41f>
Oleg Moiseenko <olegmsn@gmail.com>
Oleg Moiseenko <olegmsn@gmail.com> <807634+merlokk@users.noreply.github.com> Oleg Moiseenko <olegmsn@gmail.com> <807634+merlokk@users.noreply.github.com>
Oleg Moiseenko <olegmsn@gmail.com> <Merlokbr@gmail.com> Oleg Moiseenko <olegmsn@gmail.com> <Merlokbr@gmail.com>
Oleg Moiseenko <olegmsn@gmail.com> <Merlokbr@gmail.com@ef4ab9da-24cd-11de-8aaa-f3a34680c41f> Oleg Moiseenko <olegmsn@gmail.com> <Merlokbr@gmail.com@ef4ab9da-24cd-11de-8aaa-f3a34680c41f>
tharexde <joerg.classen@bowsky.de>
tharexde <joerg.classen@bowsky.de> <61853685+tharexde@users.noreply.github.com> tharexde <joerg.classen@bowsky.de> <61853685+tharexde@users.noreply.github.com>
marshmellow42 <marshmellowrf@gmail.com>
marshmellow42 <marshmellowrf@gmail.com> <marshmellow42@users.noreply.github.com> marshmellow42 <marshmellowrf@gmail.com> <marshmellow42@users.noreply.github.com>
Martin Holst Swende <martin@swende.se>
Martin Holst Swende <martin@swende.se> <martin.holst@gmail.com@ef4ab9da-24cd-11de-8aaa-f3a34680c41f> Martin Holst Swende <martin@swende.se> <martin.holst@gmail.com@ef4ab9da-24cd-11de-8aaa-f3a34680c41f>
Martin Holst Swende <martin@swende.se> <martin.holst@gmail.com> Martin Holst Swende <martin@swende.se> <martin.holst@gmail.com>
Ave Ozkal <ave@ave.zone> Ave Ozkal <ave@ave.zone>
mwalker33 <mwal5099@bigpond.net.au>
mwalker33 <mwal5099@bigpond.net.au> <51802811+mwalker33@users.noreply.github.com> mwalker33 <mwal5099@bigpond.net.au> <51802811+mwalker33@users.noreply.github.com>
tcprst <nick.draffen@gmail.com>
tcprst <nick.draffen@gmail.com> <nd@Nicks-MacBook-Pro.local> tcprst <nick.draffen@gmail.com> <nd@Nicks-MacBook-Pro.local>
Bjoern Kerler <info@revskills.de>
Bjoern Kerler <info@revskills.de> <6317772+bkerler@users.noreply.github.com> Bjoern Kerler <info@revskills.de> <6317772+bkerler@users.noreply.github.com>
Roel Verdult <roel@libnfc.org>
Roel Verdult <roel@libnfc.org> <roel@libnfc.org@ef4ab9da-24cd-11de-8aaa-f3a34680c41f> Roel Verdult <roel@libnfc.org> <roel@libnfc.org@ef4ab9da-24cd-11de-8aaa-f3a34680c41f>
Brian Pow <brianpow@gmail.com> Brian Pow <brianpow@gmail.com>
Adam Laurie <adam@algroup.co.uk>
Adam Laurie <adam@algroup.co.uk> <adam@algroup.co.uk@ef4ab9da-24cd-11de-8aaa-f3a34680c41f> Adam Laurie <adam@algroup.co.uk> <adam@algroup.co.uk@ef4ab9da-24cd-11de-8aaa-f3a34680c41f>
Gator96100 <jupuerzi@gmx.at> Gator96100 <jupuerzi@gmx.at>
Henryk Plötz <henryk@ploetzli.ch>
Henryk Plötz <henryk@ploetzli.ch> <henryk@ploetzli.ch@ef4ab9da-24cd-11de-8aaa-f3a34680c41f> Henryk Plötz <henryk@ploetzli.ch> <henryk@ploetzli.ch@ef4ab9da-24cd-11de-8aaa-f3a34680c41f>
pwpiwi <pwpiwi@users.noreply.github.com> pwpiwi <pwpiwi@users.noreply.github.com>
pwpiwi <pwpiwi@users.noreply.github.com> <micki.held@gmx.de>
pwpiwi <pwpiwi@users.noreply.github.com> <micki.held@gmx.de@ef4ab9da-24cd-11de-8aaa-f3a34680c41f>
d18c7db <d18c7db@ef4ab9da-24cd-11de-8aaa-f3a34680c41f> d18c7db <d18c7db@ef4ab9da-24cd-11de-8aaa-f3a34680c41f>
Thomas Sutter <suth@zhaw.ch> Thomas Sutter <suth@zhaw.ch>
Marlin Sööse <30473690+msoose@users.noreply.github.com> Marlin Sööse <30473690+msoose@users.noreply.github.com>
Vincent Ratiskol <vincent.ratiskol@github.com>
Vincent Ratiskol <vincent.ratiskol@github.com> <vincent.ratiskol@gmail.com> Vincent Ratiskol <vincent.ratiskol@github.com> <vincent.ratiskol@gmail.com>
vratiskol <vincent.ratiskol@github.com> <vratiskol@users.noreply.github.com> Vincent Ratiskol <vincent.ratiskol@github.com> <vratiskol@users.noreply.github.com>
dn337t <dn337t@gmail.com>
dn337t <dn337t@gmail.com> <dn337t@gmail.com@ef4ab9da-24cd-11de-8aaa-f3a34680c41f> dn337t <dn337t@gmail.com> <dn337t@gmail.com@ef4ab9da-24cd-11de-8aaa-f3a34680c41f>
Hector Martin <marcansoft@ef4ab9da-24cd-11de-8aaa-f3a34680c41f> Hector Martin <marcansoft@ef4ab9da-24cd-11de-8aaa-f3a34680c41f>
bushing <bushing@ef4ab9da-24cd-11de-8aaa-f3a34680c41f> bushing <bushing@ef4ab9da-24cd-11de-8aaa-f3a34680c41f>
Matt Moran <mattmoran2000@gmail.com> Matt Moran <mattmoran2000@gmail.com>
Matthias Konrath <office@inet-sec.at> Matthias Konrath <office@inet-sec.at>
Slurdge <slurdge@slurdge.org>
Slurdge <slurdge@slurdge.org> <slurdge@users.noreply.github.com> Slurdge <slurdge@slurdge.org> <slurdge@users.noreply.github.com>
iZsh <izsh@fail0verflow.com>
iZsh <izsh@fail0verflow.com> <izsh@fail0verflow.com@ef4ab9da-24cd-11de-8aaa-f3a34680c41f> iZsh <izsh@fail0verflow.com> <izsh@fail0verflow.com@ef4ab9da-24cd-11de-8aaa-f3a34680c41f>
iZsh <izsh@fail0verflow.com> <izsh.f0f@ef4ab9da-24cd-11de-8aaa-f3a34680c41f> iZsh <izsh@fail0verflow.com> <izsh.f0f@ef4ab9da-24cd-11de-8aaa-f3a34680c41f>
Christian Molson <christian@cmolabs.org> Christian Molson <christian@cmolabs.org>
@ -46,20 +64,28 @@ Ikarus <ikarus4ever@web.de>
Salvador Mendoza <salvador_m_g@msn.com> Salvador Mendoza <salvador_m_g@msn.com>
Bogiton <34060135+bogiton@users.noreply.github.com> Bogiton <34060135+bogiton@users.noreply.github.com>
İlteriş Eroğlu <ilteris@asenkron.com.tr> İlteriş Eroğlu <ilteris@asenkron.com.tr>
Samy Kamkar <git@samy.pl>
Samy Kamkar <git@samy.pl> <skamkar@ef4ab9da-24cd-11de-8aaa-f3a34680c41f> Samy Kamkar <git@samy.pl> <skamkar@ef4ab9da-24cd-11de-8aaa-f3a34680c41f>
Blaine Forbort <b.forbort@gmail.com> Blaine Forbort <b.forbort@gmail.com>
Daniel Underhay <27876907+dunderhay@users.noreply.github.com> Daniel Underhay <27876907+dunderhay@users.noreply.github.com>
Victor <virb3e@gmail.com> Victor <virb3e@gmail.com>
Édouard Lafargue <edouard@lafargue.name>
Édouard Lafargue <edouard@lafargue.name> <edouard@lafargue.name@ef4ab9da-24cd-11de-8aaa-f3a34680c41f> Édouard Lafargue <edouard@lafargue.name> <edouard@lafargue.name@ef4ab9da-24cd-11de-8aaa-f3a34680c41f>
Anže Jenšterle <anze@anze.xyz>
Anže Jenšterle <anze@anze.xyz> <anze@anze.dev> Anže Jenšterle <anze@anze.xyz> <anze@anze.dev>
DXL <64101226@qq.com> DXL <64101226@qq.com>
Colin J. Brigato <colin@brigato.fr> Colin J. Brigato <colin@brigato.fr>
cyberpunk-re <tiagor2010@gmail.com> cyberpunk-re <tiagor2010@gmail.com>
Akif Dinc <akif@dinc.org> Akif Dinc <akif@dinc.org>
Ryan Saridar <8403417+VortixDev@users.noreply.github.com> Ryan Saridar <8403417+VortixDev@users.noreply.github.com>
Gabriele Gristina <gabriele.gristina@gmail.com>
Gabriele Gristina <gabriele.gristina@gmail.com> <matrix@users.noreply.github.com> Gabriele Gristina <gabriele.gristina@gmail.com> <matrix@users.noreply.github.com>
Gerhard de Koning Gans <dekoninggans@gmail.com>
Gerhard de Koning Gans <dekoninggans@gmail.com> <dekoninggans@gmail.com@ef4ab9da-24cd-11de-8aaa-f3a34680c41f> Gerhard de Koning Gans <dekoninggans@gmail.com> <dekoninggans@gmail.com@ef4ab9da-24cd-11de-8aaa-f3a34680c41f>
Sébastien Dudek <sebastien.dudek@penthertz.com>
Sébastien Dudek <sebastien.dudek@penthertz.com> <fluxius@gmail.com> Sébastien Dudek <sebastien.dudek@penthertz.com> <fluxius@gmail.com>
Sébastien Dudek <sebastien.dudek@penthertz.com> <sebastien_dudek@trendmicro.com> Sébastien Dudek <sebastien.dudek@penthertz.com> <sebastien_dudek@trendmicro.com>
Nahuel Grisolia <nahuel@cintainfinita.com.ar>
Nahuel Grisolia <nahuel@cintainfinita.com.ar> <nahuelgrisolia@gmail.com> Nahuel Grisolia <nahuel@cintainfinita.com.ar> <nahuelgrisolia@gmail.com>
Winds <lalamy@yandex.ru>
Winds <lalamy@yandex.ru> <60715874+Windslab@users.noreply.github.com> Winds <lalamy@yandex.ru> <60715874+Windslab@users.noreply.github.com>

View file

@ -13,5 +13,10 @@ Therefore, only the following copyright notices are left untouched in the corres
- copyright notices present in the `20090306_ela` release - copyright notices present in the `20090306_ela` release
- copyright notices of code borrowed from other projects - copyright notices of code borrowed from other projects
- copyright notices of standalone modes initial authors - copyright notices of standalone modes initial authors
- copyright notices of dependencies (client/deps, common)
Since then, copyright of each contribution is tracked by the Git history. See the output of `git shortlog -nse` for a full list. See also [the Contributors page on Github](https://github.com/RfidResearchGroup/proxmark3/graphs/contributors). Since then, copyright of each contribution is tracked by the Git history. See the output of `git shortlog -nse` for a full list or `git log --pretty=short --follow <path/to/sourcefile> |git shortlog -ne` to track a specific file. See also [the Contributors page on Github](https://github.com/RfidResearchGroup/proxmark3/graphs/contributors) and [this Gource animation](https://www.youtube.com/watch?v=N7vpk0iIq9s) retracing the commits history from March 2009 until January 2022.
A [mailmap](.mailmap) is maintained to map author and committer names and email addresses to canonical names and email addresses.
If by accident a copyright was removed from a file and is *not* directly deducible from the Git history, please submit a PR.

View file

@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file.
This project uses the changelog in accordance with [keepchangelog](http://keepachangelog.com/). Please use this to write notable changes, which is not the same as git commit log... This project uses the changelog in accordance with [keepchangelog](http://keepachangelog.com/). Please use this to write notable changes, which is not the same as git commit log...
## [unreleased][unreleased] ## [unreleased][unreleased]
## [Frostbit.4.14831] [2022-01-11]
- Changed Wiegand format lookup - now case-insensitive (@iceman1001)
- Added new standalone mode `hf_15SNIFF` - Same as `hf_14ASNIFF` standalone mode for RDV4 - flashmem (@startrk1995)
- Added support for MIFARE DESFire application creation without authentication (@joswr1ght) - Added support for MIFARE DESFire application creation without authentication (@joswr1ght)
- Changed drastically Hitag S ARM code to remove state machines and ease way to build new commands (@doegox) - Changed drastically Hitag S ARM code to remove state machines and ease way to build new commands (@doegox)
- Fixed Hitag S crypto mode with key or NrAr, fixed `lf hitag cc`, fixed pwd dump in hitagS dump with LKP (@doegox) - Fixed Hitag S crypto mode with key or NrAr, fixed `lf hitag cc`, fixed pwd dump in hitagS dump with LKP (@doegox)

View file

@ -1,3 +1,18 @@
#-----------------------------------------------------------------------------
# Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# See LICENSE.txt for the text of the license.
#-----------------------------------------------------------------------------
-include Makefile.platform -include Makefile.platform
-include .Makefile.options.cache -include .Makefile.options.cache
@ -272,7 +287,7 @@ style:
[ -x client/proxmark3 ] && client/proxmark3 --fulltext | sed 's#com[0-9]#/dev/ttyacm0#'|python3 client/pyscripts/pm3_help2json.py - doc/commands.json [ -x client/proxmark3 ] && client/proxmark3 --fulltext | sed 's#com[0-9]#/dev/ttyacm0#'|python3 client/pyscripts/pm3_help2json.py - doc/commands.json
# Update the readline autocomplete autogenerated code # Update the readline autocomplete autogenerated code
[ -x client/proxmark3 ] && client/proxmark3 --fulltext | python3 client/pyscripts/pm3_help2list.py - client/src/rl_vocabulory.h [ -x client/proxmark3 ] && client/proxmark3 --fulltext | python3 client/pyscripts/pm3_help2list.py - client/src/pm3line_vocabulory.h
# Detecting weird codepages and tabs. # Detecting weird codepages and tabs.

View file

@ -1,4 +1,18 @@
# Hide full compilation line: #-----------------------------------------------------------------------------
# Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# See LICENSE.txt for the text of the license.
#-----------------------------------------------------------------------------
ifneq ($(V),1) ifneq ($(V),1)
Q?=@ Q?=@
endif endif

View file

@ -1,3 +1,18 @@
#-----------------------------------------------------------------------------
# Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# See LICENSE.txt for the text of the license.
#-----------------------------------------------------------------------------
# This Makefile might have been called from various subdirs, trying to find our Makefile.defs # This Makefile might have been called from various subdirs, trying to find our Makefile.defs
ifeq ($(DEFSBEENHERE),) ifeq ($(DEFSBEENHERE),)
-include Makefile.defs -include Makefile.defs

View file

@ -1,4 +1,6 @@
# RRG / Iceman - Proxmark3 # Iceman - Proxmark3 a RFID / NFC project.
The Proxmark3 is the swiss-army tool of RFID, allowing for interactions with the vast majority of RFID tags on a global scale. Originally built by Jonathan Westhues, the device is now the goto tool for RFID Analysis for the enthusiast. Iceman repository is considered to be the pinnacle of features and functionality, enabling a huge range of extremely useful and convenient commands and LUA scripts to automate chip identification, penetration testing, and programming
| Latest Release | Coverity | Contributors | | Latest Release | Coverity | Contributors |
@ -79,9 +81,11 @@ We define generic Proxmark3 platforms as following devices.
- **Note**: unknown pin assignments. - **Note**: unknown pin assignments.
- ⚠ Ryscorp Proxmark3 Pro - ⚠ Ryscorp Proxmark3 Pro
- **Note**: device has different fpga and unknown pin assignments. - **Note**: device has different fpga and unknown pin assignments.
- **Note**: Company have dissappared, leaving their customers in the dark.
- ⚠ iCopy-X - ⚠ iCopy-X
- **Note**: experimental support, currently incompatible with iCopy-X GUI as Proxmark client commands are now using cliparser. - **Note**: experimental support, currently incompatible with iCopy-X GUI as Proxmark client commands are now using cliparser.
- **Note**: see also [icopyx-community repos](https://github.com/iCopy-X-Community/) for upstream sources, reversed hw etc. - **Note**: see also [icopyx-community repos](https://github.com/iCopy-X-Community/) for upstream sources, reversed hw etc.
- **Note**: Uses DRM to lock down tags, ignores the open source licences. Use on your own risk.
**Unknown support status** **Unknown support status**
- ⚠ VX - ⚠ VX
@ -114,6 +118,7 @@ Proxmark3 RDV4 hardware modifications:
This repo vs official Proxmark3 repo: This repo vs official Proxmark3 repo:
see the [Changelog file](CHANGELOG.md) which we try to keep updated. In short this repo gives you a completely different user experience when it comes to Proxmark3. see the [Changelog file](CHANGELOG.md) which we try to keep updated. In short this repo gives you a completely different user experience when it comes to Proxmark3.
* Supports command tab complete
* richer CLI with use of colors / emojis * richer CLI with use of colors / emojis
* help text system implemented everywhere * help text system implemented everywhere
* hints system * hints system
@ -179,14 +184,13 @@ See [Proxmark3 precompiled builds](https://www.proxmarkbuilds.org/)
The official PM3-GUI from Gaucho will not work. Not to mention is quite old and not maintained any longer. The official PM3-GUI from Gaucho will not work. Not to mention is quite old and not maintained any longer.
- [Proxmark3 Universal GUI](https://github.com/burma69/PM3UniversalGUI) will work more or less. - [Proxmark3 Universal GUI](https://github.com/burma69/PM3UniversalGUI) will work more or less.
- [Proxmark3 GUI cross-compiled](https://github.com/wh201906/Proxmark3GUI/) which is recently updated and claims to support latest source of this repo. - [Proxmark3 GUI cross-compiled](https://github.com/wh201906/Proxmark3GUI/) which is recently updated and claims to support latest source of this repo.
- [Proxmark3_GUI](https://github.com/Phreak87/Proxmark3_GUI) simple gui in vb.net - [Proxmark3_GUI](https://github.com/Phreak87/Proxmark3_GUI) simple gui in vb.net
## Official channels ## Official channels
Where do you find the community? Where do you find the community?
- [RFID Hacking community discord server](https://discord.gg/QfPvGFRQxH) - [RFID Hacking community discord server](https://discord.gg/iceman)
- [Proxmark3 IRC channel](https://web.libera.chat/?channels=#proxmark3) - [Proxmark3 IRC channel](https://web.libera.chat/?channels=#proxmark3)
- [Proxmark3 sub reddit](https://www.reddit.com/r/proxmark3/) - [Proxmark3 sub reddit](https://www.reddit.com/r/proxmark3/)
- [Proxmark3 forum](http://www.proxmark.org/forum/index.php) - [Proxmark3 forum](http://www.proxmark.org/forum/index.php)
@ -205,9 +209,9 @@ This document will be helpful for you
## Citation ## Citation
Use this bibtex to cite this repository globally: Use this bibtex to cite this repository globally:
``` ```
@misc{proxmark3rrg, @misc{proxmark3,
author = {C. {Herrmann} and P. {Teuwen} and O. {Moiseenko} and M. {Walker} and others}, author = {C. {Herrmann} and P. {Teuwen} and O. {Moiseenko} and M. {Walker} and others},
title = {{Proxmark3 -- RRG / Iceman repo}}, title = {{Proxmark3 -- Iceman repo}},
howpublished = {\url{https://github.com/RfidResearchGroup/proxmark3}}, howpublished = {\url{https://github.com/RfidResearchGroup/proxmark3}},
keywords = {rfid nfc iceman proxmark3 125khz 134khz 13.56mhz}, keywords = {rfid nfc iceman proxmark3 125khz 134khz 13.56mhz},
} }

View file

@ -155,7 +155,6 @@ THUMBSRC = start.c \
# These are to be compiled in ARM mode # These are to be compiled in ARM mode
ARMSRC = fpgaloader.c \ ARMSRC = fpgaloader.c \
parity.c \
usb_cdc.c \ usb_cdc.c \
cmd.c cmd.c

View file

@ -62,6 +62,9 @@ define KNOWN_STANDALONE_DEFINITIONS
| HF_14ASNIFF | 14a sniff to flashmem | | HF_14ASNIFF | 14a sniff to flashmem |
| (RDV4 only) | | | (RDV4 only) | |
+----------------------------------------------------------+ +----------------------------------------------------------+
| HF_15SNIFF | 15693 sniff to flashmem |
| (RDV4 only) | |
+----------------------------------------------------------+
| HF_AVEFUL | Mifare ultralight read/simulation | | HF_AVEFUL | Mifare ultralight read/simulation |
| | - Ave Ozkal | | | - Ave Ozkal |
+----------------------------------------------------------+ +----------------------------------------------------------+
@ -107,10 +110,10 @@ define KNOWN_STANDALONE_DEFINITIONS
endef endef
STANDALONE_MODES := LF_SKELETON LF_EM4100EMUL LF_EM4100RSWB LF_EM4100RWC LF_HIDBRUTE LF_HIDFCBRUTE LF_ICEHID LF_PROXBRUTE LF_SAMYRUN LF_THAREXDE LF_NEXID STANDALONE_MODES := LF_SKELETON LF_EM4100EMUL LF_EM4100RSWB LF_EM4100RWC LF_HIDBRUTE LF_HIDFCBRUTE LF_ICEHID LF_PROXBRUTE LF_SAMYRUN LF_THAREXDE LF_NEXID
STANDALONE_MODES += HF_14ASNIFF HF_AVEFUL HF_BOG HF_COLIN HF_CRAFTBYTE HF_ICECLASS HF_LEGIC HF_MATTYRUN HF_MFCSIM HF_MSDSAL HF_TCPRST HF_TMUDFORD HF_YOUNG HF_REBLAY DANKARMULTI STANDALONE_MODES += HF_14ASNIFF HF_15SNIFF HF_AVEFUL HF_BOG HF_COLIN HF_CRAFTBYTE HF_ICECLASS HF_LEGIC HF_MATTYRUN HF_MFCSIM HF_MSDSAL HF_TCPRST HF_TMUDFORD HF_YOUNG HF_REBLAY DANKARMULTI
STANDALONE_MODES_REQ_BT := HF_REBLAY STANDALONE_MODES_REQ_BT := HF_REBLAY
STANDALONE_MODES_REQ_SMARTCARD := STANDALONE_MODES_REQ_SMARTCARD :=
STANDALONE_MODES_REQ_FLASH := LF_HIDFCBRUTE LF_ICEHID LF_NEXID LF_THAREXDE HF_14ASNIFF HF_BOG HF_COLIN HF_ICECLASS HF_MFCSIM STANDALONE_MODES_REQ_FLASH := LF_HIDFCBRUTE LF_ICEHID LF_NEXID LF_THAREXDE HF_14ASNIFF HF_15SNIFF HF_BOG HF_COLIN HF_ICECLASS HF_MFCSIM
ifneq ($(filter $(STANDALONE),$(STANDALONE_MODES)),) ifneq ($(filter $(STANDALONE),$(STANDALONE_MODES)),)
STANDALONE_PLATFORM_DEFS += -DWITH_STANDALONE_$(STANDALONE) STANDALONE_PLATFORM_DEFS += -DWITH_STANDALONE_$(STANDALONE)
ifneq ($(filter $(STANDALONE),$(STANDALONE_MODES_REQ_SMARTCARD)),) ifneq ($(filter $(STANDALONE),$(STANDALONE_MODES_REQ_SMARTCARD)),)

View file

@ -57,6 +57,10 @@ endif
ifneq (,$(findstring WITH_STANDALONE_HF_14ASNIFF,$(APP_CFLAGS))) ifneq (,$(findstring WITH_STANDALONE_HF_14ASNIFF,$(APP_CFLAGS)))
SRC_STANDALONE = hf_14asniff.c SRC_STANDALONE = hf_14asniff.c
endif endif
# WITH_STANDALONE_HF_15SNIFF
ifneq (,$(findstring WITH_STANDALONE_HF_15SNIFF,$(APP_CFLAGS)))
SRC_STANDALONE = hf_15sniff.c
endif
# WITH_STANDALONE_HF_AVEFUL # WITH_STANDALONE_HF_AVEFUL
ifneq (,$(findstring WITH_STANDALONE_HF_AVEFUL,$(APP_CFLAGS))) ifneq (,$(findstring WITH_STANDALONE_HF_AVEFUL,$(APP_CFLAGS)))
SRC_STANDALONE = hf_aveful.c SRC_STANDALONE = hf_aveful.c

View file

@ -47,7 +47,7 @@ typedef struct mode_t {
#define START_MODE_LIST mode_t *mode_list[] = { #define START_MODE_LIST mode_t *mode_list[] = {
#define ADD_MODE(name) &MODE_INTERNAL_NAME(name), #define ADD_MODE(name) &MODE_INTERNAL_NAME(name),
#define END_MODE_LIST }; static const int NUM_MODES = sizeof(mode_list) / sizeof(mode_t*); #define END_MODE_LIST }; static const int NUM_MODES = ARRAYLEN(mode_list);
#else #else

View file

@ -0,0 +1,137 @@
//-----------------------------------------------------------------------------
// Copyright (C) Nathan Glaser, 2021
// Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//-----------------------------------------------------------------------------
// main code for standalone HF/iso15693 Sniff to flash
//-----------------------------------------------------------------------------
/*
* This is 95% the same code as Michael Farrell's hf_14ASNIFF Standalone mode.
*
* `hf_15693sniff` passively sniffs ISO15693 frames, and stores them in internal
* flash. It requires RDV4 hardware (for flash and battery).
*
* On entering stand-alone mode, this module will start sniffing ISO15693 frames.
* This will be stored in the normal trace buffer (ie: in RAM -- will be lost
* at power-off).
*
* Short-pressing the button again will stop sniffing, and at _this_ point
* append trace data from RAM to a file in flash (hf_15693sniff.trace) and unmount.
*
* Once the data is saved, standalone mode will exit.
*
* LEDs:
* - LED1: sniffing
* - LED2: sniffed tag command, turns off when finished sniffing reader command
* - LED3: sniffed reader command, turns off when finished sniffing tag command
* - LED4: unmounting/sync'ing flash (normally < 100ms)
*
* To retrieve trace data from flash:
*
* 1. mem spiffs dump -s hf_15693sniff.trace -d hf_15693sniff.trace
* Copies trace data file from flash to your PC.
*
* 2. trace load hf_15693sniff.trace
* Loads trace data from a file into PC-side buffers.
*
* 3. For ISO15693: trace list -t 15 -1
*
* Lists trace data from buffer without requesting it from PM3.
*
* This module emits debug strings during normal operation -- so try it out in
* the lab connected to PM3 client before taking it into the field.
*
* To delete the trace data from flash:
*
* Caveats / notes:
* - Trace buffer will be cleared on starting stand-alone mode. Data in flash
* will remain unless explicitly deleted.
* - This module will terminate if the trace buffer is full (and save data to
* flash).
* - Like normal sniffing mode, timestamps overflow after 5 min 16 sec.
* However, the trace buffer is sequential, so will be in the correct order.
*/
#include "standalone.h" // standalone definitions
#include "proxmark3_arm.h"
#include "fpgaloader.h"
#include "iso15693.h"
#include "iso15.h"
#include "util.h"
#include "spiffs.h"
#include "appmain.h"
#include "dbprint.h"
#include "ticks.h"
#include "BigBuf.h"
#define HF_15693SNIFF_LOGFILE "hf_15693sniff.trace"
static void DownloadTraceInstructions(void) {
Dbprintf("");
Dbprintf("To get the trace from flash and display it:");
Dbprintf("1. mem spiffs dump -s "HF_15693SNIFF_LOGFILE" -d hf_15693sniff.trace");
Dbprintf("2. trace load -f hf_15693sniff.trace");
Dbprintf("3. trace list -t 15 -1");
}
void ModInfo(void) {
DbpString(" HF 15693 SNIFF, a ISO15693 sniffer with storing in flashmem (Nathan Glaser)");
// DownloadTraceInstructions();
}
void RunMod(void) {
StandAloneMode();
Dbprintf(_YELLOW_("HF 15693 SNIFF started"));
rdv40_spiffs_lazy_mount();
SniffIso15693(0, NULL);
Dbprintf("Stopped sniffing");
SpinDelay(200);
// Write stuff to spiffs logfile
uint32_t trace_len = BigBuf_get_traceLen();
if (trace_len > 0) {
Dbprintf("[!] Trace length (bytes) = %u", trace_len);
uint8_t *trace_buffer = BigBuf_get_addr();
if (!exists_in_spiffs(HF_15693SNIFF_LOGFILE)) {
rdv40_spiffs_write(
HF_15693SNIFF_LOGFILE, trace_buffer, trace_len, RDV40_SPIFFS_SAFETY_SAFE);
Dbprintf("[!] Wrote trace to "HF_15693SNIFF_LOGFILE);
} else {
rdv40_spiffs_append(
HF_15693SNIFF_LOGFILE, trace_buffer, trace_len, RDV40_SPIFFS_SAFETY_SAFE);
Dbprintf("[!] Appended trace to "HF_15693SNIFF_LOGFILE);
}
} else {
Dbprintf("[!] Trace buffer is empty, nothing to write!");
}
LED_D_ON();
rdv40_spiffs_lazy_unmount();
LED_D_OFF();
SpinErr(LED_A, 200, 5);
SpinDelay(100);
Dbprintf("-=[ exit ]=-");
LEDsoff();
DownloadTraceInstructions();
}

View file

@ -173,8 +173,11 @@ Make sure it says your standalone mode name.
Once you're ready to share your mode, please Once you're ready to share your mode, please
* add a line in CHANGELOG.md * add a line in CHANGELOG.md
* add your mode in the modes table in doc/md/Use_of_Proxmark/4_Advanced-compilation-parameters.md * add your mode in the modes table in `doc/md/Use_of_Proxmark/4_Advanced-compilation-parameters.md`
* add your mode in `tools/build_all_firmwares.sh`
and submit your PR. and submit your PR.
Once approved, add also your mode in https://github.com/RfidResearchGroup/proxmark3/wiki/Standalone-mode
Happy hacking! Happy hacking!

View file

@ -1,3 +1,18 @@
#-----------------------------------------------------------------------------
# Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# See LICENSE.txt for the text of the license.
#-----------------------------------------------------------------------------
# Usage: # Usage:
# mkdir build # mkdir build
# cd build # cd build
@ -174,7 +189,6 @@ add_subdirectory(${PM3_ROOT}/client/deps deps)
set (TARGET_SOURCES set (TARGET_SOURCES
${PM3_ROOT}/common/commonutil.c ${PM3_ROOT}/common/commonutil.c
${PM3_ROOT}/common/util_posix.c ${PM3_ROOT}/common/util_posix.c
${PM3_ROOT}/common/parity.c
${PM3_ROOT}/common/bucketsort.c ${PM3_ROOT}/common/bucketsort.c
${PM3_ROOT}/common/crapto1/crapto1.c ${PM3_ROOT}/common/crapto1/crapto1.c
${PM3_ROOT}/common/crapto1/crypto1.c ${PM3_ROOT}/common/crapto1/crypto1.c
@ -326,10 +340,9 @@ set (TARGET_SOURCES
${PM3_ROOT}/client/src/pm3.c ${PM3_ROOT}/client/src/pm3.c
${PM3_ROOT}/client/src/pm3_binlib.c ${PM3_ROOT}/client/src/pm3_binlib.c
${PM3_ROOT}/client/src/pm3_bitlib.c ${PM3_ROOT}/client/src/pm3_bitlib.c
${PM3_ROOT}/client/src/prng.c ${PM3_ROOT}/client/src/pm3line.c
${PM3_ROOT}/client/src/scandir.c ${PM3_ROOT}/client/src/scandir.c
${PM3_ROOT}/client/src/scripting.c ${PM3_ROOT}/client/src/scripting.c
${PM3_ROOT}/client/src/tea.c
${PM3_ROOT}/client/src/ui.c ${PM3_ROOT}/client/src/ui.c
${PM3_ROOT}/client/src/util.c ${PM3_ROOT}/client/src/util.c
${PM3_ROOT}/client/src/wiegand_formats.c ${PM3_ROOT}/client/src/wiegand_formats.c
@ -564,6 +577,7 @@ endif (NOT APPLE)
if (NOT JANSSON_FOUND) if (NOT JANSSON_FOUND)
set(ADDITIONAL_LNK pm3rrg_rdv4_jansson ${ADDITIONAL_LNK}) set(ADDITIONAL_LNK pm3rrg_rdv4_jansson ${ADDITIONAL_LNK})
endif (NOT JANSSON_FOUND) endif (NOT JANSSON_FOUND)
if (NOT WHEREAMI_FOUND) if (NOT WHEREAMI_FOUND)
set(ADDITIONAL_LNK pm3rrg_rdv4_whereami ${ADDITIONAL_LNK}) set(ADDITIONAL_LNK pm3rrg_rdv4_whereami ${ADDITIONAL_LNK})
endif (NOT WHEREAMI_FOUND) endif (NOT WHEREAMI_FOUND)

View file

@ -1,7 +1,17 @@
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
# This code is licensed to you under the terms of the GNU GPL, version 2 or, # Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
# at your option, any later version. See the LICENSE.txt file for the text of #
# the license. # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# See LICENSE.txt for the text of the license.
#----------------------------------------------------------------------------- #-----------------------------------------------------------------------------
ifeq ($(PLTNAME),) ifeq ($(PLTNAME),)
@ -624,13 +634,12 @@ SRCS = mifare/aiddesfire.c \
pm3_binlib.c \ pm3_binlib.c \
pm3_bitlib.c \ pm3_bitlib.c \
preferences.c \ preferences.c \
prng.c \ pm3line.c \
proxmark3.c \ proxmark3.c \
scandir.c \ scandir.c \
uart/uart_posix.c \ uart/uart_posix.c \
uart/uart_win32.c \ uart/uart_win32.c \
scripting.c \ scripting.c \
tea.c \
ui.c \ ui.c \
util.c \ util.c \
version_pm3.c \ version_pm3.c \
@ -650,7 +659,6 @@ SRCS += bucketsort.c \
iso15693tools.c \ iso15693tools.c \
legic_prng.c \ legic_prng.c \
lfdemod.c \ lfdemod.c \
parity.c \
util_posix.c util_posix.c
# swig # swig

View file

@ -1,231 +0,0 @@
# version
message(STATUS "CMake ${CMAKE_VERSION}")
cmake_minimum_required(VERSION 3.4.1)
project(proxmark3)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -fvisibility=hidden -w")
# Root path into client
set(PM3_ROOT ../../)
add_subdirectory(../deps deps)
# Build zlib deps at external
if (CMAKE_MAKE_PROGRAM MATCHES ".*ninja.*")
set(BZIP2_INCLUDE_DIRS ${BZIP2_ROOT})
set(BZIP2_LIBRARIES pm3rrg_rdv4_bzip2)
elseif (UNIX) # Cross compile at Unix Makefile System.
# bzip2 dep.
include(ExternalProject)
set(CFLAGS_EXTERNAL_LIB "CFLAGS=--target=${CMAKE_C_COMPILER_TARGET} -w")
set(BZIP2_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/deps/bzip2/src/bzip2)
ExternalProject_Add(bzip2
GIT_REPOSITORY https://android.googlesource.com/platform/external/bzip2
GIT_TAG platform-tools-30.0.2
PREFIX deps/bzip2
#SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/deps/bzip2
CONFIGURE_COMMAND mkdir -p ${BZIP2_BUILD_DIR} && git archive --format tar HEAD | tar -C ${BZIP2_BUILD_DIR} -x
BUILD_IN_SOURCE ON
BUILD_COMMAND make -C ${BZIP2_BUILD_DIR} -j4 CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} LD=${CMAKE_C_COMPILER} AR=${CMAKE_AR} RANLIB=${CMAKE_RANLIB} ${CFLAGS_EXTERNAL_LIB} libbz2.a
INSTALL_COMMAND ""
LOG_DOWNLOAD ON
)
ExternalProject_Add_StepTargets(bzip2 configure build install)
set(BZIP2_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/deps/bzip2/src/bzip2)
set(BZIP2_LIBRARIES ${CMAKE_CURRENT_BINARY_DIR}/deps/bzip2/src/bzip2/libbz2.a)
else ()
message(ERROR "Please implement your BZIP2 import.")
endif ()
# client resources
add_library(pm3rrg_rdv4 SHARED
${PM3_ROOT}/common/commonutil.c
${PM3_ROOT}/common/util_posix.c
${PM3_ROOT}/common/parity.c
${PM3_ROOT}/common/bucketsort.c
${PM3_ROOT}/common/crapto1/crapto1.c
${PM3_ROOT}/common/crapto1/crypto1.c
${PM3_ROOT}/common/crc.c
${PM3_ROOT}/common/crc16.c
${PM3_ROOT}/common/crc32.c
${PM3_ROOT}/common/crc64.c
${PM3_ROOT}/common/lfdemod.c
${PM3_ROOT}/common/legic_prng.c
${PM3_ROOT}/common/iso15693tools.c
${PM3_ROOT}/common/cardhelper.c
${PM3_ROOT}/common/generator.c
${PM3_ROOT}/client/src/crypto/asn1dump.c
${PM3_ROOT}/client/src/crypto/asn1utils.c
${PM3_ROOT}/client/src/crypto/libpcrypto.c
${PM3_ROOT}/client/src/emv/test/cda_test.c
${PM3_ROOT}/client/src/emv/test/crypto_test.c
${PM3_ROOT}/client/src/emv/test/cryptotest.c
${PM3_ROOT}/client/src/emv/test/dda_test.c
${PM3_ROOT}/client/src/emv/test/sda_test.c
${PM3_ROOT}/client/src/emv/cmdemv.c
${PM3_ROOT}/client/src/emv/crypto.c
${PM3_ROOT}/client/src/emv/crypto_polarssl.c
${PM3_ROOT}/client/src/emv/dol.c
${PM3_ROOT}/client/src/emv/emv_pk.c
${PM3_ROOT}/client/src/emv/emv_pki.c
${PM3_ROOT}/client/src/emv/emv_pki_priv.c
${PM3_ROOT}/client/src/emv/emv_roca.c
${PM3_ROOT}/client/src/emv/emv_tags.c
${PM3_ROOT}/client/src/emv/emvcore.c
${PM3_ROOT}/client/src/emv/emvjson.c
${PM3_ROOT}/client/src/emv/tlv.c
${PM3_ROOT}/client/src/fido/additional_ca.c
${PM3_ROOT}/client/src/fido/cbortools.c
${PM3_ROOT}/client/src/fido/cose.c
${PM3_ROOT}/client/src/fido/fidocore.c
${PM3_ROOT}/client/src/iso7816/apduinfo.c
${PM3_ROOT}/client/src/iso7816/iso7816core.c
${PM3_ROOT}/client/src/ksx6924/ksx6924core.c
${PM3_ROOT}/client/src/cipurse/cipursecrypto.c
${PM3_ROOT}/client/src/cipurse/cipursecore.c
${PM3_ROOT}/client/src/cipurse/cipursetest.c
${PM3_ROOT}/client/src/loclass/cipher.c
${PM3_ROOT}/client/src/loclass/cipherutils.c
${PM3_ROOT}/client/src/loclass/elite_crack.c
${PM3_ROOT}/client/src/loclass/hash1_brute.c
${PM3_ROOT}/client/src/loclass/ikeys.c
${PM3_ROOT}/client/src/mifare/mad.c
${PM3_ROOT}/client/src/mifare/aiddesfire.c
${PM3_ROOT}/client/src/mifare/mfkey.c
${PM3_ROOT}/client/src/mifare/mifare4.c
${PM3_ROOT}/client/src/mifare/mifaredefault.c
${PM3_ROOT}/client/src/mifare/mifarehost.c
${PM3_ROOT}/client/src/nfc/ndef.c
${PM3_ROOT}/client/src/mifare/lrpcrypto.c
${PM3_ROOT}/client/src/mifare/desfirecrypto.c
${PM3_ROOT}/client/src/mifare/desfiresecurechan.c
${PM3_ROOT}/client/src/mifare/desfirecore.c
${PM3_ROOT}/client/src/mifare/desfiretest.c
${PM3_ROOT}/client/src/mifare/gallaghercore.c
${PM3_ROOT}/client/src/uart/uart_posix.c
${PM3_ROOT}/client/src/uart/uart_win32.c
${PM3_ROOT}/client/src/ui/overlays.ui
${PM3_ROOT}/client/src/ui/image.ui
${PM3_ROOT}/client/src/aidsearch.c
${PM3_ROOT}/client/src/atrs.c
${PM3_ROOT}/client/src/cmdanalyse.c
${PM3_ROOT}/client/src/cmdcrc.c
${PM3_ROOT}/client/src/cmddata.c
${PM3_ROOT}/client/src/cmdflashmem.c
${PM3_ROOT}/client/src/cmdflashmemspiffs.c
${PM3_ROOT}/client/src/cmdhf.c
${PM3_ROOT}/client/src/cmdhf14a.c
${PM3_ROOT}/client/src/cmdhf14b.c
${PM3_ROOT}/client/src/cmdhf15.c
${PM3_ROOT}/client/src/cmdhfcryptorf.c
${PM3_ROOT}/client/src/cmdhfemrtd.c
${PM3_ROOT}/client/src/cmdhfepa.c
${PM3_ROOT}/client/src/cmdhffelica.c
${PM3_ROOT}/client/src/cmdhffido.c
${PM3_ROOT}/client/src/cmdhfgallagher.c
${PM3_ROOT}/client/src/cmdhfcipurse.c
${PM3_ROOT}/client/src/cmdhficlass.c
${PM3_ROOT}/client/src/cmdhfjooki.c
${PM3_ROOT}/client/src/cmdhfksx6924.c
${PM3_ROOT}/client/src/cmdhflegic.c
${PM3_ROOT}/client/src/cmdhflist.c
${PM3_ROOT}/client/src/cmdhflto.c
${PM3_ROOT}/client/src/cmdhfmf.c
${PM3_ROOT}/client/src/cmdhfmfdes.c
${PM3_ROOT}/client/src/cmdhfmfhard.c
${PM3_ROOT}/client/src/cmdhfmfp.c
${PM3_ROOT}/client/src/cmdhfmfu.c
${PM3_ROOT}/client/src/cmdhfseos.c
${PM3_ROOT}/client/src/cmdhfst.c
${PM3_ROOT}/client/src/cmdhfst25ta.c
${PM3_ROOT}/client/src/cmdhfthinfilm.c
${PM3_ROOT}/client/src/cmdhftopaz.c
${PM3_ROOT}/client/src/cmdhfwaveshare.c
${PM3_ROOT}/client/src/cmdhw.c
${PM3_ROOT}/client/src/cmdlf.c
${PM3_ROOT}/client/src/cmdlfawid.c
${PM3_ROOT}/client/src/cmdlfcotag.c
${PM3_ROOT}/client/src/cmdlfdestron.c
${PM3_ROOT}/client/src/cmdlfem.c
${PM3_ROOT}/client/src/cmdlfem410x.c
${PM3_ROOT}/client/src/cmdlfem4x05.c
${PM3_ROOT}/client/src/cmdlfem4x50.c
${PM3_ROOT}/client/src/cmdlfem4x70.c
${PM3_ROOT}/client/src/cmdlffdxb.c
${PM3_ROOT}/client/src/cmdlfgallagher.c
${PM3_ROOT}/client/src/cmdlfguard.c
${PM3_ROOT}/client/src/cmdlfhid.c
${PM3_ROOT}/client/src/cmdlfhitag.c
${PM3_ROOT}/client/src/cmdlfidteck.c
${PM3_ROOT}/client/src/cmdlfindala.c
${PM3_ROOT}/client/src/cmdlfio.c
${PM3_ROOT}/client/src/cmdlfjablotron.c
${PM3_ROOT}/client/src/cmdlfkeri.c
${PM3_ROOT}/client/src/cmdlfmotorola.c
${PM3_ROOT}/client/src/cmdlfnedap.c
${PM3_ROOT}/client/src/cmdlfnexwatch.c
${PM3_ROOT}/client/src/cmdlfnoralsy.c
${PM3_ROOT}/client/src/cmdlfpac.c
${PM3_ROOT}/client/src/cmdlfparadox.c
${PM3_ROOT}/client/src/cmdlfpcf7931.c
${PM3_ROOT}/client/src/cmdlfpresco.c
${PM3_ROOT}/client/src/cmdlfpyramid.c
${PM3_ROOT}/client/src/cmdlfsecurakey.c
${PM3_ROOT}/client/src/cmdlft55xx.c
${PM3_ROOT}/client/src/cmdlfti.c
${PM3_ROOT}/client/src/cmdlfviking.c
${PM3_ROOT}/client/src/cmdlfvisa2000.c
${PM3_ROOT}/client/src/cmdlfzx8211.c
${PM3_ROOT}/client/src/cmdmain.c
${PM3_ROOT}/client/src/cmdnfc.c
${PM3_ROOT}/client/src/cmdparser.c
${PM3_ROOT}/client/src/cmdscript.c
${PM3_ROOT}/client/src/cmdsmartcard.c
${PM3_ROOT}/client/src/cmdtrace.c
${PM3_ROOT}/client/src/cmdusart.c
${PM3_ROOT}/client/src/cmdwiegand.c
${PM3_ROOT}/client/src/comms.c
${PM3_ROOT}/client/src/fileutils.c
${PM3_ROOT}/client/src/flash.c
${PM3_ROOT}/client/src/graph.c
${PM3_ROOT}/client/src/jansson_path.c
${PM3_ROOT}/client/src/preferences.c
${PM3_ROOT}/client/src/pm3_binlib.c
${PM3_ROOT}/client/src/pm3_bitlib.c
${PM3_ROOT}/client/src/prng.c
${PM3_ROOT}/client/src/scandir.c
${PM3_ROOT}/client/src/scripting.c
${PM3_ROOT}/client/src/tea.c
${PM3_ROOT}/client/src/ui.c
${PM3_ROOT}/client/src/util.c
${PM3_ROOT}/client/src/wiegand_formats.c
${PM3_ROOT}/client/src/wiegand_formatutils.c
# android resources
jni_tools.c
pm3_main.c
)
# includes
target_include_directories(pm3rrg_rdv4 PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}
${BZIP2_INCLUDE_DIRS}
${PM3_ROOT}/common
${PM3_ROOT}/common_fpga
${PM3_ROOT}/include
${PM3_ROOT}/client/src
${PM3_ROOT}/client/include
)
target_link_libraries(pm3rrg_rdv4
${BZIP2_LIBRARIES}
pm3rrg_rdv4_hardnested
pm3rrg_rdv4_mbedtls
pm3rrg_rdv4_cliparser
pm3rrg_rdv4_jansson
pm3rrg_rdv4_lua
pm3rrg_rdv4_tinycbor
pm3rrg_rdv4_amiibo
pm3rrg_rdv4_reveng
pm3rrg_rdv4_whereami
android
log)

View file

@ -1,81 +0,0 @@
//
// Created by DXL on 2017/9/1.
//
//including header
#include <malloc.h>
#include <jni_tools.h>
#include <stdbool.h>
// native thread attach label
static bool g_IsAttach;
// get current env for jvm
JNIEnv *getJniEnv() {
JNIEnv *currentThreadEnv;
g_IsAttach = false;
if ((*g_JavaVM)->GetEnv(g_JavaVM, (void **) &currentThreadEnv, JNI_VERSION_1_4) != JNI_OK) {
LOGE("Get Env Fail!");
if ((*g_JavaVM)->AttachCurrentThread(g_JavaVM, &currentThreadEnv, NULL) != JNI_OK) {
LOGE("Attach the current thread Fail!");
g_IsAttach = false;
return NULL;
} else {
g_IsAttach = true;
LOGE("Attach the current thread Success!");
return currentThreadEnv;
}
} else {
g_IsAttach = false;
//LOGE("Get Env Success!");
return currentThreadEnv;
}
}
// detach native thread from jvm
void detachThread() {
if (g_IsAttach) {
(*g_JavaVM)->DetachCurrentThread(g_JavaVM);
}
}
// cmd arg parse
CMD *parse_command_line(const char *commandStr) {
CMD *cmd = (CMD *) malloc(sizeof(CMD));
if (!cmd) {
return NULL;
}
// copy the source to the heap
char *pTmp = strdup(commandStr);
// new memory size is default 20 for char **
int size = 20;
cmd->cmd = (char **) malloc(size * sizeof(char **));
if (!cmd->cmd) {
free(cmd);
return NULL;
}
// parse
char *pStr = strtok(pTmp, " ");
cmd->cmd[0] = pStr;
int count = 1;
for (; pStr != NULL; ++count) {
// Capacity expansion
if (count == (size - 1)) {
size += 20;
cmd->cmd = (char **) realloc(cmd->cmd, size * sizeof(char **));
}
pStr = strtok(NULL, " ");
if (pStr) {
cmd->cmd[count] = pStr;
}
}
cmd->len = (count - 1);
return cmd;
}
// cmd arg struct free
void free_command_line(CMD *cmd) {
free(cmd->cmd[0]);
free(cmd->cmd);
free(cmd);
}

View file

@ -1,40 +0,0 @@
//
// Created by dell on 2017/9/1.
//
#ifndef DXL_TOOLS_H
#define DXL_TOOLS_H
#include <jni.h>
#include <android/log.h>
#include <string.h>
//JNI LOG
#define TAG "PM3"
#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE,TAG,__VA_ARGS__)
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,TAG,__VA_ARGS__)
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,TAG,__VA_ARGS__)
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN,TAG,__VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,TAG,__VA_ARGS__)
// a global jvm instance
JavaVM *g_JavaVM;
// get current env for jvm
JNIEnv *getJniEnv();
// detach native thread from jvm must native thread can detach!
void detachThread();
typedef struct {
char **cmd;
int len;
} CMD;
// cmd arg parse
CMD *parse_command_line(const char *commandStr);
// cmd arg struct free
void free_command_line(CMD *);
#endif //DXL_TOOLS_H

View file

@ -1,174 +0,0 @@
//-----------------------------------------------------------------------------
// Copyright (C) 2009 Michael Gernoth <michael at gernoth.net>
// Copyright (C) 2010 iZsh <izsh at fail0verflow.com>
//
// This code is licensed to you under the terms of the GNU GPL, version 2 or,
// at your option, any later version. See the LICENSE.txt file for the text of
// the license.
//-----------------------------------------------------------------------------
// Main binary
//-----------------------------------------------------------------------------
#include "proxmark3.h"
#include <stdlib.h>
#include <stdio.h> // for Mingw readline
#include <limits.h>
#include <unistd.h>
#include <ctype.h>
#include "usart_defs.h"
#include "util_posix.h"
#include "proxgui.h"
#include "cmdmain.h"
#include "ui.h"
#include "cmdhw.h"
#include "whereami.h"
#include "comms.h"
#include "fileutils.h"
#include "commonutil.h" // ARRAYLEN
#include "jni_tools.h"
//iceman, todo: proxify socker server name. Maybe set in preferences?
// DXL reply, todo:
// Is a good idea, we can move this def to preferences, but not now.
// Because libpm3rrg_rdv4.so cant load preferences.
// I will impl a function to load preferences at future.
#define PM3_LOCAL_SOCKET_SERVER "DXL.COM.ASL"
static char *g_android_executable_directory = NULL;
static char *g_android_user_directory = NULL;
char g_version_information[] = {""};
const char *get_my_executable_directory(void) {
if (g_android_executable_directory == NULL) {
char buf[FILE_PATH_SIZE] = {0};
getcwd(buf, sizeof(buf));
strncat(buf, PATHSEP, 1);
g_android_executable_directory = strdup(buf);
}
return g_android_executable_directory;
}
const char *get_my_user_directory(void) {
return g_android_user_directory;
}
void ShowGraphWindow(void) {}
void HideGraphWindow(void) {}
void RepaintGraphWindow(void) {}
void ShowPictureWindow(char *fn) {}
void HidePictureWindow(void) {}
void RepaintPictureWindow(void) {}
int push_cmdscriptfile(char *path, bool stayafter) { return PM3_SUCCESS; }
static bool OpenPm3(void) {
if (g_conn.run) { return true; }
// Open with LocalSocket. Not a tcp connection!
bool ret = OpenProxmark(session.current_device, "socket:"PM3_LOCAL_SOCKET_SERVER, false, 1000, false, 115200);
return ret;
}
/*
* Transfers to the command buffer and waits for a new command to be executed
* */
jint Console(JNIEnv *env, jobject instance, jstring cmd_) {
if (!g_conn.run) {
if (OpenPm3() && TestProxmark(session.current_device) == PM3_SUCCESS) {
LOGD("Connected to device");
PrintAndLogEx(SUCCESS, "Connected to device");
} else {
LOGD("Failed to connect to device");
PrintAndLogEx(ERR, "Failed to connect to device");
CloseProxmark(session.current_device);
}
}
PrintAndLogEx(NORMAL, "");
char *cmd = (char *)((*env)->GetStringUTFChars(env, cmd_, 0));
int ret = CommandReceived(cmd);
if (ret == 99) {
// exit / quit
// TODO: implement this
PrintAndLogEx(NORMAL, "Asked to exit, can't really do that yet...");
}
(*env)->ReleaseStringUTFChars(env, cmd_, cmd);
return ret;
}
/*
* Is client running!
* */
jboolean IsClientRunning(JNIEnv *env, jobject instance) {
return (jboolean)((jboolean) g_conn.run);
}
/*
* test hw and fw and client.
* */
jboolean TestPm3(JNIEnv *env, jobject instance) {
if (open() == false) {
CloseProxmark(session.current_device);
return false;
}
bool ret = (TestProxmark(session.current_device) == PM3_SUCCESS);
return (jboolean)(ret);
}
/*
* stop pm3 client
* */
void ClosePm3(JNIEnv *env, jobject instance) {
CloseProxmark(session.current_device);
}
/*
* native function map to jvm
* */
//iceman: todo, pm3:ify java class root. Return codes, should match PM3_E* codes.
JNIEXPORT jint JNI_OnLoad(JavaVM *vm, void *reserved) {
JNIEnv *jniEnv = NULL;
if ((*vm)->GetEnv(vm, (void **) &jniEnv, JNI_VERSION_1_4) != JNI_OK) {
return -1;
}
(*jniEnv)->GetJavaVM(jniEnv, &g_JavaVM);
jclass clazz = (*jniEnv)->FindClass(jniEnv, "cn/rrg/natives/Proxmark3RRGRdv4Tools");
if (clazz == NULL) {
return -1;
}
jclass clz_test = (*jniEnv)->FindClass(jniEnv, "cn/rrg/devices/Proxmark3RRGRdv4");
JNINativeMethod methods[] = {
{"startExecute", "(Ljava/lang/String;)I", (void *) Console},
{"stopExecute", "()V", (void *) ClosePm3},
{"isExecuting", "()Z", (void *) IsClientRunning}
};
JNINativeMethod methods1[] = {
{"testPm3", "()Z", (void *) TestPm3},
{"closePm3", "()V", ClosePm3}
};
if ((*jniEnv)->RegisterNatives(jniEnv, clazz, methods, ARRAYLEN(methods)) !=
JNI_OK) {
return -1;
}
if ((*jniEnv)->RegisterNatives(jniEnv, clz_test, methods1,
ARRAYLEN(methods1)) != JNI_OK) {
return -1;
}
(*jniEnv)->DeleteLocalRef(jniEnv, clazz);
(*jniEnv)->DeleteLocalRef(jniEnv, clz_test);
return JNI_VERSION_1_4;
}

View file

@ -1,5 +1,21 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
#-----------------------------------------------------------------------------
# Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# See LICENSE.txt for the text of the license.
#-----------------------------------------------------------------------------
# python3 -m pip install urllib unidecode # python3 -m pip install urllib unidecode
import urllib.request import urllib.request
@ -8,13 +24,25 @@ import unidecode
ATR_URL='https://raw.githubusercontent.com/LudovicRousseau/pcsc-tools/master/smartcard_list.txt' ATR_URL='https://raw.githubusercontent.com/LudovicRousseau/pcsc-tools/master/smartcard_list.txt'
C_HEADER="""//----------------------------------------------------------------------------- C_HEADER="""//-----------------------------------------------------------------------------
// List scraped from // Borrowed initially from
// """ + ATR_URL + """ // """ + ATR_URL + """
// Copyright (C) 2002-2021 Ludovic Rousseau // Copyright (C) 2002-2021 Ludovic Rousseau
// Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//-----------------------------------------------------------------------------
// *DO NOT EDIT MANUALLY*
// Autogenerated with atr_scrap_pcsctools.py
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
#ifndef ATRS_H__ #ifndef ATRS_H__

View file

@ -238,7 +238,7 @@ uint64_t CRACK_STATES_BITSLICED(uint32_t cuid, uint8_t *best_first_bytes, statel
memset(bs_zeroes.bytes, 0x00, VECTOR_SIZE); memset(bs_zeroes.bytes, 0x00, VECTOR_SIZE);
// bitslice all the even states // bitslice all the even states
bitslice_t **restrict bitsliced_even_states = (bitslice_t **)malloc(((p->len[EVEN_STATE] - 1) / MAX_BITSLICES + 1) * sizeof(bitslice_t *)); bitslice_t **restrict bitsliced_even_states = (bitslice_t **)calloc(1, ((p->len[EVEN_STATE] - 1) / MAX_BITSLICES + 1) * sizeof(bitslice_t *));
if (bitsliced_even_states == NULL) { if (bitsliced_even_states == NULL) {
PrintAndLogEx(WARNING, "Out of memory error in brute_force. Aborting..."); PrintAndLogEx(WARNING, "Out of memory error in brute_force. Aborting...");
exit(4); exit(4);

View file

@ -436,8 +436,8 @@ static bool read_bench_data(statelist_t *test_candidates) {
float brute_force_benchmark(void) { float brute_force_benchmark(void) {
statelist_t test_candidates[NUM_BRUTE_FORCE_THREADS]; statelist_t test_candidates[NUM_BRUTE_FORCE_THREADS];
test_candidates[0].states[ODD_STATE] = malloc((TEST_BENCH_SIZE + 1) * sizeof(uint32_t)); test_candidates[0].states[ODD_STATE] = calloc(1, (TEST_BENCH_SIZE + 1) * sizeof(uint32_t));
test_candidates[0].states[EVEN_STATE] = malloc((TEST_BENCH_SIZE + 1) * sizeof(uint32_t)); test_candidates[0].states[EVEN_STATE] = calloc(1, (TEST_BENCH_SIZE + 1) * sizeof(uint32_t));
for (uint8_t i = 0; i < NUM_BRUTE_FORCE_THREADS - 1; i++) { for (uint8_t i = 0; i < NUM_BRUTE_FORCE_THREADS - 1; i++) {
test_candidates[i].next = test_candidates + i + 1; test_candidates[i].next = test_candidates + i + 1;
test_candidates[i + 1].states[ODD_STATE] = test_candidates[0].states[ODD_STATE]; test_candidates[i + 1].states[ODD_STATE] = test_candidates[0].states[ODD_STATE];

View file

@ -1,6 +1,22 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# Mostly derived from https://github.com/mrowa44/emojify Copyright (c) 2015 Justyna Rachowicz #-----------------------------------------------------------------------------
# Borrowed initially from https://github.com/mrowa44/emojify
# Copyright (c) 2015 Justyna Rachowicz
# Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# See LICENSE.txt for the text of the license.
#-----------------------------------------------------------------------------
from urllib.request import urlopen from urllib.request import urlopen
import json import json
@ -8,16 +24,32 @@ import json
EMOJI_JSON_URL = 'https://raw.githubusercontent.com/github/gemoji/master/db/emoji.json' EMOJI_JSON_URL = 'https://raw.githubusercontent.com/github/gemoji/master/db/emoji.json'
def print_emoji(emoji_json): def string_emoji(emoji_json):
for alias in emoji_json['aliases']: for alias in emoji_json['aliases']:
print(' {{":{0}:", "{1}"}}, // {2}'.format(alias, return(' {{":{0}:", "{1}"}}, // {2}\n'.format(alias,
''.join('\\x{:02x}'.format(b) for b in emoji_json['emoji'].encode('utf8')),
emoji_json['emoji']))
''.join('\\x{:02x}'.format(b) for b in emoji_json['emoji'].encode('utf8')), C_HEADER="""//-----------------------------------------------------------------------------
// Borrowed initially from https://github.com/github/gemoji
emoji_json['emoji'])) // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
//
print( // This program is free software: you can redistribute it and/or modify
"""#ifndef EMOJIS_H__ // it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//-----------------------------------------------------------------------------
// *DO NOT EDIT MANUALLY*
// Autogenerated with emojis_scrap_github.py
//-----------------------------------------------------------------------------
#ifndef EMOJIS_H__
#define EMOJIS_H__ #define EMOJIS_H__
typedef struct emoji_s { typedef struct emoji_s {
@ -26,13 +58,18 @@ typedef struct emoji_s {
} emoji_t; } emoji_t;
// emoji_t array are expected to be NULL terminated // emoji_t array are expected to be NULL terminated
static emoji_t EmojiTable[] = {""") static emoji_t EmojiTable[] = {
"""
with urlopen(EMOJI_JSON_URL) as conn: C_FOOTER=""" {NULL, NULL}
emojis_json = json.loads(conn.read().decode('utf-8'))
for emoji_json in emojis_json:
print_emoji(emoji_json)
print(""" {NULL, NULL}
}; };
#endif""") #endif
"""
with open('src/emojis.h','w') as femoji:
with urlopen(EMOJI_JSON_URL) as conn:
emojis_json = json.loads(conn.read().decode('utf-8'))
femoji.write(C_HEADER)
for emoji_json in emojis_json:
femoji.write(string_emoji(emoji_json))
femoji.write(C_FOOTER)

View file

@ -1,3 +1,19 @@
#-----------------------------------------------------------------------------
# Copyright (C) Jonathan Westhues, Mar 2006
# Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# See LICENSE.txt for the text of the license.
#-----------------------------------------------------------------------------
# Usage: # Usage:
# mkdir build # mkdir build
# cd build # cd build
@ -174,7 +190,6 @@ add_subdirectory(${PM3_ROOT}/client/deps deps)
set (TARGET_SOURCES set (TARGET_SOURCES
${PM3_ROOT}/common/commonutil.c ${PM3_ROOT}/common/commonutil.c
${PM3_ROOT}/common/util_posix.c ${PM3_ROOT}/common/util_posix.c
${PM3_ROOT}/common/parity.c
${PM3_ROOT}/common/bucketsort.c ${PM3_ROOT}/common/bucketsort.c
${PM3_ROOT}/common/crapto1/crapto1.c ${PM3_ROOT}/common/crapto1/crapto1.c
${PM3_ROOT}/common/crapto1/crypto1.c ${PM3_ROOT}/common/crapto1/crypto1.c
@ -326,10 +341,9 @@ set (TARGET_SOURCES
${PM3_ROOT}/client/src/pm3.c ${PM3_ROOT}/client/src/pm3.c
${PM3_ROOT}/client/src/pm3_binlib.c ${PM3_ROOT}/client/src/pm3_binlib.c
${PM3_ROOT}/client/src/pm3_bitlib.c ${PM3_ROOT}/client/src/pm3_bitlib.c
${PM3_ROOT}/client/src/prng.c ${PM3_ROOT}/client/src/pm3line.c
${PM3_ROOT}/client/src/scandir.c ${PM3_ROOT}/client/src/scandir.c
${PM3_ROOT}/client/src/scripting.c ${PM3_ROOT}/client/src/scripting.c
${PM3_ROOT}/client/src/tea.c
${PM3_ROOT}/client/src/ui.c ${PM3_ROOT}/client/src/ui.c
${PM3_ROOT}/client/src/util.c ${PM3_ROOT}/client/src/util.c
${PM3_ROOT}/client/src/wiegand_formats.c ${PM3_ROOT}/client/src/wiegand_formats.c
@ -566,6 +580,7 @@ endif (NOT APPLE)
if (NOT JANSSON_FOUND) if (NOT JANSSON_FOUND)
set(ADDITIONAL_LNK pm3rrg_rdv4_jansson ${ADDITIONAL_LNK}) set(ADDITIONAL_LNK pm3rrg_rdv4_jansson ${ADDITIONAL_LNK})
endif (NOT JANSSON_FOUND) endif (NOT JANSSON_FOUND)
if (NOT WHEREAMI_FOUND) if (NOT WHEREAMI_FOUND)
set(ADDITIONAL_LNK pm3rrg_rdv4_whereami ${ADDITIONAL_LNK}) set(ADDITIONAL_LNK pm3rrg_rdv4_whereami ${ADDITIONAL_LNK})
endif (NOT WHEREAMI_FOUND) endif (NOT WHEREAMI_FOUND)

View file

@ -1,3 +1,18 @@
//-----------------------------------------------------------------------------
// Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//-----------------------------------------------------------------------------
#ifndef LIBPM3_H #ifndef LIBPM3_H
#define LIBPM3_H #define LIBPM3_H

View file

@ -12,7 +12,7 @@ This version
- Iceman - Iceman
Note: Note:
This script is used as a helper script to generate the rl_vocabulory.h file. This script is used as a helper script to generate the pm3line_vocabulory.h file.
It need a working proxmark3 client to extract the help text. It need a working proxmark3 client to extract the help text.
Ie: this script can't be used inside the normal build sequence. Ie: this script can't be used inside the normal build sequence.
@ -48,31 +48,31 @@ def main():
command_data = parse_all_command_data(help_text) command_data = parse_all_command_data(help_text)
args.output_file.write("""//----------------------------------------------------------------------------- args.output_file.write("""//-----------------------------------------------------------------------------
// Copyright (C) 2021 <iceman> // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// readline auto complete utilities // readline auto complete utilities
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
#ifndef RL_VOCABULORY_H__ #ifndef PM3LINE_VOCABULORY_H__
#define RL_VOCABULORY_H__ #define PM3LINE_VOCABULORY_H__
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#ifdef HAVE_READLINE #include <stdbool.h>
#include <stdlib.h>
#include <string.h>
#include <readline/readline.h>
#include "ui.h" // g_session
#include "util.h" // str_ndup
char* rl_command_generator(const char *text, int state);
char **rl_command_completion(const char *text, int start, int end);
typedef struct vocabulory_s { typedef struct vocabulory_s {
bool offline; bool offline;
@ -92,50 +92,6 @@ const static vocabulory_t vocabulory[] = {\n""")
args.output_file.write(""" {0, NULL}\n}; args.output_file.write(""" {0, NULL}\n};
char **rl_command_completion(const char *text, int start, int end) {
rl_attempted_completion_over = 0;
return rl_completion_matches (text, rl_command_generator);
}
char* rl_command_generator(const char *text, int state) {
static int index;
static size_t len;
size_t rlen = strlen(rl_line_buffer);
const char *command;
if (!state) {
index = 0;
len = strlen(text);
}
while ((command = vocabulory[index].name)) {
// When no pm3 device present
// and the command is not available offline,
// we skip it.
if ((g_session.pm3_present == false) && (vocabulory[index].offline == false )) {
index++;
continue;
}
index++;
if (strncmp (command, rl_line_buffer, rlen) == 0) {
const char *next = command + (rlen - len);
const char *space = strstr(next, " ");
if (space != NULL) {
return str_ndup(next, space - next);
}
return str_dup(next);
}
}
return NULL;
}
#endif
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2019 merlokk // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Proxmark3 RDV40 AID list library // Proxmark3 RDV40 AID list library
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2019 merlokk // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Proxmark3 RDV40 AID list library // Proxmark3 RDV40 AID list library
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) Iceman // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// ATR information lookup // ATR information lookup
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,11 +1,23 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// List scraped from // Borrowed initially from
// https://raw.githubusercontent.com/LudovicRousseau/pcsc-tools/master/smartcard_list.txt // https://raw.githubusercontent.com/LudovicRousseau/pcsc-tools/master/smartcard_list.txt
// Copyright (C) 2002-2021 Ludovic Rousseau // Copyright (C) 2002-2021 Ludovic Rousseau
// Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//-----------------------------------------------------------------------------
// *DO NOT EDIT MANUALLY*
// Autogenerated with atr_scrap_pcsctools.py
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
#ifndef ATRS_H__ #ifndef ATRS_H__
@ -492,7 +504,7 @@ const static atr_t AtrTable[] = {
{ "3B6600FF4A434F503230", "UOB Preferred Platinum Visa Card (Bank)\nhttp://www.uob.com.sg/personal/cards/credit/preferred_platinum_visa_card.html" }, { "3B6600FF4A434F503230", "UOB Preferred Platinum Visa Card (Bank)\nhttp://www.uob.com.sg/personal/cards/credit/preferred_platinum_visa_card.html" },
{ "3B6600FF4A434F503231", "JCOP 21" }, { "3B6600FF4A434F503231", "JCOP 21" },
{ "3B6600FF4A434F503330", "JCOP30 'OP-DI 16k VISA v2 (JCOP30) ORGA'" }, { "3B6600FF4A434F503330", "JCOP30 'OP-DI 16k VISA v2 (JCOP30) ORGA'" },
{ "3B67000000000000009000", "Axa Bank (Belgium) Mastercard Gold / Axa Bank Belgium\nMisterCash & Proton card\nVISA Card (emitted by Bank Card Company - Belgium)" }, { "3B67000000000000009000", "Axa Bank (Belgium) Mastercard Gold / Axa Bank Belgium\nMisterCash & Proton card\nVISA Card (emitted by Bank Card Company - Belgium)\nHellobank/BNP Paribas Fortis Belgium Bancontact Visa debit card (Bank)" },
{ "3B67000000000000418684", "ezpu100 (Bank)" }, { "3B67000000000000418684", "ezpu100 (Bank)" },
{ "3B67000000002000009000", "BankID card from Sparebank1" }, { "3B67000000002000009000", "BankID card from Sparebank1" },
{ "3B67000000318071869000", "Swiss ZKB-Bancomat-Card" }, { "3B67000000318071869000", "Swiss ZKB-Bancomat-Card" },
@ -551,7 +563,7 @@ const static atr_t AtrTable[] = {
{ "3B6800000073C84010009000", "Icelandic Banking scheme Issued by the Ministry of Treasure in Iceland\nhttp://www.islandsrot.is/" }, { "3B6800000073C84010009000", "Icelandic Banking scheme Issued by the Ministry of Treasure in Iceland\nhttp://www.islandsrot.is/" },
{ "3B6800000073C84011009000", "Woolworths Everyday Money prepaid Mastercard\nNordea Bank Norway Visa + national debet card [BankAxept]\nVISA Classic - Nordlandsbanken (Norway)\nCiti Double Cash MasterCard\nWescom Credit Union Visa Debit Card (Bank)\nhttps://www.wescom.org/CHECKING/CHECK-CARD.ASP" }, { "3B6800000073C84011009000", "Woolworths Everyday Money prepaid Mastercard\nNordea Bank Norway Visa + national debet card [BankAxept]\nVISA Classic - Nordlandsbanken (Norway)\nCiti Double Cash MasterCard\nWescom Credit Union Visa Debit Card (Bank)\nhttps://www.wescom.org/CHECKING/CHECK-CARD.ASP" },
{ "3B6800000073C84012009000", "Brazilian 'e-CPF' card" }, { "3B6800000073C84012009000", "Brazilian 'e-CPF' card" },
{ "3B6800000073C84013009000", "MASTERCARD issued by MLP (Marschollek, Lautenschlager and Partner)\nG&D 12696-GDM-10/11 DEBIT CARD issued by BANCO DE CREDITO DEL PERU\nVisa from Caisse populaire Desjardins (Canada) (Bank)\nhttps://www.desjardins.com/\nMasterCard issued by President's Choice Bank (Canada)\nhttp://pcfinancial.ca/mastercard\nMasterCard issued by CIBC (Canada)\nhttp://www.cibc.com/\nMasterCard issued by The Bank of Nova Scotia (Canada)\nhttp://www.scotiabank.com/\nMasterCard issued by JPMorgan Chase Bank, N.A.\nhttps://www.chase.com/\nCaixaBank Visa Electron (Bank)\nhttps://www.lacaixa.cat/" }, { "3B6800000073C84013009000", "MASTERCARD issued by MLP (Marschollek, Lautenschlager and Partner)\nG&D 12696-GDM-10/11 DEBIT CARD issued by BANCO DE CREDITO DEL PERU\nVisa from Caisse populaire Desjardins (Canada) (Bank)\nhttps://www.desjardins.com/\nMasterCard issued by President's Choice Bank (Canada)\nhttp://pcfinancial.ca/mastercard\nMasterCard issued by CIBC (Canada)\nhttp://www.cibc.com/\nMasterCard issued by The Bank of Nova Scotia (Canada)\nhttp://www.scotiabank.com/\nMasterCard issued by JPMorgan Chase Bank, N.A.\nhttps://www.chase.com/\nCaixaBank Visa Electron (Bank)\nhttps://www.lacaixa.cat/\nAmerican Express Canada Credit Card (Bank)" },
{ "3B6800000073C8401300907D", "NextCard - Mastercard Debit card - Intesa Sanpaolo Bank (Italy) (Bank)\nhttps://www.intesasanpaolo.com/it/persone-e-famiglie/prodotti/carte/carte-di-debito/next-card.html" }, { "3B6800000073C8401300907D", "NextCard - Mastercard Debit card - Intesa Sanpaolo Bank (Italy) (Bank)\nhttps://www.intesasanpaolo.com/it/persone-e-famiglie/prodotti/carte/carte-di-debito/next-card.html" },
{ "3B68000000DE511001019000", "Itau Bank Mastercard Debit Card (Brazil) (Bank)\nhttps://www.itau.com.br" }, { "3B68000000DE511001019000", "Itau Bank Mastercard Debit Card (Brazil) (Bank)\nhttps://www.itau.com.br" },
{ "3B6800000101309600009000", "Edenred - French Restauration e-Ticket card (2013) (Other)\nhttps://www.edenred.fr/ticket-restaurant" }, { "3B6800000101309600009000", "Edenred - French Restauration e-Ticket card (2013) (Other)\nhttps://www.edenred.fr/ticket-restaurant" },
@ -593,7 +605,7 @@ const static atr_t AtrTable[] = {
{ "3B6900002494010000000001A9", "Kazakhstan Helios gas station debit card\nhttp://helios.kz/" }, { "3B6900002494010000000001A9", "Kazakhstan Helios gas station debit card\nhttp://helios.kz/" },
{ "3B6900002494010201000101A9", "Chipcard from SUN to be used in SunRay's\n370-4328-01 (31091)" }, { "3B6900002494010201000101A9", "Chipcard from SUN to be used in SunRay's\n370-4328-01 (31091)" },
{ "3B6900002494010301000100A9", "Schlumberger MicroPayflex S card" }, { "3B6900002494010301000100A9", "Schlumberger MicroPayflex S card" },
{ "3B6900004944353056312E....", "eID Card to user authenticate and save paswords in the Card. Product ID50 Password manager from IDENTOS GmbH (eID)\nhttps://identos.com/id50-password-manager/" }, { "3B6900004944353056312E....", "eID Card to user autheticate and save paswords in the Card. Product ID50 Password manager from IDENTOS GmbH (eID)\nhttps://identos.com/id50-password-manager/" },
{ "3B6900004944363056312E....", "token appidkey ID60-USB (Other)\nhttps://identsmart.com/en/products/id60-datasafe/" }, { "3B6900004944363056312E....", "token appidkey ID60-USB (Other)\nhttps://identsmart.com/en/products/id60-datasafe/" },
{ "3B6900004A434F503331563232", "Visa Europe Sample Card / Axalto" }, { "3B6900004A434F503331563232", "Visa Europe Sample Card / Axalto" },
{ "3B6900005001010401000101A9", "Sample card given to all attendees of the CTST 2004 SmartCard Conference" }, { "3B6900005001010401000101A9", "Sample card given to all attendees of the CTST 2004 SmartCard Conference" },
@ -636,7 +648,7 @@ const static atr_t AtrTable[] = {
{ "3B6A0000813F017511010281010A", "Huada CIU9872B (Java Card 2.2.2) (JavaCard)" }, { "3B6A0000813F017511010281010A", "Huada CIU9872B (Java Card 2.2.2) (JavaCard)" },
{ "3B6A0000866500A758C046009000", "China Merchants Bank card (Bank)" }, { "3B6A0000866500A758C046009000", "China Merchants Bank card (Bank)" },
{ "3B6A0000866500A758C055009000", "Credit card (Bank)" }, { "3B6A0000866500A758C055009000", "Credit card (Bank)" },
{ "3B6A00FF0031C173C84000009000", "Paypal EMV debit card (Bank)" }, { "3B6A00FF0031C173C84000009000", "Paypal EMV debit card (Bank)\nAmerican Express Canada Credit Card (Bank)\nhttps://www.americanexpress.com/ca/en/credit-cards/all-cards/?intlink=ca-en-hp-product1-cm-personalcards-03242021" },
{ "3B6A00FF41424344324546474849", "Austria card - JCOP 31/36K" }, { "3B6A00FF41424344324546474849", "Austria card - JCOP 31/36K" },
{ "3B6A00FF4A434F50323156323331", "JCOP21 v2.3 Standard" }, { "3B6A00FF4A434F50323156323331", "JCOP21 v2.3 Standard" },
{ "3B6A00FF4A434F50343156323231", "JCOP41 Cards (not supported, but recognized by Classic Client)\nNHS hospital smartcard login key (HealthCare)" }, { "3B6A00FF4A434F50343156323231", "JCOP41 Cards (not supported, but recognized by Classic Client)\nNHS hospital smartcard login key (HealthCare)" },
@ -669,6 +681,7 @@ const static atr_t AtrTable[] = {
{ "3B6B00000031C064084403680F9000", "Credit card emitted by KBC Brussels, Belgium (Bank)\nAdvanzia Credit Card (Master Card gold), Germany (IDK if there is a difference between the german one and the other ones) (Bank)\nhttps://mastercard.gebuhrenfrei.com/\nItalian Intesa Sanpaolo Superflash Prepaid Mastercard (Bank)" }, { "3B6B00000031C064084403680F9000", "Credit card emitted by KBC Brussels, Belgium (Bank)\nAdvanzia Credit Card (Master Card gold), Germany (IDK if there is a difference between the german one and the other ones) (Bank)\nhttps://mastercard.gebuhrenfrei.com/\nItalian Intesa Sanpaolo Superflash Prepaid Mastercard (Bank)" },
{ "3B6B00000031C06408440376079000", "Blu American Express Credit Card (Bank)\nhttps://www.americanexpress.com/it/content/carta-blu/" }, { "3B6B00000031C06408440376079000", "Blu American Express Credit Card (Bank)\nhttps://www.americanexpress.com/it/content/carta-blu/" },
{ "3B6B00000031C064084403760F9000", "Maestro debit card, issued by Caixa Geral de Depositos (Bank)\nhttps://www.cgd.pt/Particulares/Cartoes/Cartoes-de-Debito/Pages/Cartao-Debito-Cauxautomatica-Maestro.aspx" }, { "3B6B00000031C064084403760F9000", "Maestro debit card, issued by Caixa Geral de Depositos (Bank)\nhttps://www.cgd.pt/Particulares/Cartoes/Cartoes-de-Debito/Pages/Cartao-Debito-Cauxautomatica-Maestro.aspx" },
{ "3B6B00000031C064084841080F9000", "Monizze card. Card use to pay only meal. (Other)\nhttp://www.monizze.be" },
{ "3B6B00000031C064131402000F9000", "UBA Card PREPAID (Bank)" }, { "3B6B00000031C064131402000F9000", "UBA Card PREPAID (Bank)" },
{ "3B6B00000031C0641F1801000F9000", "Portuguese Medical Association eID card (Cedula Profissional, Ordem dos Medicos, Portugal) (eID)\nhttp://www.omsul.pt/tabid/242/Default.aspx" }, { "3B6B00000031C0641F1801000F9000", "Portuguese Medical Association eID card (Cedula Profissional, Ordem dos Medicos, Portugal) (eID)\nhttp://www.omsul.pt/tabid/242/Default.aspx" },
{ "3B6B00000031C0641F270100079000", "SOCCARDRT (HealthCare)" }, { "3B6B00000031C0641F270100079000", "SOCCARDRT (HealthCare)" },
@ -692,7 +705,9 @@ const static atr_t AtrTable[] = {
{ "3B6B00000031C1640860321F079000", "NMRC Card (Transport)" }, { "3B6B00000031C1640860321F079000", "NMRC Card (Transport)" },
{ "3B6B00000031C1640860321F0F9000", "Fio bank, Mastercard, credit (Bank)\nhttps://www.fio.cz/bankovni-sluzby/platebni-karty/kreditni-karty" }, { "3B6B00000031C1640860321F0F9000", "Fio bank, Mastercard, credit (Bank)\nhttps://www.fio.cz/bankovni-sluzby/platebni-karty/kreditni-karty" },
{ "3B6B00000031C164086032200F9000", "Twisto (Bank)" }, { "3B6B00000031C164086032200F9000", "Twisto (Bank)" },
{ "3B6B00000031C16408603221079000", "DSK Bank Debit Mastercard (Bank)" },
{ "3B6B00000031C164087771300F9000", "Apple Card (from launch) (Bank)\nhttps://www.apple.com/apple-card/" }, { "3B6B00000031C164087771300F9000", "Apple Card (from launch) (Bank)\nhttps://www.apple.com/apple-card/" },
{ "3B6B00000031C16408777156079000", "American Express UK Euro ICC charge card (Bank)\nhttps://www.americanexpress.com/icc/cards/the-basic-international-currency-card.html" },
{ "3B6B00000031C164089862010F9000", "Sodexo Czech Gastro/Multipass (Other)\nhttps://www.sodexo.cz/" }, { "3B6B00000031C164089862010F9000", "Sodexo Czech Gastro/Multipass (Other)\nhttps://www.sodexo.cz/" },
{ "3B6B000020900000000000B0A2BD69", "Fudan FM1280 (JavaCard)" }, { "3B6B000020900000000000B0A2BD69", "Fudan FM1280 (JavaCard)" },
{ "3B6B0000426C756361726420344B42", "Blutronics Blucard 4K (Loyalty)\nhttp://blucard.blutronics.com" }, { "3B6B0000426C756361726420344B42", "Blutronics Blucard 4K (Loyalty)\nhttp://blucard.blutronics.com" },
@ -720,6 +735,7 @@ const static atr_t AtrTable[] = {
{ "3B6C00000F31C071D6643E6701015D84", "VISA GOLD or Maestro, issued by Swedbank Lithuania (Bank)\nVISA credit card, issued by HSBC Commercial Card UK (Bank)\nhttp://www.swedbank.lt/lt/pages/privatiems/auksine_kredito_kortele\nHSBC Commercial Card (UK) VISA\nCapital One UK Platinum MasterCard" }, { "3B6C00000F31C071D6643E6701015D84", "VISA GOLD or Maestro, issued by Swedbank Lithuania (Bank)\nVISA credit card, issued by HSBC Commercial Card UK (Bank)\nhttp://www.swedbank.lt/lt/pages/privatiems/auksine_kredito_kortele\nHSBC Commercial Card (UK) VISA\nCapital One UK Platinum MasterCard" },
{ "3B6C0000101010300000000000000000", "Datacard Group Aptura Development Card V1.1b" }, { "3B6C0000101010300000000000000000", "Datacard Group Aptura Development Card V1.1b" },
{ "3B6C0000426C756C6F676F6E20344B42", "eID Blutronics Blulogon 4K\nhttp://shop.blutronics.com/Prodotti.asp" }, { "3B6C0000426C756C6F676F6E20344B42", "eID Blutronics Blulogon 4K\nhttp://shop.blutronics.com/Prodotti.asp" },
{ "3B6C00004E5449433190560A4A030000", "Tsinghua Tongfang Company (Pay TV)" },
{ "3B6C00004E544943339051024A030000", "Topas TV (Pay TV)" }, { "3B6C00004E544943339051024A030000", "Topas TV (Pay TV)" },
{ "3B6C000080641134014873F741C08107", "Universal Electronic Card (UEC Russia) (eID)" }, { "3B6C000080641134014873F741C08107", "Universal Electronic Card (UEC Russia) (eID)" },
{ "3B6C0000806411650190730000008107", "Universal Electronic Card (UEC Russia) (eID)" }, { "3B6C0000806411650190730000008107", "Universal Electronic Card (UEC Russia) (eID)" },
@ -761,12 +777,7 @@ const static atr_t AtrTable[] = {
{ "3B6D00005744285746035062136568541F", "Card for decrypt encrypted tv channels made in china (Pay TV)" }, { "3B6D00005744285746035062136568541F", "Card for decrypt encrypted tv channels made in china (Pay TV)" },
{ "3B6D00005744296C808693D1271F13323D", "SCSTA (Transport)" }, { "3B6D00005744296C808693D1271F13323D", "SCSTA (Transport)" },
{ "3B6D00005744296C808693D603EE082A3D", "SCSTA (Transport)" }, { "3B6D00005744296C808693D603EE082A3D", "SCSTA (Transport)" },
{ "3B6D000057443641018693073037373633", "Watchdata USB Key (PKI)" }, { "3B6D000057443641018693............", "WatchData Proxkey (PKI)" },
{ "3B6D000057443641018693073131323235", "Watchdata Proxkey (PKI)\nhttps://www.watchdata.com/" },
{ "3B6D000057443641018693073231343431", "Watchdata USB Key (PKI)" },
{ "3B6D000057443641018693073231363432", "Watchdata USB Key (Other)" },
{ "3B6D000057443641018693073332353530", "Watchdata Proxkey (PKI)\nhttps://www.watchdata.com/" },
{ "3B6D0000574436410186930739........", "WatchData Proxkey with VID:PID as 0x163C:0x0417 (PKI)\nhttp://www.watchdata.com/class.php?id=19" },
{ "3B6D000080318065495301000183079000", "Yandex money world card (Bank)\nhttps://money.yandex.ru" }, { "3B6D000080318065495301000183079000", "Yandex money world card (Bank)\nhttps://money.yandex.ru" },
{ "3B6D000080318065495301030183079000", "MTS Money Bank Card (Bank)" }, { "3B6D000080318065495301030183079000", "MTS Money Bank Card (Bank)" },
{ "3B6D000080318065495302020183079000", "MasterCard SMP BANK (Bank)\nhttps://smpbank.ru/" }, { "3B6D000080318065495302020183079000", "MasterCard SMP BANK (Bank)\nhttps://smpbank.ru/" },
@ -797,6 +808,7 @@ const static atr_t AtrTable[] = {
{ "3B6E00000031807186654744240181839000", "MasterCard Card - Maximum - IS Bank / Turkey\nVisa Card - Axess - Akbank / Turkey" }, { "3B6E00000031807186654744240181839000", "MasterCard Card - Maximum - IS Bank / Turkey\nVisa Card - Axess - Akbank / Turkey" },
{ "3B6E00000031C0650AD702008271D68C6133", "Lloyds (Bank)" }, { "3B6E00000031C0650AD702008271D68C6133", "Lloyds (Bank)" },
{ "3B6E00000031C0650AD702008271D68C6137", "MasterCard credit card issued by Citadele bank (Latvia) including e-Talons (public transportation system) (Bank)" }, { "3B6E00000031C0650AD702008271D68C6137", "MasterCard credit card issued by Citadele bank (Latvia) including e-Talons (public transportation system) (Bank)" },
{ "3B6E00000031C0650AD702008271D68C6139", "Desjardins Interac Debit Card (Bank)\nhttps://www.desjardins.com/ca/personal/accounts-services/access-card/index.jsp" },
{ "3B6E00000031C0650AD702008271D68C615A", "mastercard (Bank)\nhttp://nickel.com" }, { "3B6E00000031C0650AD702008271D68C615A", "mastercard (Bank)\nhttp://nickel.com" },
{ "3B6E00000031C06554B601008471D68C612C", "Kazakhstan Centrcredit bank VISA electron card\nhttp://www.bcc.kz/en/" }, { "3B6E00000031C06554B601008471D68C612C", "Kazakhstan Centrcredit bank VISA electron card\nhttp://www.bcc.kz/en/" },
{ "3B6E00000031C06554B601008471D68C6131", "UK BARCLAYS VISA Connect Debit card.\nThe chip is used for the Chip&PIN application common for all UK-issued cards\nhttp://www.chipandpin.co.uk/" }, { "3B6E00000031C06554B601008471D68C6131", "UK BARCLAYS VISA Connect Debit card.\nThe chip is used for the Chip&PIN application common for all UK-issued cards\nhttp://www.chipandpin.co.uk/" },
@ -921,11 +933,12 @@ const static atr_t AtrTable[] = {
{ "3B6F00000031C173C8211064474D3133009000", "Bank card from the Commonwealth Bank of Australia (Bank)\nhttps://www.commbank.com.au/business/pds/cbb127_eftpos_int_v7.pdf" }, { "3B6F00000031C173C8211064474D3133009000", "Bank card from the Commonwealth Bank of Australia (Bank)\nhttps://www.commbank.com.au/business/pds/cbb127_eftpos_int_v7.pdf" },
{ "3B6F00000031C173C8211064474D3134009000", "bancomat Banca Popolare Milano + maestro debit card + rfid (Bank)" }, { "3B6F00000031C173C8211064474D3134009000", "bancomat Banca Popolare Milano + maestro debit card + rfid (Bank)" },
{ "3B6F00000031C173C8211064474D3331009000", "BBVA Antes Card (Spain) (VISA) prepaid card (Bank)\nhttps://www.bbva.es/eng/productos/ficha/tarjeta-antes-bbva/0T00000225" }, { "3B6F00000031C173C8211064474D3331009000", "BBVA Antes Card (Spain) (VISA) prepaid card (Bank)\nhttps://www.bbva.es/eng/productos/ficha/tarjeta-antes-bbva/0T00000225" },
{ "3B6F00000031C173C8211064474D3332009000", "td debit visa card (Bank)" }, { "3B6F00000031C173C8211064474D3332009000", "td debit visa card (Bank)\nScotiabank ScotiaCard Interac/Visa debit card (Bank)\nhttps://www.scotiabank.com/ca/en/personal/ways-to-bank/debit-credit-prepaid-cards/debit-cards/scotiacards.html" },
{ "3B6F00000031C173C8211064474D3338009000", "ING Direct Debit Card (Bank)" }, { "3B6F00000031C173C8211064474D3338009000", "ING Direct Debit Card (Bank)" },
{ "3B6F00000031C173C8211064474D3341009000", "Fineco debit card (Bancomat, Visa Debit) (Bank)\nhttps://finecobank.com/it/online/conto-e-carte/carte-e-bancomat/" }, { "3B6F00000031C173C8211064474D3341009000", "Fineco debit card (Bancomat, Visa Debit) (Bank)\nhttps://finecobank.com/it/online/conto-e-carte/carte-e-bancomat/" },
{ "3B6F00000031C173C8211064474D3435009000", "VISA card, issued by OP Financial Group, Finland (Bank)" }, { "3B6F00000031C173C8211064474D3435009000", "VISA card, issued by OP Financial Group, Finland (Bank)" },
{ "3B6F00000031C173C8211064474D3437009000", "Visa credit card, issued by Klarna (Bank) (Bank)\nhttps://www.klarna.com/se/kort/" }, { "3B6F00000031C173C8211064474D3437009000", "Visa credit card, issued by Klarna (Bank) (Bank)\nhttps://www.klarna.com/se/kort/" },
{ "3B6F00000031C173C821106457493036009000", "neat MasterCard (Bank)\nhttps://www.neatcommerce.com/" },
{ "3B6F00000031C173C821106457493131009000", "Banca Popolare Di Sondrio (IT) - Ateneo+ Card for University of Brescia (Bank)\nhttps://www.ateneopiu.it/home" }, { "3B6F00000031C173C821106457493131009000", "Banca Popolare Di Sondrio (IT) - Ateneo+ Card for University of Brescia (Bank)\nhttps://www.ateneopiu.it/home" },
{ "3B6F00000031C173C8211064574B3037009000", "NatWest VISA Debit card (Bank)\nhttps://personal.natwest.com/personal/current-accounts/select_account.html" }, { "3B6F00000031C173C8211064574B3037009000", "NatWest VISA Debit card (Bank)\nhttps://personal.natwest.com/personal/current-accounts/select_account.html" },
{ "3B6F00000031C173C8211064574B3133009000", "Carta HYPE MasterCard (Italy) (Bank)\nhttps://www.hype.it/\nRACC Master (Bank)\nhttps://www.racc.cat/targeta-racc-master" }, { "3B6F00000031C173C8211064574B3133009000", "Carta HYPE MasterCard (Italy) (Bank)\nhttps://www.hype.it/\nRACC Master (Bank)\nhttps://www.racc.cat/targeta-racc-master" },
@ -978,7 +991,7 @@ const static atr_t AtrTable[] = {
{ "3B6F00008031E06B04310502AF555555555555", "debit card (Bank)\nhttps://www.usaa.com/inet/wc/banking" }, { "3B6F00008031E06B04310502AF555555555555", "debit card (Bank)\nhttps://www.usaa.com/inet/wc/banking" },
{ "3B6F00008031E06B04310502D1555555555555", "Pockit Pre-Paid Mastercard (Contact Chip). (Bank)\nhttps://revolut.com/" }, { "3B6F00008031E06B04310502D1555555555555", "Pockit Pre-Paid Mastercard (Contact Chip). (Bank)\nhttps://revolut.com/" },
{ "3B6F00008031E06B04310502D6555555555555", "Bank IN - Slovenian bank (Bank)\nhttps://www.bankain.si/BIN/vstopna.seam" }, { "3B6F00008031E06B04310502D6555555555555", "Bank IN - Slovenian bank (Bank)\nhttps://www.bankain.si/BIN/vstopna.seam" },
{ "3B6F00008031E06B04520502BB555555555555", "AlfaBROU - Mastercard (prepaid card emitted by Banco Republica - Uruguay) (Bank)\nhttps://www.brou.com.uy/personas/tarjetas/prepaga-alfabrou" }, { "3B6F00008031E06B04520502BB555555555555", "AlfaBROU - Mastercard (prepaid card emited by Banco Republica - Uruguay) (Bank)\nhttps://www.brou.com.uy/personas/tarjetas/prepaga-alfabrou" },
{ "3B6F00008031E06B04520502FD555555555555", "C6 Bank Mastercard Global Account (Bank)\nhttps://www.c6bank.com.br/conta-global\nC6 Bank Mastercard Brazil Account (Bank)\nhttps://www.c6bank.com.br/nossos-produtos" }, { "3B6F00008031E06B04520502FD555555555555", "C6 Bank Mastercard Global Account (Bank)\nhttps://www.c6bank.com.br/conta-global\nC6 Bank Mastercard Brazil Account (Bank)\nhttps://www.c6bank.com.br/nossos-produtos" },
{ "3B6F00008031E06B04520502FE555555555555", "CITIBanamex 'Perfiles' debit card (Bank)\nhttps://www.banamex.com/es/personas/cuentas/cuenta-perfiles.html" }, { "3B6F00008031E06B04520502FE555555555555", "CITIBanamex 'Perfiles' debit card (Bank)\nhttps://www.banamex.com/es/personas/cuentas/cuenta-perfiles.html" },
{ "3B6F00008031E06B0505050280555555555555", "Banamex cuenta perfiles (Bank)\nhttp://banamex.com" }, { "3B6F00008031E06B0505050280555555555555", "Banamex cuenta perfiles (Bank)\nhttp://banamex.com" },
@ -1027,11 +1040,15 @@ const static atr_t AtrTable[] = {
{ "3B6F0000805A08060820022B934564EC829000", "OPUS Card (Transport)\nhttp://carteopus.info/" }, { "3B6F0000805A08060820022B934564EC829000", "OPUS Card (Transport)\nhttp://carteopus.info/" },
{ "3B6F0000805A08060820022B9346A2C5829000", "Carte OPUS / OPUS Card - Transport Montreal, Laval, Longueuil, Quebec (Transport)\nhttp://carteopus.info/" }, { "3B6F0000805A08060820022B9346A2C5829000", "Carte OPUS / OPUS Card - Transport Montreal, Laval, Longueuil, Quebec (Transport)\nhttp://carteopus.info/" },
{ "3B6F0000805A08060820022B9349A83F829000", "Montreal OPUS Transportation Card for the STM, STL, RTM and RTL (Transport)\nhttp://www.stm.info/en/info/fares/opus-cards-and-other-fare-media" }, { "3B6F0000805A08060820022B9349A83F829000", "Montreal OPUS Transportation Card for the STM, STL, RTM and RTL (Transport)\nhttp://www.stm.info/en/info/fares/opus-cards-and-other-fare-media" },
{ "3B6F0000805A080608201223C1D95A43829000", "Transport card for the Quebec Province in Canada, namely the ARTM Transport Agency and others... (Transport)\nhttps://opusenligne.ca/" },
{ "3B6F0000805A080608201223C1E2F6C6829000", "STM Opus Card - Montreal Transit Pay Card (Other)\nhttps://en.wikipedia.org/wiki/OPUS_card" }, { "3B6F0000805A080608201223C1E2F6C6829000", "STM Opus Card - Montreal Transit Pay Card (Other)\nhttps://en.wikipedia.org/wiki/OPUS_card" },
{ "3B6F0000805A080608201223C1EA7F50829000", "Montreal transport Opus Card (Transport)" }, { "3B6F0000805A080608201223C1EA7F50829000", "Montreal transport Opus Card (Transport)" },
{ "3B6F0000805A080608201223C1ECE24B829000", "STM (Transport)\nhttp://www.stm.info" }, { "3B6F0000805A080608201223C1ECE24B829000", "STM (Transport)\nhttp://www.stm.info" },
{ "3B6F0000805A080608201223C202795D829000", "OPUS is card for storing public transit passes and tickets (Transport)\nhttps://opusenligne.ca/" }, { "3B6F0000805A080608201223C202795D829000", "OPUS is card for storing public transit passes and tickets (Transport)\nhttps://opusenligne.ca/" },
{ "3B6F0000805A080608201223C2036347829000", "OPUS Card RTC Quebec's Bus system (Canada) (Transport)\nhttps://opusenligne.ca" }, { "3B6F0000805A080608201223C2036347829000", "OPUS Card RTC Quebec's Bus system (Canada) (Transport)\nhttps://opusenligne.ca" },
{ "3B6F0000805A080608201223C204D07F829000", "OPUS Card (Transport)\nhttps://en.wikipedia.org/wiki/OPUS_card" },
{ "3B6F0000805A080608201223C21113A6829000", "OPUS (Montreal and Quebec transport card) (Transport) (Transport)\nhttps://www.stm.info/en/info/fares/opus-cards-and-other-fare-media/opus-card" },
{ "3B6F0000805A080608201223C21290FD829000", "OPUS Montreal Societe des Transports de Montreal Metro and Bus card. (Transport)\nhttps://www.stm.info/en/info/fares/opus-cards-and-other-fare-media" },
{ "3B6F0000805A0A010120031103DCB31B829000", "Card Transport 'Lignes d'Azur' of 'Metropole Nice Cote d'Azur'" }, { "3B6F0000805A0A010120031103DCB31B829000", "Card Transport 'Lignes d'Azur' of 'Metropole Nice Cote d'Azur'" },
{ "3B6F0000805A0A01012003119361D7D7829000", "Carte Tecely (Reseau TCL: metro, tramway, bus et funiculaire de Lyon) (Idemia)" }, { "3B6F0000805A0A01012003119361D7D7829000", "Carte Tecely (Reseau TCL: metro, tramway, bus et funiculaire de Lyon) (Idemia)" },
{ "3B6F0000805A0A0102200311........829000", "Card << Oura ! >> of region Rhone-Alpes, Calypso standard (TER, Transisere)" }, { "3B6F0000805A0A0102200311........829000", "Card << Oura ! >> of region Rhone-Alpes, Calypso standard (TER, Transisere)" },
@ -1082,7 +1099,7 @@ const static atr_t AtrTable[] = {
{ "3B6F0000805A28114210122B27558E85829000", "Stif Navigo Pass (French Syndicate of Transport in Ile de France) (Transport)" }, { "3B6F0000805A28114210122B27558E85829000", "Stif Navigo Pass (French Syndicate of Transport in Ile de France) (Transport)" },
{ "3B6F0000805A28114210122B275DCF41829000", "Pass navigo (Transport)" }, { "3B6F0000805A28114210122B275DCF41829000", "Pass navigo (Transport)" },
{ "3B6F0000805A28114210122B276132D6829000", "Navigo (Transport)" }, { "3B6F0000805A28114210122B276132D6829000", "Navigo (Transport)" },
{ "3B6F0000805A28114210122B2764E735829000", "Navigo pass, Paris (France) transport network (https://en.wikipedia.org/wiki/Navigo_pass) (Transport)" }, { "3B6F0000805A28114210122B2764E735829000", "Navigo pass, Paris (France) trasport network (https://en.wikipedia.org/wiki/Navigo_pass) (Transport)" },
{ "3B6F0000805A28114210122B276562F7829000", "French NAVIGO Card (simple Navigo model, not annual or Imagin'R) (Transport)" }, { "3B6F0000805A28114210122B276562F7829000", "French NAVIGO Card (simple Navigo model, not annual or Imagin'R) (Transport)" },
{ "3B6F0000805A28114210122B276780D9829000", "Navigo (Transport)\nhttps://www.navigo.fr/" }, { "3B6F0000805A28114210122B276780D9829000", "Navigo (Transport)\nhttps://www.navigo.fr/" },
{ "3B6F0000805A28114210122B276D6BB5829000", "Navigo (Transport)" }, { "3B6F0000805A28114210122B276D6BB5829000", "Navigo (Transport)" },
@ -1101,6 +1118,7 @@ const static atr_t AtrTable[] = {
{ "3B6F0000805A28130210122B03EF5400829000", "Korrigo Ter French card for train travels (Transport)\nhttps://www.ter.sncf.com/bretagne/offres/carte-korrigo" }, { "3B6F0000805A28130210122B03EF5400829000", "Korrigo Ter French card for train travels (Transport)\nhttps://www.ter.sncf.com/bretagne/offres/carte-korrigo" },
{ "3B6F0000805A28130210122B03F7E432829000", "KorriGo, smart transport card in France region Brittany (Transport)\nhttps://www.ter.sncf.com/bretagne/offres/carte-korrigo" }, { "3B6F0000805A28130210122B03F7E432829000", "KorriGo, smart transport card in France region Brittany (Transport)\nhttps://www.ter.sncf.com/bretagne/offres/carte-korrigo" },
{ "3B6F0000805A28130210122B03F80BC3829000", "Korrigo Card (Transport in Rennes Area in France ) (Transport)\nhttps://www.star.fr/titres-tarifs/carte-korrigo/" }, { "3B6F0000805A28130210122B03F80BC3829000", "Korrigo Card (Transport in Rennes Area in France ) (Transport)\nhttps://www.star.fr/titres-tarifs/carte-korrigo/" },
{ "3B6F0000805A28130210122B7500559A829000", "Contact card to handle personal travel tickets in the Britany area. Used by several travel operators like SNCF TER Bretagne, STAR in Rennes, BIBUS in Brest,.... (Transport)" },
{ "3B6F0000805A28130210122B75021B8A829000", "KorriGo, smart transport card in France region Brittany (Transport)\nhttps://www.ter.sncf.com/bretagne/offres/carte-korrigo" }, { "3B6F0000805A28130210122B75021B8A829000", "KorriGo, smart transport card in France region Brittany (Transport)\nhttps://www.ter.sncf.com/bretagne/offres/carte-korrigo" },
{ "3B6F0000805A28130210122B9292E642829000", "Transport card in cote d'or France (mobigo)" }, { "3B6F0000805A28130210122B9292E642829000", "Transport card in cote d'or France (mobigo)" },
{ "3B6F0000805A28130210122B9292E829829000", "French transport card of the city of Dijon and Cote d'or department. (Transport)\nhttps://www.viamobigo.fr/fr/acheter-mes-titres-de-transport-mobigo-en-cote-dor/176" }, { "3B6F0000805A28130210122B9292E829829000", "French transport card of the city of Dijon and Cote d'or department. (Transport)\nhttps://www.viamobigo.fr/fr/acheter-mes-titres-de-transport-mobigo-en-cote-dor/176" },
@ -1135,6 +1153,7 @@ const static atr_t AtrTable[] = {
{ "3B6F0000805A2C23EA00030503BD09B2829000", "TEC MoBIB Transportation Card (Transport)\nhttps://www.infotec.be/fr-be/acheteruntitre/mobib.aspx" }, { "3B6F0000805A2C23EA00030503BD09B2829000", "TEC MoBIB Transportation Card (Transport)\nhttps://www.infotec.be/fr-be/acheteruntitre/mobib.aspx" },
{ "3B6F0000805A2C23EA00030503BF9E2B829000", "MOBIB - TEC (Transport)\nhttps://www.infotec.be/fr-be/acheteruntitre/mobib.aspx" }, { "3B6F0000805A2C23EA00030503BF9E2B829000", "MOBIB - TEC (Transport)\nhttps://www.infotec.be/fr-be/acheteruntitre/mobib.aspx" },
{ "3B6F0000805A2D0608101002782BB4A4829000", "Lisboa Viva, Lisbon public transport card (Transport)\nhttps://www.portalviva.pt/" }, { "3B6F0000805A2D0608101002782BB4A4829000", "Lisboa Viva, Lisbon public transport card (Transport)\nhttps://www.portalviva.pt/" },
{ "3B6F0000805A2D060810100278324D6F829000", "Lisboa Viva card, public transport card of Lisbon (Portugal) (Transport)\nhttps://www.portalviva.pt" },
{ "3B6F0000805A2D06081010027835EDCE829000", "Lisbon Transportation SmartCard (Transport)" }, { "3B6F0000805A2D06081010027835EDCE829000", "Lisbon Transportation SmartCard (Transport)" },
{ "3B6F0000805A2D06081010027848BBCC829000", "Lisbon Metro Monthly Student Pass (Transport)\nhttps://www.metrolisboa.pt/" }, { "3B6F0000805A2D06081010027848BBCC829000", "Lisbon Metro Monthly Student Pass (Transport)\nhttps://www.metrolisboa.pt/" },
{ "3B6F0000805A3407061500017917A7E2829000", "Rav-Kav multi-line travel ticket used in the public transportation system in Israel (Transport)\nhttps://www.gov.il/en/departments/guides/multi_line_card" }, { "3B6F0000805A3407061500017917A7E2829000", "Rav-Kav multi-line travel ticket used in the public transportation system in Israel (Transport)\nhttps://www.gov.il/en/departments/guides/multi_line_card" },
@ -1144,9 +1163,11 @@ const static atr_t AtrTable[] = {
{ "3B6F0000805A3C0608140101C3805E38829000", "Lisboa VIVA - Lisbon public transport card (Transport)\nhttps://www.portalviva.pt/" }, { "3B6F0000805A3C0608140101C3805E38829000", "Lisboa VIVA - Lisbon public transport card (Transport)\nhttps://www.portalviva.pt/" },
{ "3B6F0000805A3C1142141001274AC890829000", "Gemalto Celego G1 (Transport)" }, { "3B6F0000805A3C1142141001274AC890829000", "Gemalto Celego G1 (Transport)" },
{ "3B6F0000805A3C114214100127A46D02829000", "Navigo decouverte Paris (Transport)\nhttp://www.navigo.fr/titres/le-forfait-navigo-semaine-presentation/" }, { "3B6F0000805A3C114214100127A46D02829000", "Navigo decouverte Paris (Transport)\nhttp://www.navigo.fr/titres/le-forfait-navigo-semaine-presentation/" },
{ "3B6F0000805A3C114214100127B3C81B829000", "Transport card for Paris (France) and its region. Market name is Navigo (Transport)" },
{ "3B6F0000805A3C1142141001C12954D4829000", "Public transportation card (navigo) for Paris and Ile-de-France region, France (Transport)\nhttps://www.iledefrance-mobilites.fr/en/tickets-fares/detail/navigo-monthly-ticket" }, { "3B6F0000805A3C1142141001C12954D4829000", "Public transportation card (navigo) for Paris and Ile-de-France region, France (Transport)\nhttps://www.iledefrance-mobilites.fr/en/tickets-fares/detail/navigo-monthly-ticket" },
{ "3B6F0000805A3C1142141001C140E819829000", "France Ile de France Public Transport Card (Transport)" }, { "3B6F0000805A3C1142141001C140E819829000", "France Ile de France Public Transport Card (Transport)" },
{ "3B6F0000805A3C1142141001C1523E9D829000", "navigo (Transport)" }, { "3B6F0000805A3C1142141001C1523E9D829000", "navigo (Transport)" },
{ "3B6F0000805A3C1142141001C17B89D9829000", "Navigo Easy (Paris Calypso transport card) (Transport)\nhttps://www.iledefrance-mobilites.fr/titres-et-tarifs/supports/passe-navigo-easy" },
{ "3B6F0000805A3C1142141001C17BC3D4829000", "Navigo easy -- French (Paris region) transport card (Transport)" }, { "3B6F0000805A3C1142141001C17BC3D4829000", "Navigo easy -- French (Paris region) transport card (Transport)" },
{ "3B6F0000805A3C1142141001C17BC993829000", "Navigo Easy (Transport)\nhttps://www.ratp.fr/titres-et-tarifs/passe-navigo-easy" }, { "3B6F0000805A3C1142141001C17BC993829000", "Navigo Easy (Transport)\nhttps://www.ratp.fr/titres-et-tarifs/passe-navigo-easy" },
{ "3B6F0000805A3C1142141001C17DA8CA829000", "Navigo Easy (France) transport card (Transport)\nhttps://www.ratp.fr/titres-et-tarifs/passe-navigo-easy" }, { "3B6F0000805A3C1142141001C17DA8CA829000", "Navigo Easy (France) transport card (Transport)\nhttps://www.ratp.fr/titres-et-tarifs/passe-navigo-easy" },
@ -1166,6 +1187,7 @@ const static atr_t AtrTable[] = {
{ "3B6F0000805A3D0706150101792CB636829000", "RavKav (Transport)" }, { "3B6F0000805A3D0706150101792CB636829000", "RavKav (Transport)" },
{ "3B6F0000805A3D23C41501027937D7AE829000", "MOBIB - Brussels (Transport)\nhttps://www.stib-mivb.be/article.html?_guid=d02c7fb6-3e9c-3810-248e-eec4ee5ebc8c&l=fr" }, { "3B6F0000805A3D23C41501027937D7AE829000", "MOBIB - Brussels (Transport)\nhttps://www.stib-mivb.be/article.html?_guid=d02c7fb6-3e9c-3810-248e-eec4ee5ebc8c&l=fr" },
{ "3B6F0000805A3D23C41501027949789C829000", "MOBIB basic (Transport)\nhttp://www.stib-mivb.be/article.html?_guid=30af0085-2483-3410-5394-a71daf08acd1&l=en#contentBodyList1" }, { "3B6F0000805A3D23C41501027949789C829000", "MOBIB basic (Transport)\nhttp://www.stib-mivb.be/article.html?_guid=30af0085-2483-3410-5394-a71daf08acd1&l=en#contentBodyList1" },
{ "3B6F0000805A3D23C415010279748A25829000", "Mobib (Brussels transport card) for the STIB-MIVB network (Transport)\nhttps://www.stib-mivb.be/article.html?_guid=d02c7fb6-3e9c-3810-248e-eec4ee5ebc8c&l=fr" },
{ "3B6F0000805A434F4C44000000000000829000", "LBB Berlin, MasterCard (ADAC branding?)" }, { "3B6F0000805A434F4C44000000000000829000", "LBB Berlin, MasterCard (ADAC branding?)" },
{ "3B6F0000805A4880C1205001AEC00295829000", "Calypso SAM C1 (Transport)" }, { "3B6F0000805A4880C1205001AEC00295829000", "Calypso SAM C1 (Transport)" },
{ "3B6F0000806645460138180353023110829000", "Fabrica Nacional de Moneda y Timbre FNMT WG10\nhttp://www.fnmt.es/es/html/tage/fichaTarjeta/fp1_ta_01.asp" }, { "3B6F0000806645460138180353023110829000", "Fabrica Nacional de Moneda y Timbre FNMT WG10\nhttp://www.fnmt.es/es/html/tage/fichaTarjeta/fp1_ta_01.asp" },
@ -1212,6 +1234,7 @@ const static atr_t AtrTable[] = {
{ "3B7812000054C403008FF19000", "Skylink irdeto from Towercom a.s. company\nirdeto card for the ORF (Austrian national public television) HD channels" }, { "3B7812000054C403008FF19000", "Skylink irdeto from Towercom a.s. company\nirdeto card for the ORF (Austrian national public television) HD channels" },
{ "3B7812000065C405008FF19000", "Digiturk Cryptoworks" }, { "3B7812000065C405008FF19000", "Digiturk Cryptoworks" },
{ "3B7812000065C405058FF19000", "Turkie Digiturk Cryptoworks" }, { "3B7812000065C405058FF19000", "Turkie Digiturk Cryptoworks" },
{ "3B7812000065C405FF8FF19000", "CRYPTOWORKS , CAID:0D22 ISSUER:TIVIDI id:04, bios: v5, pin: unknown, mfid:3F6A (Pay TV)" },
{ "3B78120000A0C403068FF19000", "ORF Digital (Irdeto/Cryptoworks) (pay tv)" }, { "3B78120000A0C403068FF19000", "ORF Digital (Irdeto/Cryptoworks) (pay tv)" },
{ "3B78120000A0C403078FF19000", "IRDETO-Smartcard for crytoworks for austrian television (ORF), DVB-s" }, { "3B78120000A0C403078FF19000", "IRDETO-Smartcard for crytoworks for austrian television (ORF), DVB-s" },
{ "3B78120000A0C406008FF19000", "Cryptoworks/Nagravision decoding card" }, { "3B78120000A0C406008FF19000", "Cryptoworks/Nagravision decoding card" },
@ -1263,7 +1286,7 @@ const static atr_t AtrTable[] = {
{ "3B7A9600008065A20101013D72D643", "AGH University of Science and Technology (Poland) - Student Identity Card (ELS) (eID)\nWarsaw University of Technology (Poland) (eID)" }, { "3B7A9600008065A20101013D72D643", "AGH University of Science and Technology (Poland) - Student Identity Card (ELS) (eID)\nWarsaw University of Technology (Poland) (eID)" },
{ "3B7A9600008065A201200100303D72D641", "Oman eID (eID)" }, { "3B7A9600008065A201200100303D72D641", "Oman eID (eID)" },
{ "3B7A9600008065A20120013D72D641", "Oman eID (eID)" }, { "3B7A9600008065A20120013D72D641", "Oman eID (eID)" },
{ "3B7A9700008065B08520040272D641", "OMAN EID CARD (eID)" }, { "3B7A9700008065B08520040272D64.", "OMAN EID CARD (eID)" },
{ "3B7B..000080620.515646696E454944", "Setec SetCOS 5.1.0" }, { "3B7B..000080620.515646696E454944", "Setec SetCOS 5.1.0" },
{ "3B7B..00008065B083......83009000", "IDClassic 3XX Cards (without MPCOS Applet - FIPS)" }, { "3B7B..00008065B083......83009000", "IDClassic 3XX Cards (without MPCOS Applet - FIPS)" },
{ "3B7B11000031FE45436F6D624F532000", "Debit card emmited by Societe Generale Morocco (Bank)" }, { "3B7B11000031FE45436F6D624F532000", "Debit card emmited by Societe Generale Morocco (Bank)" },
@ -1615,6 +1638,7 @@ const static atr_t AtrTable[] = {
{ "3B88800100000000008187000F", "ING Bank Card (Bank)\nhttps://www.ing.nl/particulier/betalen/passen/betaalpas/contactloos-betalen-met-uw-betaalpas/index.html" }, { "3B88800100000000008187000F", "ING Bank Card (Bank)\nhttps://www.ing.nl/particulier/betalen/passen/betaalpas/contactloos-betalen-met-uw-betaalpas/index.html" },
{ "3B888001000000000081911009", "Trenitalia (Italy) fidelity card 'CartaFreccia' (RFID)" }, { "3B888001000000000081911009", "Trenitalia (Italy) fidelity card 'CartaFreccia' (RFID)" },
{ "3B88800100000000038191001A", "Italian healthcare card (TS) National Service Card (CNS) NFC Interface (eID)" }, { "3B88800100000000038191001A", "Italian healthcare card (TS) National Service Card (CNS) NFC Interface (eID)" },
{ "3B888001000000001171710018", "Contactless card to handle personal travel tickets in the Britany area. Used by several travel operators like SNCF TER Bretagne, STAR in Rennes, BIBUS in Brest,.... (Transport)" },
{ "3B888001000000001181810018", "Rav Kav (Transport)\nhttps://ravkavonline.co.il/he/" }, { "3B888001000000001181810018", "Rav Kav (Transport)\nhttps://ravkavonline.co.il/he/" },
{ "3B88800100000000338181003A", "Interparking MOBIB basic - RFID/Smartcard car park and car wash token" }, { "3B88800100000000338181003A", "Interparking MOBIB basic - RFID/Smartcard car park and car wash token" },
{ "3B88800100000000338191002A", "Regional services for Lombardy (Italy) (Other)\nhttp://www.crs.regione.lombardia.it/" }, { "3B88800100000000338191002A", "Regional services for Lombardy (Italy) (Other)\nhttp://www.crs.regione.lombardia.it/" },
@ -1638,6 +1662,7 @@ const static atr_t AtrTable[] = {
{ "3B888001040200200071C140DF", "Seoul Citypass+ T-Money Card" }, { "3B888001040200200071C140DF", "Seoul Citypass+ T-Money Card" },
{ "3B8880011000000000817000E8", "Tap&Go MasterCard Sim Card (Bank)\nhttps://www.tapngo.com.hk" }, { "3B8880011000000000817000E8", "Tap&Go MasterCard Sim Card (Bank)\nhttps://www.tapngo.com.hk" },
{ "3B88800111000011008184000C", "OCBC bank card (Bank)" }, { "3B88800111000011008184000C", "OCBC bank card (Bank)" },
{ "3B888001110000113381A38098", "casatramway rechargeable card (Transport)\nhttps://www.casatramway.ma/" },
{ "3B88800111000011778183007C", "Passport of citizen of Ukraine, Passport of citizen of Ukraine for traveling abroad (passport)" }, { "3B88800111000011778183007C", "Passport of citizen of Ukraine, Passport of citizen of Ukraine for traveling abroad (passport)" },
{ "3B88800111223344808171003D", "FIME Card Emulator (Other)\nhttps://www.fime.com/products/terminal-integration/savvi.html" }, { "3B88800111223344808171003D", "FIME Card Emulator (Other)\nhttps://www.fime.com/products/terminal-integration/savvi.html" },
{ "3B8880011BE1F35E11778100B9", "Uruguyan persona ID. Nowadays a eID. (eID)\nhttps://www.gub.uy/agencia-gobierno-electronico-sociedad-informacion-conocimiento/firma-digital/es-cedula-identidad-digital" }, { "3B8880011BE1F35E11778100B9", "Uruguyan persona ID. Nowadays a eID. (eID)\nhttps://www.gub.uy/agencia-gobierno-electronico-sociedad-informacion-conocimiento/firma-digital/es-cedula-identidad-digital" },
@ -1646,6 +1671,7 @@ const static atr_t AtrTable[] = {
{ "3B8880011CF0E111F771850016", "CEPAS Card (Concession card issued by Land Transport Authority Singapore) (Transport)" }, { "3B8880011CF0E111F771850016", "CEPAS Card (Concession card issued by Land Transport Authority Singapore) (Transport)" },
{ "3B88800130415654000000077D", "Avtor ID Key (eID)\nhttp://avtor.ua/" }, { "3B88800130415654000000077D", "Avtor ID Key (eID)\nhttp://avtor.ua/" },
{ "3B888001304C47127783D50001", "elesec - TCOS 3.0 Signature Card (eID)\nhttps://www.telesec.de/de/tcos/support/downloadbereich/category/28-leistungsbeschreibung" }, { "3B888001304C47127783D50001", "elesec - TCOS 3.0 Signature Card (eID)\nhttps://www.telesec.de/de/tcos/support/downloadbereich/category/28-leistungsbeschreibung" },
{ "3B88800130ABAB017781B70079", "Italian healtcare card (TS) National Service Card (CNS) (HealthCare)" },
{ "3B88800131CCCC017781C1000E", "Ideal v 1.4 (Transport)" }, { "3B88800131CCCC017781C1000E", "Ideal v 1.4 (Transport)" },
{ "3B88800131CCCC017783A1006C", "Chile RUT (eID)" }, { "3B88800131CCCC017783A1006C", "Chile RUT (eID)" },
{ "3B88800131F35E110081950090", "Venez_Omnikey" }, { "3B88800131F35E110081950090", "Venez_Omnikey" },
@ -1698,6 +1724,7 @@ const static atr_t AtrTable[] = {
{ "3B898001434C616972653220363C", "Fidor Smartcard Mastercard/Maestro (Bank)\nhttps://www.fidor.eu" }, { "3B898001434C616972653220363C", "Fidor Smartcard Mastercard/Maestro (Bank)\nhttps://www.fidor.eu" },
{ "3B898001434C616972653320363D", "MasterCard with PayPass issued by Commerbank AG (Germany) (Bank)\nhttps://www.commerzbank.de/portal/de/privatkunden/produkte/bezahlen/kreditkarten/mastercard-classic/mastercardclassic.html" }, { "3B898001434C616972653320363D", "MasterCard with PayPass issued by Commerbank AG (Germany) (Bank)\nhttps://www.commerzbank.de/portal/de/privatkunden/produkte/bezahlen/kreditkarten/mastercard-classic/mastercardclassic.html" },
{ "3B898001454D5620303320200673", "Lufthansa Miles & More Gold MasterCard PayPass (old one)\nFound a reference pointing to NXP\nhttp://www.usingrfid.com/news/read.asp?lc=l17607hx1500zk" }, { "3B898001454D5620303320200673", "Lufthansa Miles & More Gold MasterCard PayPass (old one)\nFound a reference pointing to NXP\nhttp://www.usingrfid.com/news/read.asp?lc=l17607hx1500zk" },
{ "3B8980014550434F5356352E3936", "EPCOSV5.9 (eID)" },
{ "3B8980014A434F5032343252324A", "NXP JCOP J3D" }, { "3B8980014A434F5032343252324A", "NXP JCOP J3D" },
{ "3B8980014A434F5032343252334B", "Feitian ePass FIDO-NFC (passport)\nhttps://ftsafe.com/products/FIDO/NFC" }, { "3B8980014A434F5032343252334B", "Feitian ePass FIDO-NFC (passport)\nhttps://ftsafe.com/products/FIDO/NFC" },
{ "3B8980014A434F5033315632324A", "JCOP 31 v22 72K (with Mifare 1K emulation) - RFID I/F" }, { "3B8980014A434F5033315632324A", "JCOP 31 v22 72K (with Mifare 1K emulation) - RFID I/F" },
@ -1775,6 +1802,7 @@ const static atr_t AtrTable[] = {
{ "3B8B8001209000000000001614CDAADF", "JCOP 41 IBM card for Guizhou Normal University (JavaCard)" }, { "3B8B8001209000000000001614CDAADF", "JCOP 41 IBM card for Guizhou Normal University (JavaCard)" },
{ "3B8B800120900000000000C3A4CC0918", "ID card (Other)" }, { "3B8B800120900000000000C3A4CC0918", "ID card (Other)" },
{ "3B8B80012A26A7A10C804100000709C3", "T-Mobilitat (Transport)\nhttps://t-mobilitat.cat/" }, { "3B8B80012A26A7A10C804100000709C3", "T-Mobilitat (Transport)\nhttps://t-mobilitat.cat/" },
{ "3B8B8001474841204A32343120503158", "Republic of Ghana eID (eID)\nhttps://nia.gov.gh/" },
{ "3B8B80014E58502D4E46432032000038", "TouchandTravel Touchpoint NFC-Card.\nTrain-Station in Berlin. Use a NFC-compliant phone to check in for a ticket." }, { "3B8B80014E58502D4E46432032000038", "TouchandTravel Touchpoint NFC-Card.\nTrain-Station in Berlin. Use a NFC-compliant phone to check in for a ticket." },
{ "3B8B800150333038473050335F31302B", "Indonesian ektp (eID)" }, { "3B8B800150333038473050335F31302B", "Indonesian ektp (eID)" },
{ "3B8B8001536F6C6F4B65792074617027", "Solokeys Solo Tap: 2FA device with NFC (Other)\nhttps://solokeys.com/products/solo-tap-usb-a-preorder?variant=27688204271680" }, { "3B8B8001536F6C6F4B65792074617027", "Solokeys Solo Tap: 2FA device with NFC (Other)\nhttps://solokeys.com/products/solo-tap-usb-a-preorder?variant=27688204271680" },
@ -1853,9 +1881,11 @@ const static atr_t AtrTable[] = {
{ "3B8C800150C110BBA9000000009171710F", "Divia card (passport)" }, { "3B8C800150C110BBA9000000009171710F", "Divia card (passport)" },
{ "3B8C800150C11BA3F10000000091717144", "Tramway (PKI)" }, { "3B8C800150C11BA3F10000000091717144", "Tramway (PKI)" },
{ "3B8C800150C14164E3000000000071715A", "Navigo Annuel (France) (Transport)\nhttps://www.iledefrance-mobilites.fr/titres-et-tarifs/detail/forfait-navigo-annuel" }, { "3B8C800150C14164E3000000000071715A", "Navigo Annuel (France) (Transport)\nhttps://www.iledefrance-mobilites.fr/titres-et-tarifs/detail/forfait-navigo-annuel" },
{ "3B8C800150C14CFD23000000000071710E", "Navigo (Transport)\nhttps://www.iledefrance-mobilites.fr/" },
{ "3B8C800150C16A347200000000007171B0", "Navigo pass (RATP) (Transport)\nhttp://www.navigo.fr/" }, { "3B8C800150C16A347200000000007171B0", "Navigo pass (RATP) (Transport)\nhttp://www.navigo.fr/" },
{ "3B8C800150C17B55BA0000000000717108", "Navigo Easy (Paris public transportation) (Transport)\nhttps://parisbytrain.com/navigo-easy/" }, { "3B8C800150C17B55BA0000000000717108", "Navigo Easy (Paris public transportation) (Transport)\nhttps://parisbytrain.com/navigo-easy/" },
{ "3B8C800150C17DA8CA0000000000717183", "Navigo Easy (France) transport card (Transport)\nhttps://www.ratp.fr/titres-et-tarifs/passe-navigo-easy" }, { "3B8C800150C17DA8CA0000000000717183", "Navigo Easy (France) transport card (Transport)\nhttps://www.ratp.fr/titres-et-tarifs/passe-navigo-easy" },
{ "3B8C800150C2B936860000000000717196", "Passe Navigo (Transport)\nhttps://www.iledefrance-mobilites.fr/titres-et-tarifs/supports/passe-navigo-decouverte" },
{ "3B8C800150C7251C5A00000011F781811F", "MOBIB Belgian public transport Card (Transport)\nhttps://mobib.be/fr.html" }, { "3B8C800150C7251C5A00000011F781811F", "MOBIB Belgian public transport Card (Transport)\nhttps://mobib.be/fr.html" },
{ "3B8C800150CA24513E00000011F781813A", "belgian mobib transportation card (Transport)" }, { "3B8C800150CA24513E00000011F781813A", "belgian mobib transportation card (Transport)" },
{ "3B8C800150CBFB077E000000008081E1F4", "Samsung Digital Center in Seul Access ID card for guests (eID)" }, { "3B8C800150CBFB077E000000008081E1F4", "Samsung Digital Center in Seul Access ID card for guests (eID)" },
@ -1892,6 +1922,7 @@ const static atr_t AtrTable[] = {
{ "3B8D80010073C80013645437433500900045", "Student ID card in Poland (eID)" }, { "3B8D80010073C80013645437433500900045", "Student ID card in Poland (eID)" },
{ "3B8D80010073C80013645437443300900044", "master cRD (Bank)\nTD MasterCard\nTangerine MasterCard" }, { "3B8D80010073C80013645437443300900044", "master cRD (Bank)\nTD MasterCard\nTangerine MasterCard" },
{ "3B8D80010073C80013645437473100900045", "Tangerine ATM/ABM Card" }, { "3B8D80010073C80013645437473100900045", "Tangerine ATM/ABM Card" },
{ "3B8D800100851410108501112002759000CF", "Sahl Payment Card (Other)\nhttps://www.english.sahlpay.app/" },
{ "3B8D80010D788084020073C840130090FFF8", "Nokia 6212 phone seen as NFC device" }, { "3B8D80010D788084020073C840130090FFF8", "Nokia 6212 phone seen as NFC device" },
{ "3B8D80010D78F7B1024A434F50763234316A", "Electronic Identity For Students at university (eID)" }, { "3B8D80010D78F7B1024A434F50763234316A", "Electronic Identity For Students at university (eID)" },
{ "3B8D80014946582D6A63333031677032325A", "Degussa Bank Corporate MasterCard (Bank)\nhttps://firmenkarten.degussa-bank.de/" }, { "3B8D80014946582D6A63333031677032325A", "Degussa Bank Corporate MasterCard (Bank)\nhttps://firmenkarten.degussa-bank.de/" },
@ -1902,6 +1933,7 @@ const static atr_t AtrTable[] = {
{ "3B8D80018073C021C057597562694B6579F9", "Yubikey 5 NFC (via NFC) (Other)\nhttps://www.yubico.com/product/yubikey-5-nfc/#yubikey-5-nfc" }, { "3B8D80018073C021C057597562694B6579F9", "Yubikey 5 NFC (via NFC) (Other)\nhttps://www.yubico.com/product/yubikey-5-nfc/#yubikey-5-nfc" },
{ "3B8D80018073C021C057597562694B65FF7F", "Yubikey 5 NFC via ACR122U (Other)" }, { "3B8D80018073C021C057597562694B65FF7F", "Yubikey 5 NFC via ACR122U (Other)" },
{ "3B8D80018091E1318065B0831111AC830034", "TOP DM GX4 Cards [TOP DM GX4 on Gemalto Prox]" }, { "3B8D80018091E1318065B0831111AC830034", "TOP DM GX4 Cards [TOP DM GX4 on Gemalto Prox]" },
{ "3B8D80018091E165023078011373D4414067", "passport (passport)" },
{ "3B8D80018091E165D0005B010273D44140B7", "Portuguese Passport (passport)\nhttp://www.pep.pt/PagesPT/Caracteristicas.aspx" }, { "3B8D80018091E165D0005B010273D44140B7", "Portuguese Passport (passport)\nhttp://www.pep.pt/PagesPT/Caracteristicas.aspx" },
{ "3B8D80018091E165D0005B010373D44140B6", "French passport (2010-2011)" }, { "3B8D80018091E165D0005B010373D44140B6", "French passport (2010-2011)" },
{ "3B8E8001005100631F6D01739F20C0C0900012", "Identity card (eID) Republic of Latvia (eID)\nhttps://www.pmlp.gov.lv/en/home/services/personal-certificates-%28eid%29/" }, { "3B8E8001005100631F6D01739F20C0C0900012", "Identity card (eID) Republic of Latvia (eID)\nhttps://www.pmlp.gov.lv/en/home/services/personal-certificates-%28eid%29/" },
@ -1934,7 +1966,9 @@ const static atr_t AtrTable[] = {
{ "3B8F80010000000000000000000000000000000E", "Tangem card (Other)\nhttps://tangem.com/" }, { "3B8F80010000000000000000000000000000000E", "Tangem card (Other)\nhttps://tangem.com/" },
{ "3B8F80010000000000000000000000FF829000E3", "CIE (eID)" }, { "3B8F80010000000000000000000000FF829000E3", "CIE (eID)" },
{ "3B8F80010031B86404B0ECC1739401808290000E", "Contactless CPS v3 Card (Carte de Professionnel de Sante)" }, { "3B8F80010031B86404B0ECC1739401808290000E", "Contactless CPS v3 Card (Carte de Professionnel de Sante)" },
{ "3B8F80010031C173C800106457494943009000B5", "ICC Solutions Card for Certification (Other)\nhttps://www.iccsolutions.com/" },
{ "3B8F80010031C173C8211064414D333007900088", "ING-VISA-Card (Bank)\nhttps://www.ing.de/girokonto/karten-bargeld/" }, { "3B8F80010031C173C8211064414D333007900088", "ING-VISA-Card (Bank)\nhttps://www.ing.de/girokonto/karten-bargeld/" },
{ "3B8F80010031C173C8211064474D343700900089", "SpareBank Visa Card, Norway (Bank)" },
{ "3B8F80010031C173C8211064574B313400900099", "G&D Sm@rtCafe Card embedded in a wristband (Bank)\nhttps://www.gi-de.com/en/au/mobile-security/industries/financial-institutions/wearables/" }, { "3B8F80010031C173C8211064574B313400900099", "G&D Sm@rtCafe Card embedded in a wristband (Bank)\nhttps://www.gi-de.com/en/au/mobile-security/industries/financial-institutions/wearables/" },
{ "3B8F800100664653051000FF71DF000000000039", "JavaCOS A40 dual interface Java card - 64K (JavaCard)" }, { "3B8F800100664653051000FF71DF000000000039", "JavaCOS A40 dual interface Java card - 64K (JavaCard)" },
{ "3B8F800100B85421000090000000000000000053", "netbank Germany, Mastercard (Bank)\nhttps://netbank.de" }, { "3B8F800100B85421000090000000000000000053", "netbank Germany, Mastercard (Bank)\nhttps://netbank.de" },
@ -2026,7 +2060,7 @@ const static atr_t AtrTable[] = {
{ "3B8F8001804F0CA00000030601....00000000..", "RFID - ISO 14443 Type A Part 1 (as per PCSC std part3)" }, { "3B8F8001804F0CA00000030601....00000000..", "RFID - ISO 14443 Type A Part 1 (as per PCSC std part3)" },
{ "3B8F8001804F0CA00000030602....00000000..", "RFID - ISO 14443 Type A Part 2 (as per PCSC std part3)" }, { "3B8F8001804F0CA00000030602....00000000..", "RFID - ISO 14443 Type A Part 2 (as per PCSC std part3)" },
{ "3B8F8001804F0CA00000030603....00000000..", "RFID - ISO 14443 Type A Part 3 (as per PCSC std part3)" }, { "3B8F8001804F0CA00000030603....00000000..", "RFID - ISO 14443 Type A Part 3 (as per PCSC std part3)" },
{ "3B8F8001804F0CA000000306030000000000006B", "buss/train pass for use with Skanetrafiken (www.skanetrafiken.se) busses and trains.\npublic library of Dusseldorf\nhttp://www.duesseldorf.de/stadtbuechereien/\nspecialized Mifare Ultralight card" }, { "3B8F8001804F0CA000000306030000000000006B", "buss/train pass for use with Skanetrafiken (www.skanetrafiken.se) busses and trains.\npublic libary of Dusseldorf\nhttp://www.duesseldorf.de/stadtbuechereien/\nspecialized Mifare Ultralight card" },
{ "3B8F8001804F0CA000000306030001000000006A", "NXP/Philips MIFARE Classic 1K (as per PCSC std part3)\nhttp://www.nxp.com/#/pip/pip=[pfp=41863]|pp=[t=pfp,i=41863]\nOyster card - Transport for London (first-gen)\nhttps://en.wikipedia.org/wiki/Oyster_card\nACOS5/1k Mirfare\nvivotech ViVOcard Contactless Test Card\nBangkok BTS Sky SmartPass\nMifare Classic 1K (block 0 re-writeable)\nElectic vehicle charging card of the German Telekom, acting as EMSP GetCharge\nElectic vehicle charging card of the EMSP Stadtwerke Muenchen (SWM), ladenetz.de, Germany\nElectic vehicle charging card of the EMSP EinfachStromLaden of Maingau-Energie, Germany\nScouter carsharing customer card in Germany\nhttps://scouter.de/" }, { "3B8F8001804F0CA000000306030001000000006A", "NXP/Philips MIFARE Classic 1K (as per PCSC std part3)\nhttp://www.nxp.com/#/pip/pip=[pfp=41863]|pp=[t=pfp,i=41863]\nOyster card - Transport for London (first-gen)\nhttps://en.wikipedia.org/wiki/Oyster_card\nACOS5/1k Mirfare\nvivotech ViVOcard Contactless Test Card\nBangkok BTS Sky SmartPass\nMifare Classic 1K (block 0 re-writeable)\nElectic vehicle charging card of the German Telekom, acting as EMSP GetCharge\nElectic vehicle charging card of the EMSP Stadtwerke Muenchen (SWM), ladenetz.de, Germany\nElectic vehicle charging card of the EMSP EinfachStromLaden of Maingau-Energie, Germany\nScouter carsharing customer card in Germany\nhttps://scouter.de/" },
{ "3B8F8001804F0CA0000003060300020000000069", "RFID - ISO 14443 Type A - NXP Mifare card with 4k EEPROM" }, { "3B8F8001804F0CA0000003060300020000000069", "RFID - ISO 14443 Type A - NXP Mifare card with 4k EEPROM" },
{ "3B8F8001804F0CA0000003060300030000000068", "RFID - ISO 14443 Type A - NXP Mifare Ultralight or UltralightC" }, { "3B8F8001804F0CA0000003060300030000000068", "RFID - ISO 14443 Type A - NXP Mifare Ultralight or UltralightC" },
@ -2105,8 +2139,10 @@ const static atr_t AtrTable[] = {
{ "3B959640F00F100A096A", "Zain Usim Card (Telecommunication)\nwww.qariya.com" }, { "3B959640F00F100A096A", "Zain Usim Card (Telecommunication)\nwww.qariya.com" },
{ "3B959680B1FE551FC7477261636513", "IClass SE Processor (Other)\nhttps://www.hidglobal.com/products/embedded-modules/iclass-se/sio-processor" }, { "3B959680B1FE551FC7477261636513", "IClass SE Processor (Other)\nhttps://www.hidglobal.com/products/embedded-modules/iclass-se/sio-processor" },
{ "3B9596C0F01FC20F100A0A16", "viettel (Telecommunication)" }, { "3B9596C0F01FC20F100A0A16", "viettel (Telecommunication)" },
{ "3B959740F01A160A1941", "SG50 (Samsung Chip) (Telecommunication)" },
{ "3B961880018051006110309F006110309E", "Atmel/Athena T0 PC/SC Compliance Test Card No. 1 (warm reset)" }, { "3B961880018051006110309F006110309E", "Atmel/Athena T0 PC/SC Compliance Test Card No. 1 (warm reset)" },
{ "3B9695801FC3D007830254005D", "au IC-card ver.001 (for CDMA2000) (Telecommunication)\nhttps://ja.wikipedia.org/wiki/Au_IC%E3%82%AB%E3%83%BC%E3%83%89" }, { "3B9695801FC3D007830254005D", "au IC-card ver.001 (for CDMA2000) (Telecommunication)\nhttps://ja.wikipedia.org/wiki/Au_IC%E3%82%AB%E3%83%BC%E3%83%89" },
{ "3B97110002020422003F03", "China Unicom (Telecommunication)" },
{ "3B9711801F418031A073BE2100A6", "Comprion UT3 simulator SIM (Other)" }, { "3B9711801F418031A073BE2100A6", "Comprion UT3 simulator SIM (Other)" },
{ "3B9711801F428031A073BE2100A6", "ETSI 102 230 Test case 5.2.5.3. Comprion IT3 SIM emulator (Telecommunication)" }, { "3B9711801F428031A073BE2100A6", "ETSI 102 230 Test case 5.2.5.3. Comprion IT3 SIM emulator (Telecommunication)" },
{ "3B9711C0FFB1FE351F83A505010102A3015F", "digital chronotachygraphe card: conducteur/driver, entreprise, controleur/controler et atelier/workshop, 2006-2010\nmanufactured by Imprimerie Nationale, distributed by Chronoservices" }, { "3B9711C0FFB1FE351F83A505010102A3015F", "digital chronotachygraphe card: conducteur/driver, entreprise, controleur/controler et atelier/workshop, 2006-2010\nmanufactured by Imprimerie Nationale, distributed by Chronoservices" },
@ -2161,6 +2197,7 @@ const static atr_t AtrTable[] = {
{ "3B9B95801F478031A073BE210053349905D0", "GSM-SIM EMT 'Diil', prepaid (Estonia)" }, { "3B9B95801F478031A073BE210053349905D0", "GSM-SIM EMT 'Diil', prepaid (Estonia)" },
{ "3B9B96C00A31FE4580670567B6040100008105FF", "Business Card (eID)" }, { "3B9B96C00A31FE4580670567B6040100008105FF", "Business Card (eID)" },
{ "3B9B97C00A31FE4580670567B6040100008105FE", "Company Card for Tachograph Data (Transport)" }, { "3B9B97C00A31FE4580670567B6040100008105FE", "Company Card for Tachograph Data (Transport)" },
{ "3B9C110068868D0C86980256408B0500", "China Mobile (Telecommunication)" },
{ "3B9C131181647265616D6372797074000408", "XPlusTV & INXCT Access Card-9 (FIRECrypt)" }, { "3B9C131181647265616D6372797074000408", "XPlusTV & INXCT Access Card-9 (FIRECrypt)" },
{ "3B9C131181647265616D6372797074900599", "FireCrypt, access card 9 (Pay TV)" }, { "3B9C131181647265616D6372797074900599", "FireCrypt, access card 9 (Pay TV)" },
{ "3B9C940068868D0A86980256C2000500", "G3 & GSM & Blank SIM card: to be programmed for OpenBTS with pySim-prog (Telecommunication)" }, { "3B9C940068868D0A86980256C2000500", "G3 & GSM & Blank SIM card: to be programmed for OpenBTS with pySim-prog (Telecommunication)" },
@ -2190,6 +2227,7 @@ const static atr_t AtrTable[] = {
{ "3B9D95801FC780731A211B63AF06A6830F9000F3", "Orange UK GSM/UMTS SIM" }, { "3B9D95801FC780731A211B63AF06A6830F9000F3", "Orange UK GSM/UMTS SIM" },
{ "3B9D95801FC780731A211B63AF09A9830F9000F3", "Estonian GSM operator TELE2 (WPKI eID support)" }, { "3B9D95801FC780731A211B63AF09A9830F9000F3", "Estonian GSM operator TELE2 (WPKI eID support)" },
{ "3B9D95803FC7A08031A073BE21135105830590007C", "NTT docomo Xi(LTE) DN05(DNP) Pink SIM (Telecommunication)" }, { "3B9D95803FC7A08031A073BE21135105830590007C", "NTT docomo Xi(LTE) DN05(DNP) Pink SIM (Telecommunication)" },
{ "3B9D960053492303030020000400F59000", "shell (Transport)" },
{ "3B9E94801F4280310073BE211066545953044C25CF", "MCI (Mobile Communication Company of Iran) SIM" }, { "3B9E94801F4280310073BE211066545953044C25CF", "MCI (Mobile Communication Company of Iran) SIM" },
{ "3B9E94801F478031A073BE21136686880210421014", "Airspan USIM (Telecommunication)" }, { "3B9E94801F478031A073BE21136686880210421014", "Airspan USIM (Telecommunication)" },
{ "3B9E94801F478031A073BE21136686880210731025", "module (JavaCard)" }, { "3B9E94801F478031A073BE21136686880210731025", "module (JavaCard)" },
@ -2391,6 +2429,7 @@ const static atr_t AtrTable[] = {
{ "3B9F94801FC78031E073FE211B573786609BA182109B", "U Mobile POWER Prepaid (Telecommunication)\nhttp://www.u.com.my/prepaid" }, { "3B9F94801FC78031E073FE211B573786609BA182109B", "U Mobile POWER Prepaid (Telecommunication)\nhttp://www.u.com.my/prepaid" },
{ "3B9F94801FC78031E073FE211B573F86604D03000075", "Prepaid SIM card MOCHE (Portugal) (Telecommunication)" }, { "3B9F94801FC78031E073FE211B573F86604D03000075", "Prepaid SIM card MOCHE (Portugal) (Telecommunication)" },
{ "3B9F94801FC78031E073FE211B573F866083020000BA", "GSM-SIM Beeline RU (Telecommunication)\nhttp://beeline.ru" }, { "3B9F94801FC78031E073FE211B573F866083020000BA", "GSM-SIM Beeline RU (Telecommunication)\nhttp://beeline.ru" },
{ "3B9F94801FC78031E073FE211B573F866096A100000C", "Lycamobile UICC/SIM card. (Telecommunication)\nhttps://www.lycamobile.com.au" },
{ "3B9F94801FC78031E073FE211B573F8660AF01000095", "Gotanet SE USIM (Telecommunication)" }, { "3B9F94801FC78031E073FE211B573F8660AF01000095", "Gotanet SE USIM (Telecommunication)" },
{ "3B9F94801FC78031E073FE211B573F8660B803000080", "Zero1 SIM card, Singapore (Telecommunication)" }, { "3B9F94801FC78031E073FE211B573F8660B803000080", "Zero1 SIM card, Singapore (Telecommunication)" },
{ "3B9F94801FC78031E073FE211B6345431983009000DA", "Smartjac (Telecommunication)" }, { "3B9F94801FC78031E073FE211B6345431983009000DA", "Smartjac (Telecommunication)" },
@ -2425,7 +2464,9 @@ const static atr_t AtrTable[] = {
{ "3B9F95801FC38031E073FE211B649B4D011182900000", "Singular (now AT&T) 3G GSM SIM Card" }, { "3B9F95801FC38031E073FE211B649B4D011182900000", "Singular (now AT&T) 3G GSM SIM Card" },
{ "3B9F95801FC38031E073FE211BB3E20174830F900088", "Gemplus GemXplore 3G USIM" }, { "3B9F95801FC38031E073FE211BB3E20174830F900088", "Gemplus GemXplore 3G USIM" },
{ "3B9F95801FC78031A073B6A10067CF1713C41D2D3649", "Idemia card (Telecommunication)" }, { "3B9F95801FC78031A073B6A10067CF1713C41D2D3649", "Idemia card (Telecommunication)" },
{ "3B9F95801FC78031A073B6A10067CF1794AA28993F28", "Glaier Programable LTE USIM Card (Telecommunication)" },
{ "3B9F95801FC78031A073B6A10067CF3211B252C679F3", "open5gs (Telecommunication)" }, { "3B9F95801FC78031A073B6A10067CF3211B252C679F3", "open5gs (Telecommunication)" },
{ "3B9F95801FC78031A073B6A10067CF3215A98FD70950", "LTE Card (Telecommunication)" },
{ "3B9F95801FC78031A073BE21005304D08083059000BE", "NTT_DoCoMo (Telecommunication)" }, { "3B9F95801FC78031A073BE21005304D08083059000BE", "NTT_DoCoMo (Telecommunication)" },
{ "3B9F95801FC78031A073BE211367D002040901000005", "T-Mobile SIM card issued in Germany 2012" }, { "3B9F95801FC78031A073BE211367D002040901000005", "T-Mobile SIM card issued in Germany 2012" },
{ "3B9F95801FC78031E073F62113674D451500390102F4", "Vivo 4G LTE SIM Card (Telecommunication)" }, { "3B9F95801FC78031E073F62113674D451500390102F4", "Vivo 4G LTE SIM Card (Telecommunication)" },
@ -2494,6 +2535,7 @@ const static atr_t AtrTable[] = {
{ "3B9F96801F878031E073FE2119674A555473300948DB", "nano sim/usim card (Telecommunication)" }, { "3B9F96801F878031E073FE2119674A555473300948DB", "nano sim/usim card (Telecommunication)" },
{ "3B9F96801F878031E073FE2119674A555475300662F8", "SIM Card (Telecommunication)" }, { "3B9F96801F878031E073FE2119674A555475300662F8", "SIM Card (Telecommunication)" },
{ "3B9F96801F878031E073FE2119674A557330310746BE", "Hologram Developer Global IoT SIM Card (Telecommunication)\nhttps://hologram.io/store/global-iot-sim-card/17" }, { "3B9F96801F878031E073FE2119674A557330310746BE", "Hologram Developer Global IoT SIM Card (Telecommunication)\nhttps://hologram.io/store/global-iot-sim-card/17" },
{ "3B9F96801F878031E073FE211B674A4C5275310451D5", "Test card provided with 4G/5G network from Amarisoft (Telecommunication)" },
{ "3B9F96801F878031E073FE211B674A4C7530300248A9", "Cardcentrics (Telecommunication)" }, { "3B9F96801F878031E073FE211B674A4C7530300248A9", "Cardcentrics (Telecommunication)" },
{ "3B9F96801F878031E073FE211B674A4C753034054BA9", "Test Card (Telecommunication)" }, { "3B9F96801F878031E073FE211B674A4C753034054BA9", "Test Card (Telecommunication)" },
{ "3B9F96801FC30068104405014649534531C80790001A", "SETEC SetCard 32K PKI Evaluated SetCOS 4.4.1" }, { "3B9F96801FC30068104405014649534531C80790001A", "SETEC SetCard 32K PKI Evaluated SetCOS 4.4.1" },
@ -2542,7 +2584,7 @@ const static atr_t AtrTable[] = {
{ "3B9F96801FC78031E073FE2113574A330E1F33310082", "Sysmocom SIM Card (Telecommunication)" }, { "3B9F96801FC78031E073FE2113574A330E1F33310082", "Sysmocom SIM Card (Telecommunication)" },
{ "3B9F96801FC78031E073FE2113574A330E1F33320081", "Lidl Connect SIM Card (Vodafone) (Telecommunication)" }, { "3B9F96801FC78031E073FE2113574A330E1F33320081", "Lidl Connect SIM Card (Vodafone) (Telecommunication)" },
{ "3B9F96801FC78031E073FE2113574A330E20333100BD", "T-Mobile US USIM card (Telecommunication)" }, { "3B9F96801FC78031E073FE2113574A330E20333100BD", "T-Mobile US USIM card (Telecommunication)" },
{ "3B9F96801FC78031E073FE2113574A330E20333200BE", "M2M2FF1-NONRUG-D - Verizon Non-Rugged M2M SIM Card (Telecommunication)" }, { "3B9F96801FC78031E073FE2113574A330E20333200BE", "M2M2FF1-NONRUG-D - Verizon Non-Rugged M2M SIM Card (Telecommunication)\nTelus Mobility SIM card (Telecommunication)\nhttps://www.telus.com/en/mobility/" },
{ "3B9F96801FC78031E073FE2113574A330E20333300BF", "Turk Telekom SIM card [4>5G] (Telecommunication)\nhttps://bireysel.turktelekom.com.tr/4-5G/index.html" }, { "3B9F96801FC78031E073FE2113574A330E20333300BF", "Turk Telekom SIM card [4>5G] (Telecommunication)\nhttps://bireysel.turktelekom.com.tr/4-5G/index.html" },
{ "3B9F96801FC78031E073FE2113574A330E22333200BC", "Project Fi (Telecommunication)\nhttps://fi.google.com" }, { "3B9F96801FC78031E073FE2113574A330E22333200BC", "Project Fi (Telecommunication)\nhttps://fi.google.com" },
{ "3B9F96801FC78031E073FE2113574A330E24333200BA", "GSM, Vodafone (Germany) (Telecommunication)" }, { "3B9F96801FC78031E073FE2113574A330E24333200BA", "GSM, Vodafone (Germany) (Telecommunication)" },
@ -2586,6 +2628,7 @@ const static atr_t AtrTable[] = {
{ "3B9F96801FC78031E073FE2113679807021402010351", "LTE USIM (US) (Telecommunication)" }, { "3B9F96801FC78031E073FE2113679807021402010351", "LTE USIM (US) (Telecommunication)" },
{ "3B9F96801FC78031E073FE2115574A330E3B333400A5", "O2 Spain phone SIM (Telecommunication)\nhttps://o2online.es/" }, { "3B9F96801FC78031E073FE2115574A330E3B333400A5", "O2 Spain phone SIM (Telecommunication)\nhttps://o2online.es/" },
{ "3B9F96801FC78031E073FE2115574A330E3F333500A0", "Telefonica (Germany) SIM Card (Telecommunication)" }, { "3B9F96801FC78031E073FE2115574A330E3F333500A0", "Telefonica (Germany) SIM Card (Telecommunication)" },
{ "3B9F96801FC78031E073FE2117574A330E3F333400A3", "Telecommunication (SIM or USIM card) T-Mobile Communications (Telecommunication)" },
{ "3B9F96801FC78031E073FE2117574A330E3F333600A1", "Bell Mobility MULTI SIM (Telecommunication)\nhttps://bell.ca" }, { "3B9F96801FC78031E073FE2117574A330E3F333600A1", "Bell Mobility MULTI SIM (Telecommunication)\nhttps://bell.ca" },
{ "3B9F96801FC78031E073FE2117574A33810433360015", "HoT Austria SIM Card (Telecommunication)\nhttps://hot.at/" }, { "3B9F96801FC78031E073FE2117574A33810433360015", "HoT Austria SIM Card (Telecommunication)\nhttps://hot.at/" },
{ "3B9F96801FC78031E073FE211B57318660B21A0C0C9F", "SIM CARD (JavaCard)" }, { "3B9F96801FC78031E073FE211B57318660B21A0C0C9F", "SIM CARD (JavaCard)" },
@ -2634,9 +2677,11 @@ const static atr_t AtrTable[] = {
{ "3B9F96803FC7008031E073FE211B6408050300829000EF", "Multipurpose UICC card for 2G, 3G, 4G/LTE, CDMA, ISIM & NFC (Telecommunication)\nhttp://www.smartjac.biz/index.php/component/eshop/telecom/test-uicc-sim-cards/2ff-mini-sim-cards/4g-open-multipurpose-uicc-card-3ff?Itemid=0" }, { "3B9F96803FC7008031E073FE211B6408050300829000EF", "Multipurpose UICC card for 2G, 3G, 4G/LTE, CDMA, ISIM & NFC (Telecommunication)\nhttp://www.smartjac.biz/index.php/component/eshop/telecom/test-uicc-sim-cards/2ff-mini-sim-cards/4g-open-multipurpose-uicc-card-3ff?Itemid=0" },
{ "3B9F96803FC7008031E073FE211F6441262100829000A3", "Smartjac SMAOT100A234FF (Telecommunication)\nhttps://smartjac.com" }, { "3B9F96803FC7008031E073FE211F6441262100829000A3", "Smartjac SMAOT100A234FF (Telecommunication)\nhttps://smartjac.com" },
{ "3B9F96803FC7828031E073F62157574A330581053000CE", "COMPRION M2M eUICC (Telecommunication)" }, { "3B9F96803FC7828031E073F62157574A330581053000CE", "COMPRION M2M eUICC (Telecommunication)" },
{ "3B9F96803FC7828031E073F62157574A4D020B60010069", "eSIM GSMA Card (Telecommunication)\nhttps://www.gsma.com/newsroom/wp-content/uploads/SGP.22_v2.2.pdf" },
{ "3B9F96803FC7A08031E073F62156574A4D020B3444005B", "Norwegian telenor (Telecommunication)\nhttp://www.telenor.no" }, { "3B9F96803FC7A08031E073F62156574A4D020B3444005B", "Norwegian telenor (Telecommunication)\nhttp://www.telenor.no" },
{ "3B9F96803FC7A08031E073F62157574A4D020B34546329", "Orange FR - opa (Telecommunication)" }, { "3B9F96803FC7A08031E073F62157574A4D020B34546329", "Orange FR - opa (Telecommunication)" },
{ "3B9F96803FC7A08031E073FE211B63F100E8830090005E", "UICC CARD (Telecommunication)" }, { "3B9F96803FC7A08031E073FE211B63F100E8830090005E", "UICC CARD (Telecommunication)" },
{ "3B9F96803FC7A08031E073FE211B6407689A00829000B4", "Orange SIM Card (Telecommunication)" },
{ "3B9F96803FC7A08031E073FE211B64080503008290004F", "NFC-enabled SIM card of MTS Russia. (Telecommunication)" }, { "3B9F96803FC7A08031E073FE211B64080503008290004F", "NFC-enabled SIM card of MTS Russia. (Telecommunication)" },
{ "3B9F96803FC7A08031E073FE211F6441269100829000B3", "LTE Lab SIM Ver 1.3 (Telecommunication)" }, { "3B9F96803FC7A08031E073FE211F6441269100829000B3", "LTE Lab SIM Ver 1.3 (Telecommunication)" },
{ "3B9F968131FE458065544312210831C073F6218081059A", "Scientific and Technological Research Council of Turkey (test card) (eID)" }, { "3B9F968131FE458065544312210831C073F6218081059A", "Scientific and Technological Research Council of Turkey (test card) (eID)" },
@ -2716,6 +2761,7 @@ const static atr_t AtrTable[] = {
{ "3BB7110081319043A5..............", "Siemens CardOS/M V1.4 (SLE44C80S)" }, { "3BB7110081319043A5..............", "Siemens CardOS/M V1.4 (SLE44C80S)" },
{ "3BB7110081319043C517B09D19221E1F", "CryptoTech blank access/authentication card (Other)\nhttp://www.cryptotech.com.pl/" }, { "3BB7110081319043C517B09D19221E1F", "CryptoTech blank access/authentication card (Other)\nhttp://www.cryptotech.com.pl/" },
{ "3BB7110081319053B5..............", "CardOS EM/V1.4 (SLE44CR80S)" }, { "3BB7110081319053B5..............", "CardOS EM/V1.4 (SLE44CR80S)" },
{ "3BB711008131FE4320283FB50320313B", "Research Institute of Applied Information Technologies (Other)\nhttp://dodatok.osvita.net/" },
{ "3BB718008131704310434E5452563253", "Avtor SecureToken (PKI)" }, { "3BB718008131704310434E5452563253", "Avtor SecureToken (PKI)" },
{ "3BB718008131FE6553504B323490005A", "Giesecke & Devrient Starcos 2.4" }, { "3BB718008131FE6553504B323490005A", "Giesecke & Devrient Starcos 2.4" },
{ "3BB71800C03E31FE6553504B3234900025", "G&D STARCOS SPK 2.4" }, { "3BB71800C03E31FE6553504B3234900025", "G&D STARCOS SPK 2.4" },
@ -2750,6 +2796,7 @@ const static atr_t AtrTable[] = {
{ "3BBC1800813120755A43332E313220524556204146", "ZeitControl BasicCard Enhanced 3.7\nhttp://www.basiccard.com/" }, { "3BBC1800813120755A43332E313220524556204146", "ZeitControl BasicCard Enhanced 3.7\nhttp://www.basiccard.com/" },
{ "3BBC1800813120755A43332E313420524556204445", "ZeitControl BasicCard Enhanced 3.14 Rev D\nhttp://www.basiccard.com/" }, { "3BBC1800813120755A43332E313420524556204445", "ZeitControl BasicCard Enhanced 3.14 Rev D\nhttp://www.basiccard.com/" },
{ "3BBC1800813120755A43332E333220524556204247", "ZeitControl BasicCard (Other)\nhttps://ZeitControl" }, { "3BBC1800813120755A43332E333220524556204247", "ZeitControl BasicCard (Other)\nhttps://ZeitControl" },
{ "3BBC1800813120755A43332E333420524556204447", "ZeitControl BasicCard Enhanced ZC3.34 (Other)\nhttps://www.zeitcontrol.de/en" },
{ "3BBC94004014474733483335585332303030", "GSM-SIM Era-PL\nT-Mobile GSM SIM Card" }, { "3BBC94004014474733483335585332303030", "GSM-SIM Era-PL\nT-Mobile GSM SIM Card" },
{ "3BBC94004014474733483335585632303030", "GSM SIM CARD 32K, Vodafone" }, { "3BBC94004014474733483335585632303030", "GSM SIM CARD 32K, Vodafone" },
{ "3BBC94004014474733493539424332303030", "GSM SIM Vodafona NL prepaid" }, { "3BBC94004014474733493539424332303030", "GSM SIM Vodafona NL prepaid" },
@ -2758,6 +2805,7 @@ const static atr_t AtrTable[] = {
{ "3BBC94004014474733494231424331303020", "Telenor SIM (Telecommunication)" }, { "3BBC94004014474733494231424331303020", "Telenor SIM (Telecommunication)" },
{ "3BBC94004014474733494231424331303030", "SIM Card (Scarlet, Belgium) (Telecommunication)\nhttps://www.scarlet.be/nl/prepaid/" }, { "3BBC94004014474733494231424331303030", "SIM Card (Scarlet, Belgium) (Telecommunication)\nhttps://www.scarlet.be/nl/prepaid/" },
{ "3BBC94004014474733533035315331303130", "GSM SIM (Tele2, Estonia)\nGSM SIM Elisa Estonia; 2007\nGSM SIM from 'fonic' Germany" }, { "3BBC94004014474733533035315331303130", "GSM SIM (Tele2, Estonia)\nGSM SIM Elisa Estonia; 2007\nGSM SIM from 'fonic' Germany" },
{ "3BBC94004014474733533443454332303030", "Era-PL SIM Card (Telecommunication)" },
{ "3BBD18008131FE45805102670414B10101020081053D", "Austrian 'e-Card' (=Health Card)\nspecial Version of Starcos 3.1" }, { "3BBD18008131FE45805102670414B10101020081053D", "Austrian 'e-Card' (=Health Card)\nspecial Version of Starcos 3.1" },
{ "3BBD18008131FE45805102670518B102020201810531", "Austrian health insurance card 'e-card'" }, { "3BBD18008131FE45805102670518B102020201810531", "Austrian health insurance card 'e-card'" },
{ "3BBD18008131FE45805103670414B10101020081053C", "Austrian Health insurance card 'eCard' (HealthCare)\nhttp://www.chipkarte.at" }, { "3BBD18008131FE45805103670414B10101020081053C", "Austrian Health insurance card 'eCard' (HealthCare)\nhttp://www.chipkarte.at" },
@ -2878,6 +2926,7 @@ const static atr_t AtrTable[] = {
{ "3BDA9400004D4D41524A2B33399000", "SIM card from Vodafone Spain" }, { "3BDA9400004D4D41524A2B33399000", "SIM card from Vodafone Spain" },
{ "3BDA9500400A2508004053434F535441", "Card used for issuing commodity to benificiary for rice, wheat and more (Other)" }, { "3BDA9500400A2508004053434F535441", "Card used for issuing commodity to benificiary for rice, wheat and more (Other)" },
{ "3BDA96FF8131FE45805631B85349434181057B", "STARCOS 3.5 ID ECC C1R (PKI)\nhttps://www.gi-de.com/fileadmin/user_upload/MS/Certificates/STARCOS35_ID_ECC_TABLES.pdf" }, { "3BDA96FF8131FE45805631B85349434181057B", "STARCOS 3.5 ID ECC C1R (PKI)\nhttps://www.gi-de.com/fileadmin/user_upload/MS/Certificates/STARCOS35_ID_ECC_TABLES.pdf" },
{ "3BDA96FF81B1FE451F0780584943412056322E30E9", "Starcos chip card from Giesecke & Devrient (PKI)\nhttps://ica.cz/functionality-smart-card" },
{ "3BDB11FF5000FF0000000000000007921603", "NEC V-WAY64 v2.1" }, { "3BDB11FF5000FF0000000000000007921603", "NEC V-WAY64 v2.1" },
{ "3BDB1800801F030031C06477E303008290004F", "Oberthur ID-One Cosmo 64K V5.2" }, { "3BDB1800801F030031C06477E303008290004F", "Oberthur ID-One Cosmo 64K V5.2" },
{ "3BDB180080B1FE451F830031C064C7FC1000019000FA", "Oberthur Cosmo V7 64K Dual/128K" }, { "3BDB180080B1FE451F830031C064C7FC1000019000FA", "Oberthur Cosmo V7 64K Dual/128K" },
@ -2930,7 +2979,7 @@ const static atr_t AtrTable[] = {
{ "3BDC18FF8191FE1FC38073C821136605036057000255", "NXP IDProtect (X) (JavaCard)" }, { "3BDC18FF8191FE1FC38073C821136605036057000255", "NXP IDProtect (X) (JavaCard)" },
{ "3BDC18FF8191FE1FC38073C821136605036351000250", "JCOP3 SecID P60 CS (JavaCard)" }, { "3BDC18FF8191FE1FC38073C821136605036351000250", "JCOP3 SecID P60 CS (JavaCard)" },
{ "3BDC96FF8111FE8031C8544356300573FFA1C03B", "NXP Javacard with Athena SCS OS (JavaCard)" }, { "3BDC96FF8111FE8031C8544356300573FFA1C03B", "NXP Javacard with Athena SCS OS (JavaCard)" },
{ "3BDC96FF81B1FE431FC30B46415245474F53414D5632CC", "Penis (Pay TV)" }, { "3BDC96FF81B1FE431FC30B46415245474F53414D5632CC", "Multismartcard SAM (used in proprietary Scheidt&Bachmann Smartcard Reader v2)" },
{ "3BDD18008131FE4580F9A0000000770100700A90008B", "National ID Card of Peru issued by RENIEC from Oberthur" }, { "3BDD18008131FE4580F9A0000000770100700A90008B", "National ID Card of Peru issued by RENIEC from Oberthur" },
{ "3BDD18008131FE4580F9A000000077010800079000FE", "Oberthur Cosmo v7 IAS ECC\nBrazilian 'e-CNPJ' card, issued by Certisign (Oberthur)" }, { "3BDD18008131FE4580F9A000000077010800079000FE", "Oberthur Cosmo v7 IAS ECC\nBrazilian 'e-CNPJ' card, issued by Certisign (Oberthur)" },
{ "3BDD18008131FE45904C41545649412D65494490008C", "Identity card (eID) Republic of Latvia\nhttp://www.pmlp.gov.lv/lv/pakalpojumi/passes/eid.html" }, { "3BDD18008131FE45904C41545649412D65494490008C", "Identity card (eID) Republic of Latvia\nhttp://www.pmlp.gov.lv/lv/pakalpojumi/passes/eid.html" },
@ -2968,7 +3017,7 @@ const static atr_t AtrTable[] = {
{ "3BDF18008131FE7D006B150C0180011101434E53103180E9", "Provider: Actalis S.p.A.\ncode: AT00006181\nhttp://www.actalis.it" }, { "3BDF18008131FE7D006B150C0180011101434E53103180E9", "Provider: Actalis S.p.A.\ncode: AT00006181\nhttp://www.actalis.it" },
{ "3BDF18008131FE7D006B150C0181011101434E53103180E8", "Italian healthcare card (TS) National Service Card (CNS)\nCarta Regionale dei Servizi - Regione Lombardia\nTuscany TS-CNS\nhttp://www.regione.toscana.it/cartasanitaria" }, { "3BDF18008131FE7D006B150C0181011101434E53103180E8", "Italian healthcare card (TS) National Service Card (CNS)\nCarta Regionale dei Servizi - Regione Lombardia\nTuscany TS-CNS\nhttp://www.regione.toscana.it/cartasanitaria" },
{ "3BDF18FF8131FE4580590180484944433730307300011B33", "Crescendo C700 + MiFare 4K\nhttp://www.smartcardfocus.com/shop/ilp/id~265/p/index.shtml" }, { "3BDF18FF8131FE4580590180484944433730307300011B33", "Crescendo C700 + MiFare 4K\nhttp://www.smartcardfocus.com/shop/ilp/id~265/p/index.shtml" },
{ "3BDF18FF8191FE1FC3003138644790ECC273140150829000BA", "Card store authentication and signature keys (JavaCard)\nhttps://ants.gouv.fr/Les-titres/Cartes-Agents/Adhesion/Telechargement-et-support" }, { "3BDF18FF8191FE1FC3003138644790ECC273140150829000BA", "Card store authentification and signature keys (JavaCard)\nhttps://ants.gouv.fr/Les-titres/Cartes-Agents/Adhesion/Telechargement-et-support" },
{ "3BDF18FF8191FE1FC30031B8640000EC0073940000829000FE", "NXP Jcop3 P60 ChipDoc v7b4 (JavaCard)\nhttps://www.javacardos.com/store/products/10029" }, { "3BDF18FF8191FE1FC30031B8640000EC0073940000829000FE", "NXP Jcop3 P60 ChipDoc v7b4 (JavaCard)\nhttps://www.javacardos.com/store/products/10029" },
{ "3BDF18FF8191FE1FC30031B86404216010739401C005900001", "Dutch Governement Identity Card using physical (eID)\nhttps://nl.wikipedia.org/wiki/Rijkspas" }, { "3BDF18FF8191FE1FC30031B86404216010739401C005900001", "Dutch Governement Identity Card using physical (eID)\nhttps://nl.wikipedia.org/wiki/Rijkspas" },
{ "3BDF18FF8191FE1FC30031B8640C01ECC173940180829000B3", "ebee card\nhttps://www.ebeeoffice.ca/ebee-home/public\nDigital Signature Costa Rica (issued since 09/2019) (eID)\nhttps://www.mifirmadigital.go.cr/" }, { "3BDF18FF8191FE1FC30031B8640C01ECC173940180829000B3", "ebee card\nhttps://www.ebeeoffice.ca/ebee-home/public\nDigital Signature Costa Rica (issued since 09/2019) (eID)\nhttps://www.mifirmadigital.go.cr/" },
@ -3036,6 +3085,7 @@ const static atr_t AtrTable[] = {
{ "3BE90000812145454D565F41545220066C", "VISA card, issued by HVB Bank Czech Republic or austrian BankAustria\nhttp://www.hvb.cz" }, { "3BE90000812145454D565F41545220066C", "VISA card, issued by HVB Bank Czech Republic or austrian BankAustria\nhttp://www.hvb.cz" },
{ "3BE900008121454D435F5F494E46200665", "MasterCard Credit card issued by SpareBank1 in Norway\nhttp://www.sparebank1.no" }, { "3BE900008121454D435F5F494E46200665", "MasterCard Credit card issued by SpareBank1 in Norway\nhttp://www.sparebank1.no" },
{ "3BE900008121455649535F494E46200678", "VISA card, issued by the Austrian 'Raiffeisen' bank\nhttp://www.raiffeisen.at/\nVisa Card - Maximum - Oyak Bank / Turkey\nVISA, issued by Austrian bank 'Erste Bank'\nVISA card, issued by the Latvian bank 'Latvijas Krajbanka'" }, { "3BE900008121455649535F494E46200678", "VISA card, issued by the Austrian 'Raiffeisen' bank\nhttp://www.raiffeisen.at/\nVisa Card - Maximum - Oyak Bank / Turkey\nVISA, issued by Austrian bank 'Erste Bank'\nVISA card, issued by the Latvian bank 'Latvijas Krajbanka'" },
{ "3BE900008131C345996374691999125610EC", "Compunicate Technologies Inc. (Pay TV)\nhttp://www.cti.com.cn/en/product.aspx?m=20140731165252850216" },
{ "3BE900008131FE00FF506572736F53696D54", "German PersoSim (eID)\nhttps://persosim.secunet.com/en/" }, { "3BE900008131FE00FF506572736F53696D54", "German PersoSim (eID)\nhttps://persosim.secunet.com/en/" },
{ "3BE900008131FE4543443169A90000000014", "Mastercard credit card, UBS Switzerland (Bank)" }, { "3BE900008131FE4543443169A90000000014", "Mastercard credit card, UBS Switzerland (Bank)" },
{ "3BE900008131FE45434432690900000000B7", "Swiss UBS MasterCard Creditcard" }, { "3BE900008131FE45434432690900000000B7", "Swiss UBS MasterCard Creditcard" },
@ -3081,7 +3131,7 @@ const static atr_t AtrTable[] = {
{ "3BEE00008131804280318066B0840C016E01830090008E", "MultiApp Cards (Easy 72K Type B and Combi 72K Type B)\nE.SUN Commercial bank debit master card (Bank)\nTaiwan EasyCard (Transport)\nhttps://www.easycard.com.tw/english/index.asp" }, { "3BEE00008131804280318066B0840C016E01830090008E", "MultiApp Cards (Easy 72K Type B and Combi 72K Type B)\nE.SUN Commercial bank debit master card (Bank)\nTaiwan EasyCard (Transport)\nhttps://www.easycard.com.tw/english/index.asp" },
{ "3BEE00008131804380318066B1A1110100F683009000", "Optelio/Desineo Cards (D72 FXR1)" }, { "3BEE00008131804380318066B1A1110100F683009000", "Optelio/Desineo Cards (D72 FXR1)" },
{ "3BEE00008131804380318066B1A11101A0F683009000", "Optelio D72 FXR1 (MD) T=1" }, { "3BEE00008131804380318066B1A11101A0F683009000", "Optelio D72 FXR1 (MD) T=1" },
{ "3BEE00008131FE45003180718665016702A00A8390001B", "IBM JCOP 'Java Card 2.1.1' et 'Open Platform 2.0.1'" }, { "3BEE00008131FE45003180718665016702A00A8390001B", "IBM JCOP 'Java Card 2.1.1' et 'Open Plaform 2.0.1'" },
{ "3BEE00008131FE4580318066409093060F1783019000FD", "Health insurance (HealthCare)" }, { "3BEE00008131FE4580318066409093060F1783019000FD", "Health insurance (HealthCare)" },
{ "3BEE00008131FE4580318066409093060F17830F9000F3", "IC card for the National Health Insurance, Taiwan" }, { "3BEE00008131FE4580318066409093060F17830F9000F3", "IC card for the National Health Insurance, Taiwan" },
{ "3BEF..0040148025434552455357....0101039000", "Electronic Identification Card from the FNMT, the Spanish Official\nCertification Authority (Fabrica Nacional de Moneda y Timbre)\nFNMT-Ceres Siemens Infineon SLE 19" }, { "3BEF..0040148025434552455357....0101039000", "Electronic Identification Card from the FNMT, the Spanish Official\nCertification Authority (Fabrica Nacional de Moneda y Timbre)\nFNMT-Ceres Siemens Infineon SLE 19" },
@ -3154,14 +3204,17 @@ const static atr_t AtrTable[] = {
{ "3BEF00FF8131FE4565631114710528001F000C2024371074", "Debit card (Germany): ec-cash, GeldKarte(EUR), Maestro, Cirrus, ... (Bank)" }, { "3BEF00FF8131FE4565631114710528001F000C2024371074", "Debit card (Germany): ec-cash, GeldKarte(EUR), Maestro, Cirrus, ... (Bank)" },
{ "3BEF00FF8131FE4565631114710528001F000C3D35371078", "Sparkasse KolnBonn Bank (Bank)\nhttps://www.sparkasse-koelnbonn.de" }, { "3BEF00FF8131FE4565631114710528001F000C3D35371078", "Sparkasse KolnBonn Bank (Bank)\nhttps://www.sparkasse-koelnbonn.de" },
{ "3BEF00FF8131FE4565631114710528001F0010142437105C", "Deutsche Kreditbank AG (Bank)\nhttps://www.dkb.de/" }, { "3BEF00FF8131FE4565631114710528001F0010142437105C", "Deutsche Kreditbank AG (Bank)\nhttps://www.dkb.de/" },
{ "3BEF00FF8131FE4565631114710528001F00112D4F37100F", "Bank card (Bank)\nhttps://www.commerzbank.de/" },
{ "3BEF00FF8131FE4565631114710528001F00113B32371064", "DKB GiroCard (Bank)\nhttps://dkb.de" }, { "3BEF00FF8131FE4565631114710528001F00113B32371064", "DKB GiroCard (Bank)\nhttps://dkb.de" },
{ "3BEF00FF8131FE4565631114710528001F00172846371005", "Sparkasse Zwickau Maestro card (Bank)\nhttps://www.spk-zwickau.de/de/home/privatkunden/girokonto/sparkassencard.html" }, { "3BEF00FF8131FE4565631114710528001F00172846371005", "Sparkasse Zwickau Maestro card (Bank)\nhttps://www.spk-zwickau.de/de/home/privatkunden/girokonto/sparkassencard.html" },
{ "3BEF00FF8131FE4565631114710528001F00180F48371023", "SparkassenCard (Bank)\nhttps://sparkasse.de" }, { "3BEF00FF8131FE4565631114710528001F00180F48371023", "SparkassenCard (Bank)\nhttps://sparkasse.de" },
{ "3BEF00FF8131FE4565631114710528001F0018242A37106A", "Sparkasse girocard (Bank)" }, { "3BEF00FF8131FE4565631114710528001F0018242A37106A", "Sparkasse girocard (Bank)" },
{ "3BEF00FF8131FE4565631114710528001F00182D1C371055", "Debit card (Germany): ec-cash, GeldKarte(EUR) (Bank)" }, { "3BEF00FF8131FE4565631114710528001F00182D1C371055", "Debit card (Germany): ec-cash, GeldKarte(EUR) (Bank)" },
{ "3BEF00FF8131FE456563111562025000100A002B2107201E", "EC Card Sparkasse Mittelfranken Sued (Bank)\nhttps://www.spkmfrs.de" }, { "3BEF00FF8131FE456563111562025000100A002B2107201E", "EC Card Sparkasse Mittelfranken Sued (Bank)\nhttps://www.spkmfrs.de" },
{ "3BEF00FF8131FE456563111562025000100A002EFC0720C6", "maestro BankCard (Bank)" },
{ "3BEF00FF8131FE456563111562025000100A09AC030720B2", "Girocard Sparkasse Darmstadt (Bank)" }, { "3BEF00FF8131FE456563111562025000100A09AC030720B2", "Girocard Sparkasse Darmstadt (Bank)" },
{ "3BEF00FF8131FE4565631901620280000F003500420620BB", "Credit card (Germany, Postbank AG): VISA" }, { "3BEF00FF8131FE4565631901620280000F003500420620BB", "Credit card (Germany, Postbank AG): VISA" },
{ "3BEF00FF8131FE4565631D0284025000230509A0D9010182", "Debit card (Bank)" },
{ "3BEF00FF8131FE4565631D028402500023180920E7010121", "Deutsche Kreditbank AG (DKB AG) bank card (Bank)\nhttps://www.dkb.de/info/tan-verfahren/chipTAN/" }, { "3BEF00FF8131FE4565631D028402500023180920E7010121", "Deutsche Kreditbank AG (DKB AG) bank card (Bank)\nhttps://www.dkb.de/info/tan-verfahren/chipTAN/" },
{ "3BEF00FF8131FE458031C06B49424D204A65745A204D3239", "UBS Internet Card (IBM JetZ M2)" }, { "3BEF00FF8131FE458031C06B49424D204A65745A204D3239", "UBS Internet Card (IBM JetZ M2)" },
{ "3BEF00FF8131FE458031E06B042105026B55555555555568", "MasterCard credit card for Mega International Commercial Bank, Taiwan (Bank)\nhttps://www.megabank.com.tw/creditcard/index.asp" }, { "3BEF00FF8131FE458031E06B042105026B55555555555568", "MasterCard credit card for Mega International Commercial Bank, Taiwan (Bank)\nhttps://www.megabank.com.tw/creditcard/index.asp" },
@ -3235,6 +3288,7 @@ const static atr_t AtrTable[] = {
{ "3BF81100008171FE4200544E051900000002A1", "Taiwan EasyCard (Transport)\nhttps://www.easycard.com.tw/english/index.asp" }, { "3BF81100008171FE4200544E051900000002A1", "Taiwan EasyCard (Transport)\nhttps://www.easycard.com.tw/english/index.asp" },
{ "3BF811200340FF0303030312109000", "Bar Ilan KesefCard from Bezeq (Other)\nhttps://halemo.net/web/www.aurora.co.il/english/c_kesefcard.html" }, { "3BF811200340FF0303030312109000", "Bar Ilan KesefCard from Bezeq (Other)\nhttps://halemo.net/web/www.aurora.co.il/english/c_kesefcard.html" },
{ "3BF811200340FFFFFFFFFF12109000", "G&D (STARCOS SV 1.1)" }, { "3BF811200340FFFFFFFFFF12109000", "G&D (STARCOS SV 1.1)" },
{ "3BF813000010000073C84011009000", "Vivid Money Visa Debit (Bank)\nhttps://vivid.money" },
{ "3BF81300008131FE15597562696B657934D4", "Yubico Yubikey 4 OTP+CCID" }, { "3BF81300008131FE15597562696B657934D4", "Yubico Yubikey 4 OTP+CCID" },
{ "3BF81300008131FE4546494445534D4F318E", "Fidesmo Card with Dual Interface (JavaCard)\nhttp://shop.fidesmo.com/product/fidesmo-card-dual-interface" }, { "3BF81300008131FE4546494445534D4F318E", "Fidesmo Card with Dual Interface (JavaCard)\nhttp://shop.fidesmo.com/product/fidesmo-card-dual-interface" },
{ "3BF81300008131FE454A434F50763234....", "NXP JCOP v2.4.x (see hist bytes for more info)" }, { "3BF81300008131FE454A434F50763234....", "NXP JCOP v2.4.x (see hist bytes for more info)" },
@ -3302,7 +3356,7 @@ const static atr_t AtrTable[] = {
{ "3BFA1300FF813180450031C173C00100009000B1", "OpenPGP" }, { "3BFA1300FF813180450031C173C00100009000B1", "OpenPGP" },
{ "3BFA1800008031FE45FE654944202F20504B4903", "Estonian Identity Card (EstEID v3.5 (10.2014) cold) (eID)\nhttp://id.ee/" }, { "3BFA1800008031FE45FE654944202F20504B4903", "Estonian Identity Card (EstEID v3.5 (10.2014) cold) (eID)\nhttp://id.ee/" },
{ "3BFA1800008131FE4506082A841001876E0805BC", "Dutch Rijkspas (eID)" }, { "3BFA1800008131FE4506082A841001876E0805BC", "Dutch Rijkspas (eID)" },
{ "3BFA1800008131FE4506082A841001876E0807BE", "Rijkspas (identification card dutch government employees) (eID)\nhttps://nl.wikipedia.org/wiki/Rijkspas\nDutch government multifunctional smartcard (Other)\nhttps://nl.wikipedia.org/wiki/Rijkspas" }, { "3BFA1800008131FE4506082A841001876E0807BE", "Rijkspas (identification card dutch government employees) (eID)\nhttps://nl.wikipedia.org/wiki/Rijkspas\nDutch goverment multifunctional smartcard (Other)\nhttps://nl.wikipedia.org/wiki/Rijkspas" },
{ "3BFA1800008131FE45060860841001876F0602FE", "Card used by the Dutch health insurers to give medical personell access to patient insurance information" }, { "3BFA1800008131FE45060860841001876F0602FE", "Card used by the Dutch health insurers to give medical personell access to patient insurance information" },
{ "3BFA1800008131FE454A33413034305632343184", "NXP J3A 40K\nJava Card v2.2.2 - Global Platform v2.2.1\nDual-interface functionality (features 1K Mifare emulation)" }, { "3BFA1800008131FE454A33413034305632343184", "NXP J3A 40K\nJava Card v2.2.2 - Global Platform v2.2.1\nDual-interface functionality (features 1K Mifare emulation)" },
{ "3BFA1800008131FE454A33413038315632343189", "NXP JCOP CJ3A081\nhttp://www.usmartcards.com/media/downloads/492/NXP%20P5CX012%2002X%2040%2073%2080%20144%20%20%202011.pdf" }, { "3BFA1800008131FE454A33413038315632343189", "NXP JCOP CJ3A081\nhttp://www.usmartcards.com/media/downloads/492/NXP%20P5CX012%2002X%2040%2073%2080%20144%20%20%202011.pdf" },
@ -3330,6 +3384,7 @@ const static atr_t AtrTable[] = {
{ "3BFB1300008131FE456368617269736D6174657884", "Charismathics smart card JCOP and Qualified electronic signature CHJCOP-xxx (PKI)\nhttps://www.stampit.org/en/page/808" }, { "3BFB1300008131FE456368617269736D6174657884", "Charismathics smart card JCOP and Qualified electronic signature CHJCOP-xxx (PKI)\nhttps://www.stampit.org/en/page/808" },
{ "3BFB1300FF10800031C164086032060F9000", "Stripe Issuing Card (Bank)" }, { "3BFB1300FF10800031C164086032060F9000", "Stripe Issuing Card (Bank)" },
{ "3BFB1300FF10800031C164086032100F9000", "Varo (Bank)" }, { "3BFB1300FF10800031C164086032100F9000", "Varo (Bank)" },
{ "3BFB1300FF10800031C164089862210F9000", "Visa Debit (Bank)" },
{ "3BFB1300FF813180755A43352E3520524556204763", "ZeitControl BasicCard 5.5" }, { "3BFB1300FF813180755A43352E3520524556204763", "ZeitControl BasicCard 5.5" },
{ "3BFB1300FF813180755A43352E3620524556204D6A", "ZeitControl BasicCard ZC5.6 user-programmable smart card\nhttp://www.basiccard.com/index.html?overview.htm" }, { "3BFB1300FF813180755A43352E3620524556204D6A", "ZeitControl BasicCard ZC5.6 user-programmable smart card\nhttp://www.basiccard.com/index.html?overview.htm" },
{ "3BFB1300FF813180755A43362E3520524556204364", "ZeitControl BasicCard 6.5, multiapplication with 30 kByte EEPROM" }, { "3BFB1300FF813180755A43362E3520524556204364", "ZeitControl BasicCard 6.5, multiapplication with 30 kByte EEPROM" },
@ -3368,6 +3423,7 @@ const static atr_t AtrTable[] = {
{ "3BFD1300008131FE4541373030364347203234325231D6", "YubiKey NEO (token)" }, { "3BFD1300008131FE4541373030364347203234325231D6", "YubiKey NEO (token)" },
{ "3BFD1300008131FE454A434F50323176323331474454E1", "National Health Insurance Card, Taiwan" }, { "3BFD1300008131FE454A434F50323176323331474454E1", "National Health Insurance Card, Taiwan" },
{ "3BFD1300008131FE45543D314A323133364B56323331DC", "ic Card (JavaCard)" }, { "3BFD1300008131FE45543D314A323133364B56323331DC", "ic Card (JavaCard)" },
{ "3BFD1300FF10000031C173C8400052A1C5009000", "IBKR Prepaid MasterCard, Issued by Peoples Trust Company (Bank)\nhttps://www.interactivebrokers.com/en/index.php?f=26451" },
{ "3BFD1800008031FE45003180718E6452D904008190005B", "Oberthur Card Systems, authentIC" }, { "3BFD1800008031FE45003180718E6452D904008190005B", "Oberthur Card Systems, authentIC" },
{ "3BFD1800008031FE4553434536302D43443038312D46C4", "Panama Electronic Signature (JavaCard)" }, { "3BFD1800008031FE4553434536302D43443038312D46C4", "Panama Electronic Signature (JavaCard)" },
{ "3BFD1800008031FE45736674652063643134342D6E66D8", "SmartCafe Expert 3.2 144K Dual is a contact and contactless technology Java card from G&D with 144K on-board EEPROM for application and data storage. Certified to FIPS 140-2 Level 3 and Common Criteria EAL 5+. Supports specifications ISO 14443A T=CL and ISO 7816 T=1/0. (PKI)\nhttp://www.smartcardfocus.us/shop/ilp/id~523/smartcafe-expert-3-2-144k-dual/p/index.shtml" }, { "3BFD1800008031FE45736674652063643134342D6E66D8", "SmartCafe Expert 3.2 144K Dual is a contact and contactless technology Java card from G&D with 144K on-board EEPROM for application and data storage. Certified to FIPS 140-2 Level 3 and Common Criteria EAL 5+. Supports specifications ISO 14443A T=CL and ISO 7816 T=1/0. (PKI)\nhttp://www.smartcardfocus.us/shop/ilp/id~523/smartcafe-expert-3-2-144k-dual/p/index.shtml" },
@ -3428,6 +3484,8 @@ const static atr_t AtrTable[] = {
{ "3BFF1100008171404200002101314252000[05]63........9000.*", "Smart Card 'The Smart Way to Login'\nUsed on Acer TravelMate to secure boot" }, { "3BFF1100008171404200002101314252000[05]63........9000.*", "Smart Card 'The Smart Way to Login'\nUsed on Acer TravelMate to secure boot" },
{ "3BFF11000240648069A2070103570000FF0083009000", "Gemplus GemXpresso" }, { "3BFF11000240648069A2070103570000FF0083009000", "Gemplus GemXpresso" },
{ "3BFF1100FF8131FE9580F9D2760000255444010083000000A0", "GiroCard Haspa Hamburger Sparkasse (Bank)\nhttps://www.haspa.de/privatkunden/ihr-online-banking/unser-angebot/haspa-digital-services-96198/" }, { "3BFF1100FF8131FE9580F9D2760000255444010083000000A0", "GiroCard Haspa Hamburger Sparkasse (Bank)\nhttps://www.haspa.de/privatkunden/ihr-online-banking/unser-angebot/haspa-digital-services-96198/" },
{ "3BFF13000010003101F1564011001900000000000000", "BVG Guthabenkarte (Prepaid Payment Card for Berlin/Brandenburg Public Transport) (Transport)\nhttps://www.bvg.de/de/service-und-kontakt/guthabenkarte" },
{ "3BFF13000010003101F1564011001D00000000000000", "albo (Bank)\nhttps://www.albo.mx/" },
{ "3BFF1300008131FE450031B9640404ECC17394018082900052", "AKD kID (eID)\nhttps://www.id.hr" }, { "3BFF1300008131FE450031B9640404ECC17394018082900052", "AKD kID (eID)\nhttps://www.id.hr" },
{ "3BFF1300008131FE450031B9640444ECC17394018082900012", "Croation personal ID card (eID)\nhttp://eid.hr/" }, { "3BFF1300008131FE450031B9640444ECC17394018082900012", "Croation personal ID card (eID)\nhttp://eid.hr/" },
{ "3BFF1300008131FE4543443269A94100002020202020200053", "Visa credit card (Viseca Card Services SA, Switzerland) (Bank)\nhttps://www.viseca.ch/privatkunden/kreditkarten\nVisa credit card, UBS Switzerland (Bank)" }, { "3BFF1300008131FE4543443269A94100002020202020200053", "Visa credit card (Viseca Card Services SA, Switzerland) (Bank)\nhttps://www.viseca.ch/privatkunden/kreditkarten\nVisa credit card, UBS Switzerland (Bank)" },
@ -3435,11 +3493,12 @@ const static atr_t AtrTable[] = {
{ "3BFF1300008131FE454F574F4B31302D4A................", "OWOK (One Web, One Key) login card\nhttp://www.reiner-sct.com/owok/\nReiner SCT loginCard\nhttps://cardlogin.reiner-sct.com/" }, { "3BFF1300008131FE454F574F4B31302D4A................", "OWOK (One Web, One Key) login card\nhttp://www.reiner-sct.com/owok/\nReiner SCT loginCard\nhttps://cardlogin.reiner-sct.com/" },
{ "3BFF1300008131FE4D8025A00000005657444B3333300600D2", "Datakey DCOS model 330 (DKCCOS 6.0 token)" }, { "3BFF1300008131FE4D8025A00000005657444B3333300600D2", "Datakey DCOS model 330 (DKCCOS 6.0 token)" },
{ "3BFF1300FF10000031C173C821106441443533079000", "BRADESCO-CONTA SALARIO (Bank)" }, { "3BFF1300FF10000031C173C821106441443533079000", "BRADESCO-CONTA SALARIO (Bank)" },
{ "3BFF1300FF10000031C173C8211064414D3130079000", "Tangerine MasterCard (Bank)\nhttps://www.tangerine.ca/en/products/spending/creditcard/money-back/" },
{ "3BFF1300FF10000031C173C8211064414D3330079000", "VISA card issued by ING-DiBa AG (Germany) (Bank)" }, { "3BFF1300FF10000031C173C8211064414D3330079000", "VISA card issued by ING-DiBa AG (Germany) (Bank)" },
{ "3BFF1300FF10000031C173C8211064414D3337079000", "VISA Credit Card (Postbank), Germany (Bank)" }, { "3BFF1300FF10000031C173C8211064414D3337079000", "VISA Credit Card (Postbank), Germany (Bank)" },
{ "3BFF1300FF10000031C173C8211064414D3341079000", "BBVA debit card Uruguay. MIFRE Plus compatible. (Bank)" }, { "3BFF1300FF10000031C173C8211064414D3341079000", "BBVA debit card Uruguay. MIFRE Plus compatible. (Bank)\nScotiabank Passport Visa Infinite credit card (Bank)\nhttps://www.scotiabank.com/ca/en/personal/credit-cards/visa/passport-infinite-card.html" },
{ "3BFF1300FF10000031C173C8211064414D3347079000", "Chase Visa Debit Card (Bank)\nhttps://www.chase.com/bankinghelp" }, { "3BFF1300FF10000031C173C8211064414D3347079000", "Chase Visa Debit Card (Bank)\nhttps://www.chase.com/bankinghelp" },
{ "3BFF1300FF10000031C173C8211064414D3348079000", "BBVA blue VISA Debit Card (Bank)\nhttps://www.bbva.es/en/personas/productos/tarjetas/tarjeta-joven-ahora.html" }, { "3BFF1300FF10000031C173C8211064414D3348079000", "BBVA blue VISA Debit Card (Bank)\nhttps://www.bbva.es/en/personas/productos/tarjetas/tarjeta-joven-ahora.html\nDesjardins Bonus Visa credit card (Bank)\nhttps://www.desjardins.com/ca/personal/loans-credit/credit-cards/bonus-visa/index.jsp" },
{ "3BFF1300FF10808031E06B04310502AF555555555555", "USAA EMV Visa Debit Card (Bank)" }, { "3BFF1300FF10808031E06B04310502AF555555555555", "USAA EMV Visa Debit Card (Bank)" },
{ "3BFF1300FF10808031E06B071405028A555555555555", "Tangerine Debit Card (Bank)\nhttps://www.tangerine.ca" }, { "3BFF1300FF10808031E06B071405028A555555555555", "Tangerine Debit Card (Bank)\nhttps://www.tangerine.ca" },
{ "3BFF1300FF10808031E06B08240502B5555555555555", "Tangerine Canada Interac debit card (Bank)\nhttps://www.tangerine.ca/" }, { "3BFF1300FF10808031E06B08240502B5555555555555", "Tangerine Canada Interac debit card (Bank)\nhttps://www.tangerine.ca/" },
@ -3459,7 +3518,7 @@ const static atr_t AtrTable[] = {
{ "3BFF1800008131FE45006B04050100012101434E5310318059", "CNS - Carta Nazionale dei Servizi (Italia)\nPA emittente: Regione Autonoma della Sardegna\nCarta del Servizio Sanitario Regionale - Emilia Romagna" }, { "3BFF1800008131FE45006B04050100012101434E5310318059", "CNS - Carta Nazionale dei Servizi (Italia)\nPA emittente: Regione Autonoma della Sardegna\nCarta del Servizio Sanitario Regionale - Emilia Romagna" },
{ "3BFF1800008131FE45006B05051017012101434E531031805E", "Regional Card - Regione Liguria, Veneto - Italy (eID)\nTessera Sanitaria - Carta Regionale dei Servizi" }, { "3BFF1800008131FE45006B05051017012101434E531031805E", "Regional Card - Regione Liguria, Veneto - Italy (eID)\nTessera Sanitaria - Carta Regionale dei Servizi" },
{ "3BFF1800008131FE45006B05052000012101434E5310318079", "health card (HealthCare)\nhttps://tscns.regione.sardegna.it/" }, { "3BFF1800008131FE45006B05052000012101434E5310318079", "health card (HealthCare)\nhttps://tscns.regione.sardegna.it/" },
{ "3BFF1800008131FE45006B11050700011101434E531131807B", "Italian National Fire Corps -special identification card (eID)" }, { "3BFF1800008131FE45006B11050700011101434E531131807B", "Italian National Fire Corps -special indentification card (eID)" },
{ "3BFF1800008131FE45006B11050700012101434E531031804A", "Oberthur ID-One Cosmo V7-n it's a java card 2.2.2\nIzenpe Certificado Ciudadano (eID)\nhttps://www.izenpe.eus/informacion/certificado-ciudadano/s15-content/es/" }, { "3BFF1800008131FE45006B11050700012101434E531031804A", "Oberthur ID-One Cosmo V7-n it's a java card 2.2.2\nIzenpe Certificado Ciudadano (eID)\nhttps://www.izenpe.eus/informacion/certificado-ciudadano/s15-content/es/" },
{ "3BFF1800008131FE4D8025A00000005657444B3430300600DD", "DataKey 400 (DK400)" }, { "3BFF1800008131FE4D8025A00000005657444B3430300600DD", "DataKey 400 (DK400)" },
{ "3BFF1800008131FE55006B02090403010101434E5310318065", "Italian Chambers of Commerce CNS (PKI)\nhttp://www.card.infocamere.it/infocard/pub/" }, { "3BFF1800008131FE55006B02090403010101434E5310318065", "Italian Chambers of Commerce CNS (PKI)\nhttp://www.card.infocamere.it/infocard/pub/" },

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2021 Merlok // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// CIPURSE transport cards data and commands // CIPURSE transport cards data and commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2021 Merlok // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// CIPURSE transport cards data and commands // CIPURSE transport cards data and commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2021 Merlok // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// CIPURSE crypto primitives // CIPURSE crypto primitives
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2021 Merlok // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// CIPURSE crypto primitives // CIPURSE crypto primitives
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2021 Merlok // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// tests for crypto // tests for crypto
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2021 Merlok // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// tests for crypto // tests for crypto
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2016 iceman // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Analyse bytes commands // Analyse bytes commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@ -21,7 +29,6 @@
#include "crc.h" #include "crc.h"
#include "crc16.h" // crc16 ccitt #include "crc16.h" // crc16 ccitt
#include "crc32.h" // crc32_ex #include "crc32.h" // crc32_ex
#include "tea.h"
#include "legic_prng.h" #include "legic_prng.h"
#include "cmddata.h" // g_DemodBuffer #include "cmddata.h" // g_DemodBuffer
#include "graph.h" #include "graph.h"
@ -481,55 +488,6 @@ static int CmdAnalyseDates(const char *Cmd) {
return PM3_SUCCESS; return PM3_SUCCESS;
} }
static int CmdAnalyseTEASelfTest(const char *Cmd) {
CLIParserContext *ctx;
CLIParserInit(&ctx, "analyse tea",
"Crypto TEA self tests",
"analyse tea -d 1122334455667788"
);
void *argtable[] = {
arg_param_begin,
arg_str1("d", "data", "<hex>", "bytes to encrypt ( 8 hex bytes )"),
arg_param_end
};
CLIExecWithReturn(ctx, Cmd, argtable, true);
int dlen = 0;
uint8_t data[8] = {0x00};
int res = CLIParamHexToBuf(arg_get_str(ctx, 1), data, sizeof(data), &dlen);
CLIParserFree(ctx);
if (res) {
PrintAndLogEx(FAILED, "Error parsing bytes");
return PM3_EINVARG;
}
uint8_t v_le[8];
memset(v_le, 0x00, sizeof(v_le));
uint8_t *v_ptr = v_le;
SwapEndian64ex(data, 8, 4, v_ptr);
// ENCRYPTION KEY:
uint8_t key[16] = {0x55, 0xFE, 0xF6, 0x30, 0x62, 0xBF, 0x0B, 0xC1, 0xC9, 0xB3, 0x7C, 0x34, 0x97, 0x3E, 0x29, 0xFB };
uint8_t keyle[16];
uint8_t *key_ptr = keyle;
SwapEndian64ex(key, sizeof(key), 4, key_ptr);
PrintAndLogEx(INFO, "TEA crypto testing");
PrintAndLogEx(INFO, "-----------------------------------+---------");
PrintAndLogEx(INFO, "LE enc.... %s", sprint_hex_ascii(v_ptr, 8));
tea_decrypt(v_ptr, key_ptr);
PrintAndLogEx(INFO, "LE dec.... %s", sprint_hex_ascii(v_ptr, 8));
tea_encrypt(v_ptr, key_ptr);
PrintAndLogEx(INFO, "enc1...... %s", sprint_hex_ascii(v_ptr, 8));
tea_encrypt(v_ptr, key_ptr);
PrintAndLogEx(INFO, "enc2...... %s", sprint_hex_ascii(v_ptr, 8));
PrintAndLogEx(NORMAL, "");
return PM3_SUCCESS;
}
static int CmdAnalyseA(const char *Cmd) { static int CmdAnalyseA(const char *Cmd) {
CLIParserContext *ctx; CLIParserContext *ctx;
CLIParserInit(&ctx, "analyse a", CLIParserInit(&ctx, "analyse a",
@ -1181,11 +1139,11 @@ static int CmdAnalyseUnits(const char *Cmd) {
PrintAndLogEx(INFO, " 32 SSP = %u ETU (expect 1) " _GREEN_("ok"), SSP_TO_ETU(32)); PrintAndLogEx(INFO, " 32 SSP = %u ETU (expect 1) " _GREEN_("ok"), SSP_TO_ETU(32));
} else if (etu) { } else if (etu) {
PrintAndLogEx(INFO, " %d ETU = %u us ", ETU_TO_US(etu)); PrintAndLogEx(INFO, " %d ETU = %u us ", ETU_TO_US(etu), 0);
PrintAndLogEx(INFO, " %d ETU = %u SSP ", ETU_TO_SSP(etu)); PrintAndLogEx(INFO, " %d ETU = %u SSP ", ETU_TO_SSP(etu), 0);
} else if (us) { } else if (us) {
PrintAndLogEx(INFO, " %d us = %u ETU ", US_TO_ETU(us)); PrintAndLogEx(INFO, " %d us = %u ETU ", US_TO_ETU(us), 0);
PrintAndLogEx(INFO, " %d us = %u SSP ", US_TO_SSP(us)); PrintAndLogEx(INFO, " %d us = %u SSP ", US_TO_SSP(us), 0);
} }
return PM3_SUCCESS; return PM3_SUCCESS;
@ -1197,7 +1155,6 @@ static command_t CommandTable[] = {
{"crc", CmdAnalyseCRC, AlwaysAvailable, "Stub method for CRC evaluations"}, {"crc", CmdAnalyseCRC, AlwaysAvailable, "Stub method for CRC evaluations"},
{"chksum", CmdAnalyseCHKSUM, AlwaysAvailable, "Checksum with adding, masking and one's complement"}, {"chksum", CmdAnalyseCHKSUM, AlwaysAvailable, "Checksum with adding, masking and one's complement"},
{"dates", CmdAnalyseDates, AlwaysAvailable, "Look for datestamps in a given array of bytes"}, {"dates", CmdAnalyseDates, AlwaysAvailable, "Look for datestamps in a given array of bytes"},
{"tea", CmdAnalyseTEASelfTest, AlwaysAvailable, "Crypto TEA test"},
{"lfsr", CmdAnalyseLfsr, AlwaysAvailable, "LFSR tests"}, {"lfsr", CmdAnalyseLfsr, AlwaysAvailable, "LFSR tests"},
{"a", CmdAnalyseA, AlwaysAvailable, "num bits test"}, {"a", CmdAnalyseA, AlwaysAvailable, "num bits test"},
{"nuid", CmdAnalyseNuid, AlwaysAvailable, "create NUID from 7byte UID"}, {"nuid", CmdAnalyseNuid, AlwaysAvailable, "create NUID from 7byte UID"},

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2016 iceman <iceman at ...> // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Data and Graph commands // Data and Graph commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,11 +1,21 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2015 iceman <iceman at iuse.se> // Borrowed initially from https://reveng.sourceforge.io/
// Copyright (C) Greg Cook 2019
// Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// CRC Calculations from the software reveng commands // CRC Calculations
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
#include "cmdcrc.h" #include "cmdcrc.h"

View file

@ -1,9 +1,19 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2015 iceman <iceman at iuse.se> // Borrowed initially from https://reveng.sourceforge.io/
// Copyright (C) Greg Cook 2019
// Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// CRC Calculations from the software reveng commands // CRC Calculations from the software reveng commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,11 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2010 iZsh <izsh at fail0verflow.com> // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// modified Marshmellow,
// modified Iceman 2019, 2020, 2021
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Data and Graph commands // Data and Graph commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2010 iZsh <izsh at fail0verflow.com> // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Data and Graph commands // Data and Graph commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2018 iceman // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Proxmark3 RDV40 Flash memory commands // Proxmark3 RDV40 Flash memory commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2018 iceman // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Proxmark3 RDV40 Flash memory commands // Proxmark3 RDV40 Flash memory commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2018 iceman // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Proxmark3 RDV40 Flash memory commands // Proxmark3 RDV40 Flash memory commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2018 iceman // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Proxmark3 RDV40 Flash memory commands // Proxmark3 RDV40 Flash memory commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,13 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2010 iZsh <izsh at fail0verflow.com> // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// Merlok - 2017
// Doegox - 2019
// Iceman - 2019
// Piwi - 2019
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency commands // High frequency commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2010 iZsh <izsh at fail0verflow.com> // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// Piwi, Feb 2019 //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency commands // High frequency commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,12 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2010 iZsh <izsh at fail0verflow.com>, Hagen Fritsch // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// 2011, 2017 - 2019 Merlok
// 2014, Peter Fillmore
// 2015, 2016, 2017 Iceman
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency ISO14443A commands // High frequency ISO14443A commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,10 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2010 iZsh <izsh at fail0verflow.com> // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// 2011,2019 Merlok //
// 2015,2016,2017 iceman, marshmellow, piwi // This program is free software: you can redistribute it and/or modify
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // it under the terms of the GNU General Public License as published by
// at your option, any later version. See the LICENSE.txt file for the text of // the Free Software Foundation, either version 3 of the License, or
// the license. // (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency ISO14443A commands // High frequency ISO14443A commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,10 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2010 iZsh <izsh at fail0verflow.com> // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// Modified 2018, 2020 iceman
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency ISO14443B commands // High frequency ISO14443B commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2010 iZsh <izsh at fail0verflow.com> // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency ISO14443B commands // High frequency ISO14443B commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,12 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2010 iZsh <izsh at fail0verflow.com> // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// Modified 2010-2012 by <adrian -at- atrox.at>
// Modified 2012 by <vsza at vsza.hu>
// Modified 2018 by <iceman>
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency ISO15693 commands // High frequency ISO15693 commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2010 iZsh <izsh at fail0verflow.com> // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency ISO15693 commands // High frequency ISO15693 commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2021 Merlok // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency FIDO U2F and FIDO2 contactless authenticators // High frequency FIDO U2F and FIDO2 contactless authenticators
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2021 Merlok // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency FIDO U2F and FIDO2 contactless authenticators // High frequency FIDO U2F and FIDO2 contactless authenticators
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2020 iceman // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency CryptoRF commands (ISO14443B) // High frequency CryptoRF commands (ISO14443B)
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2020 iceman // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency CryptoRF commands (ISO14443B) // High frequency CryptoRF commands (ISO14443B)
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2020 A. Ozkal // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency Electronic Machine Readable Travel Document commands // High frequency Electronic Machine Readable Travel Document commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2020 A. Ozkal // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency Electronic Machine Readable Travel Document commands // High frequency Electronic Machine Readable Travel Document commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2012 Frederik Möllers // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Commands related to the German electronic Identification Card // Commands related to the German electronic Identification Card
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2012 Frederik Möllers // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Commands related to the German electronic Identification Card // Commands related to the German electronic Identification Card
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,11 +1,19 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2017 October, Satsuoni // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// 2017,2021 iceman //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency ISO18092 / FeliCa commands // High frequency ISO 18002 / FeliCa commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
#include "cmdhffelica.h" #include "cmdhffelica.h"
#include <stdio.h> #include <stdio.h>
@ -169,12 +177,6 @@ static int print_authentication2(void) {
static const char *felica_model_name(uint8_t rom_type, uint8_t ic_type) { static const char *felica_model_name(uint8_t rom_type, uint8_t ic_type) {
// source: mainly https://www.sony.net/Products/felica/business/tech-support/list.html // source: mainly https://www.sony.net/Products/felica/business/tech-support/list.html
if (ic_type >= 0x14 && ic_type <= 0x1F) {
return "FeliCa Mobile IC Chip V3.0";
}
switch (ic_type) { switch (ic_type) {
// FeliCa Standard Products: // FeliCa Standard Products:
case 0x46: case 0x46:
@ -231,7 +233,7 @@ static const char *felica_model_name(uint8_t rom_type, uint8_t ic_type) {
case 0x1D: case 0x1D:
case 0x1E: case 0x1E:
case 0x1F: case 0x1F:
return "Mobile FeliCa IC Chip V3.0"; return "FeliCa Mobile IC Chip V3.0";
case 0x10: case 0x10:
case 0x11: case 0x11:
case 0x12: case 0x12:

View file

@ -1,11 +1,19 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2017 October, Satsuoni // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// 2017 iceman //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency ISO18092 / FeliCa commands // High frequency ISO 18002 / FeliCa commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
#ifndef CMDHFFELICA_H__ #ifndef CMDHFFELICA_H__

View file

@ -1,11 +1,19 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2018 Merlok // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency MIFARE Plus commands // High frequency FIDO U2F and FIDO2 contactless authenticators
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// //
// Documentation here: // Documentation here:

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2018 Merlok // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency FIDO U2F and FIDO2 contactless authenticators // High frequency FIDO U2F and FIDO2 contactless authenticators
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

File diff suppressed because it is too large Load diff

View file

@ -1,14 +1,22 @@
/** //-----------------------------------------------------------------------------
* Matt Moran (@DarkMatterMatt), 2021 // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
* ----------------------------------------------------------------------------- //
* This program is free software: you can redistribute it and/or modify it // This program is free software: you can redistribute it and/or modify
* under the terms of the GNU General Public License as published by the // it under the terms of the GNU General Public License as published by
* Free Software Foundation, either version 3 of the License, or (at your // the Free Software Foundation, either version 3 of the License, or
* option) any later version. // (at your option) any later version.
* ----------------------------------------------------------------------------- //
* High frequency GALLAGHER tag commands. // This program is distributed in the hope that it will be useful,
* MIFARE DESFire, AIDs 2081F4-2F81F4 // but WITHOUT ANY WARRANTY; without even the implied warranty of
*/ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//-----------------------------------------------------------------------------
// High frequency GALLAGHER tag commands.
// MIFARE DESFire, AIDs 2081F4-2F81F4
//-----------------------------------------------------------------------------
#ifndef CMDHFGALLAGHER_H__ #ifndef CMDHFGALLAGHER_H__
#define CMDHFGALLAGHER_H__ #define CMDHFGALLAGHER_H__
@ -32,14 +40,6 @@ int CmdHFGallagher(const char *cmd);
int hfgal_diversify_key(uint8_t *site_key, uint8_t *uid, uint8_t uid_len, int hfgal_diversify_key(uint8_t *site_key, uint8_t *uid, uint8_t uid_len,
uint8_t key_num, uint32_t aid, uint8_t *key_output); uint8_t key_num, uint32_t aid, uint8_t *key_output);
// Return error
#define HFGAL_RET_ERR(err, ...) { PrintAndLogEx(ERR, __VA_ARGS__); return err; }
// HF GALlagher RETurn IF ERRor
#define HFGAL_RET_IF_ERR(res) if (res != PM3_SUCCESS) { return res; }
#define HFGAL_RET_IF_ERR_WITH_MSG(res, ...) if (res != PM3_SUCCESS) { PrintAndLogEx(ERR, __VA_ARGS__); return res; }
#define HFGAL_RET_IF_ERR_MAYBE_MSG(res, verbose, ...) if (res != PM3_SUCCESS) { if (verbose) PrintAndLogEx(ERR, __VA_ARGS__); return res; }
// The response code when an invalid key is used for authentication // The response code when an invalid key is used for authentication
// Returned in /client/src/mifare/desfirecore.c, line 1185 (if DesfireExchangeEx fails) // Returned in /client/src/mifare/desfirecore.c, line 1185 (if DesfireExchangeEx fails)
#define HFGAL_AUTH_FAIL 7 #define HFGAL_AUTH_FAIL 7

View file

@ -1,13 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2010 iZsh <izsh at fail0verflow.com>, Hagen Fritsch // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// Copyright (C) 2011 Gerhard de Koning Gans
// Copyright (C) 2014 Midnitesnake & Andy Davies & Martin Holst Swende
// Copyright (C) 2019 piwi
// Copyright (C) 2020 Iceman
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency iClass commands // High frequency iClass commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@ -3826,7 +3830,7 @@ static int CmdHFiClassEncode(const char *Cmd) {
wiegand_message_t packed; wiegand_message_t packed;
memset(&packed, 0, sizeof(wiegand_message_t)); memset(&packed, 0, sizeof(wiegand_message_t));
int format_idx = HIDFindCardFormat((char *)format); int format_idx = HIDFindCardFormat(format);
if (format_idx == -1) { if (format_idx == -1) {
PrintAndLogEx(WARNING, "Unknown format: " _YELLOW_("%s"), format); PrintAndLogEx(WARNING, "Unknown format: " _YELLOW_("%s"), format);
return PM3_EINVARG; return PM3_EINVARG;

View file

@ -1,10 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2010 iZsh <izsh at fail0verflow.com> // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// Copyright (C) 2011 Gerhard de Koning Gans
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency iClass support // High frequency iClass support
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,10 +1,19 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Ultralight Code (c) 2021 Iceman // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// This code is licensed to you under the terms of the GNU GPL, version 2 or, //
// at your option, any later version. See the LICENSE.txt file for the text of // This program is free software: you can redistribute it and/or modify
// the license. // it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency MIFARE ULTRALIGHT / Jooki commands // High frequency Jooki commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
#include "cmdhfjooki.h" #include "cmdhfjooki.h"
#include <ctype.h> #include <ctype.h>

View file

@ -1,11 +1,19 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2021 iceman1001 // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency ISO14443A / MFU / Jooki commands // High frequency Jooki commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
#ifndef CMDHFJOOKI_H__ #ifndef CMDHFJOOKI_H__

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2019 micolous+git@gmail.com // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Commands for KS X 6924 transit cards (T-Money, Snapper+) // Commands for KS X 6924 transit cards (T-Money, Snapper+)
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@ -48,7 +56,7 @@ static int get_and_print_balance(void) {
return PM3_ESOFT; return PM3_ESOFT;
} }
PrintAndLogEx(SUCCESS, "Current balance: " _YELLOW_("%ld") " won/cents", balance); PrintAndLogEx(SUCCESS, "Current balance: " _YELLOW_("%u") " won/cents", balance);
return PM3_SUCCESS; return PM3_SUCCESS;
} }

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2019 micolous+git@gmail.com // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Commands for KS X 6924 transit cards (T-Money, Snapper+) // Commands for KS X 6924 transit cards (T-Money, Snapper+)
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,21 +1,25 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2010 iZsh <izsh at fail0verflow.com> // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency Legic commands // High frequency Legic commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
#include "cmdhflegic.h" #include "cmdhflegic.h"
#include <stdio.h> // for Mingw readline
#include <ctype.h> // tolower #include <ctype.h> // tolower
#ifdef HAVE_READLINE #include "pm3line.h" // pm3line_read, pm3line_free
#include <readline/readline.h>
#endif
#include "cliparser.h" #include "cliparser.h"
#include "cmdparser.h" // command_t #include "cmdparser.h" // command_t
#include "comms.h" // clearCommandBuffer #include "comms.h" // clearCommandBuffer
@ -545,19 +549,9 @@ static int CmdLegicWrbl(const char *Cmd) {
PrintAndLogEx(INFO, "#####################################"); PrintAndLogEx(INFO, "#####################################");
const char *confirm = "Do you really want to continue? y(es)/n(o) : "; const char *confirm = "Do you really want to continue? y(es)/n(o) : ";
bool overwrite = false; bool overwrite = false;
#ifdef HAVE_READLINE char *answer = pm3line_read(confirm);
char *answer = readline(confirm);
overwrite = (answer[0] == 'y' || answer[0] == 'Y'); overwrite = (answer[0] == 'y' || answer[0] == 'Y');
#else pm3line_free(answer);
PrintAndLogEx(NORMAL, "%s" NOLF, confirm);
char *answer = NULL;
size_t anslen = 0;
if (getline(&answer, &anslen, stdin) > 0) {
overwrite = (answer[0] == 'y' || answer[0] == 'Y');
}
PrintAndLogEx(NORMAL, "");
#endif
free(answer);
if (overwrite == false) { if (overwrite == false) {
PrintAndLogEx(WARNING, "command cancelled"); PrintAndLogEx(WARNING, "command cancelled");
return PM3_EOPABORTED; return PM3_EOPABORTED;

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2010 iZsh <izsh at fail0verflow.com> // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency Legic commands // High frequency Legic commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,10 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) Merlok - 2017 // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// iceman 2018
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Command: hf mf list. It shows data from arm buffer. // Command: hf mf list. It shows data from arm buffer.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) Merlok - 2017 // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Command: hf mf list. It shows data from arm buffer. // Command: hf mf list. It shows data from arm buffer.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2019 iceman // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// LTO-CM commands // LTO-CM commands
// LTO Cartridge memory // LTO Cartridge memory

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2019 iceman // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// LTO-CM commands // LTO-CM commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2011,2012 Merlok // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency MIFARE commands // High frequency MIFARE commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@ -306,7 +314,6 @@ static int CmdHF14AMfAcl(const char *Cmd) {
return PM3_SUCCESS; return PM3_SUCCESS;
} }
static int CmdHF14AMfDarkside(const char *Cmd) { static int CmdHF14AMfDarkside(const char *Cmd) {
CLIParserContext *ctx; CLIParserContext *ctx;
CLIParserInit(&ctx, "hf mf darkside", CLIParserInit(&ctx, "hf mf darkside",
@ -335,31 +342,32 @@ static int CmdHF14AMfDarkside(const char *Cmd) {
CLIParserFree(ctx); CLIParserFree(ctx);
uint64_t key = 0; uint64_t key = 0;
uint64_t t1 = msclock();
int isOK = mfDarkside(blockno, key_type, &key); int isOK = mfDarkside(blockno, key_type, &key);
PrintAndLogEx(NORMAL, ""); t1 = msclock() - t1;
switch (isOK) { switch (isOK) {
case -1 : case -1 :
PrintAndLogEx(WARNING, "button pressed. Aborted."); PrintAndLogEx(WARNING, "button pressed, aborted");
return PM3_ESOFT; return PM3_ESOFT;
case -2 : case -2 :
PrintAndLogEx(FAILED, "card is not vulnerable to Darkside attack (doesn't send NACK on authentication requests)."); PrintAndLogEx(FAILED, "card is not vulnerable to Darkside attack (doesn't send NACK on authentication requests)");
return PM3_ESOFT; return PM3_ESOFT;
case -3 : case -3 :
PrintAndLogEx(FAILED, "card is not vulnerable to Darkside attack (its random number generator is not predictable)."); PrintAndLogEx(FAILED, "card is not vulnerable to Darkside attack (its random number generator is not predictable)");
return PM3_ESOFT; return PM3_ESOFT;
case -4 : case -4 :
PrintAndLogEx(FAILED, "card is not vulnerable to Darkside attack (its random number generator seems to be based on the wellknown"); PrintAndLogEx(FAILED, "card is not vulnerable to Darkside attack (its random number generator seems to be based on the wellknown");
PrintAndLogEx(FAILED, "generating polynomial with 16 effective bits only, but shows unexpected behaviour."); PrintAndLogEx(FAILED, "generating polynomial with 16 effective bits only, but shows unexpected behaviour");
return PM3_ESOFT;
case -5 :
PrintAndLogEx(WARNING, "aborted via keyboard.");
return PM3_ESOFT; return PM3_ESOFT;
case PM3_EOPABORTED :
PrintAndLogEx(WARNING, "aborted via keyboard");
return PM3_EOPABORTED;
default : default :
PrintAndLogEx(SUCCESS, "found valid key: "_YELLOW_("%012" PRIx64), key); PrintAndLogEx(SUCCESS, "found valid key: "_GREEN_("%012" PRIx64), key);
break; break;
} }
PrintAndLogEx(NORMAL, ""); PrintAndLogEx(SUCCESS, "time in darkside " _YELLOW_("%.0f") " seconds\n", (float)t1 / 1000.0);
return PM3_SUCCESS; return PM3_SUCCESS;
} }

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2011 Merlok // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency MIFARE commands // High frequency MIFARE commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,10 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2014 Iceman // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// Copyright (C) 2021 Merlok
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency MIFARE Desfire commands // High frequency MIFARE Desfire commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,10 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) Iceman, 2014 // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// Copyright (C) 2021 Merlok
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency MIFARE Desfire commands // High frequency MIFARE Desfire commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,10 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2015, 2016 by piwi // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// fiddled with 2016 Azcid (hardnested bitsliced Bruteforce imp) //
// fiddled with 2016 Matrix ( sub testing of nonces while collecting ) // This program is free software: you can redistribute it and/or modify
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // it under the terms of the GNU General Public License as published by
// at your option, any later version. See the LICENSE.txt file for the text of // the Free Software Foundation, either version 3 of the License, or
// the license. // (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Implements a card only attack based on crypto text (encrypted nonces // Implements a card only attack based on crypto text (encrypted nonces
// received during a nested authentication) only. Unlike other card only // received during a nested authentication) only. Unlike other card only
@ -49,9 +56,11 @@
#define DEBUG_KEY_ELIMINATION #define DEBUG_KEY_ELIMINATION
// #define DEBUG_REDUCTION // #define DEBUG_REDUCTION
static uint16_t sums[NUM_SUMS] = {0, 32, 56, 64, 80, 96, 104, 112, 120, 128, 136, 144, 152, 160, 176, 192, 200, 224, 256}; // possible sum property values // possible sum property values
static uint16_t sums[NUM_SUMS] = {0, 32, 56, 64, 80, 96, 104, 112, 120, 128, 136, 144, 152, 160, 176, 192, 200, 224, 256};
#define NUM_PART_SUMS 9 // number of possible partial sum property values // number of possible partial sum property values
#define NUM_PART_SUMS 9
typedef enum { typedef enum {
EVEN_STATE = 0, EVEN_STATE = 0,
@ -72,7 +81,6 @@ static uint64_t known_target_key;
static uint32_t test_state[2] = {0, 0}; static uint32_t test_state[2] = {0, 0};
static float brute_force_per_second; static float brute_force_per_second;
static void get_SIMD_instruction_set(char *instruction_set) { static void get_SIMD_instruction_set(char *instruction_set) {
switch (GetSIMDInstrAuto()) { switch (GetSIMDInstrAuto()) {
#if defined(COMPILER_HAS_SIMD_AVX512) #if defined(COMPILER_HAS_SIMD_AVX512)
@ -101,7 +109,6 @@ static void get_SIMD_instruction_set(char *instruction_set) {
} }
} }
static void print_progress_header(void) { static void print_progress_header(void) {
char progress_text[80]; char progress_text[80];
char instr_set[12] = ""; char instr_set[12] = "";
@ -136,7 +143,6 @@ void hardnested_print_progress(uint32_t nonces, const char *activity, float brut
} }
} }
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// bitarray functions // bitarray functions
@ -236,7 +242,6 @@ static void init_bunzip2(bz_stream *compressed_stream, char *input_buffer, uint3
} }
static void init_bitflip_bitarrays(void) { static void init_bitflip_bitarrays(void) {
#if defined (DEBUG_REDUCTION) #if defined (DEBUG_REDUCTION)
uint8_t line = 0; uint8_t line = 0;
@ -365,7 +370,6 @@ static void init_bitflip_bitarrays(void) {
hardnested_print_progress(0, progress_text, (float)(1LL << 47), 0); hardnested_print_progress(0, progress_text, (float)(1LL << 47), 0);
} }
static void free_bitflip_bitarrays(void) { static void free_bitflip_bitarrays(void) {
for (int16_t bitflip = 0x3ff; bitflip > 0x000; bitflip--) { for (int16_t bitflip = 0x3ff; bitflip > 0x000; bitflip--) {
free_bitarray(bitflip_bitarrays[ODD_STATE][bitflip]); free_bitarray(bitflip_bitarrays[ODD_STATE][bitflip]);
@ -375,7 +379,6 @@ static void free_bitflip_bitarrays(void) {
} }
} }
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// sum property bitarrays // sum property bitarrays
@ -406,7 +409,6 @@ static uint16_t PartialSumProperty(uint32_t state, odd_even_t odd_even) {
return sum; return sum;
} }
static void init_part_sum_bitarrays(void) { static void init_part_sum_bitarrays(void) {
for (odd_even_t odd_even = EVEN_STATE; odd_even <= ODD_STATE; odd_even++) { for (odd_even_t odd_even = EVEN_STATE; odd_even <= ODD_STATE; odd_even++) {
for (uint16_t part_sum_a0 = 0; part_sum_a0 < NUM_PART_SUMS; part_sum_a0++) { for (uint16_t part_sum_a0 = 0; part_sum_a0 < NUM_PART_SUMS; part_sum_a0++) {
@ -449,7 +451,6 @@ static void init_part_sum_bitarrays(void) {
} }
} }
static void free_part_sum_bitarrays(void) { static void free_part_sum_bitarrays(void) {
for (int16_t part_sum_a8 = (NUM_PART_SUMS - 1); part_sum_a8 >= 0; part_sum_a8--) { for (int16_t part_sum_a8 = (NUM_PART_SUMS - 1); part_sum_a8 >= 0; part_sum_a8--) {
free_bitarray(part_sum_a8_bitarrays[ODD_STATE][part_sum_a8]); free_bitarray(part_sum_a8_bitarrays[ODD_STATE][part_sum_a8]);
@ -465,7 +466,6 @@ static void free_part_sum_bitarrays(void) {
} }
} }
static void init_sum_bitarrays(void) { static void init_sum_bitarrays(void) {
for (uint16_t sum_a0 = 0; sum_a0 < NUM_SUMS; sum_a0++) { for (uint16_t sum_a0 = 0; sum_a0 < NUM_SUMS; sum_a0++) {
for (odd_even_t odd_even = EVEN_STATE; odd_even <= ODD_STATE; odd_even++) { for (odd_even_t odd_even = EVEN_STATE; odd_even <= ODD_STATE; odd_even++) {
@ -489,7 +489,6 @@ static void init_sum_bitarrays(void) {
} }
static void free_sum_bitarrays(void) { static void free_sum_bitarrays(void) {
for (int8_t sum_a0 = NUM_SUMS - 1; sum_a0 >= 0; sum_a0--) { for (int8_t sum_a0 = NUM_SUMS - 1; sum_a0 >= 0; sum_a0--) {
free_bitarray(sum_a0_bitarrays[ODD_STATE][sum_a0]); free_bitarray(sum_a0_bitarrays[ODD_STATE][sum_a0]);
@ -497,7 +496,6 @@ static void free_sum_bitarrays(void) {
} }
} }
#ifdef DEBUG_KEY_ELIMINATION #ifdef DEBUG_KEY_ELIMINATION
static char failstr[250] = ""; static char failstr[250] = "";
#endif #endif
@ -505,9 +503,7 @@ static char failstr[250] = "";
static const float p_K0[NUM_SUMS] = { // the probability that a random nonce has a Sum Property K static const float p_K0[NUM_SUMS] = { // the probability that a random nonce has a Sum Property K
0.0290, 0.0083, 0.0006, 0.0339, 0.0048, 0.0934, 0.0119, 0.0489, 0.0602, 0.4180, 0.0602, 0.0489, 0.0119, 0.0934, 0.0048, 0.0339, 0.0006, 0.0083, 0.0290 0.0290, 0.0083, 0.0006, 0.0339, 0.0048, 0.0934, 0.0119, 0.0489, 0.0602, 0.4180, 0.0602, 0.0489, 0.0119, 0.0934, 0.0048, 0.0339, 0.0006, 0.0083, 0.0290
}; };
static float my_p_K[NUM_SUMS]; static float my_p_K[NUM_SUMS];
static const float *p_K; static const float *p_K;
static uint32_t cuid; static uint32_t cuid;
@ -527,7 +523,6 @@ static uint64_t sample_period = 0;
static uint64_t num_keys_tested = 0; static uint64_t num_keys_tested = 0;
static statelist_t *candidates = NULL; static statelist_t *candidates = NULL;
static int add_nonce(uint32_t nonce_enc, uint8_t par_enc) { static int add_nonce(uint32_t nonce_enc, uint8_t par_enc) {
uint8_t first_byte = nonce_enc >> 24; uint8_t first_byte = nonce_enc >> 24;
noncelistentry_t *p1 = nonces[first_byte].first; noncelistentry_t *p1 = nonces[first_byte].first;
@ -545,15 +540,15 @@ static int add_nonce(uint32_t nonce_enc, uint8_t par_enc) {
if (p1 == NULL) { // need to add at the end of the list if (p1 == NULL) { // need to add at the end of the list
if (p2 == NULL) { // list is empty yet. Add first entry. if (p2 == NULL) { // list is empty yet. Add first entry.
p2 = nonces[first_byte].first = malloc(sizeof(noncelistentry_t)); p2 = nonces[first_byte].first = calloc(1, sizeof(noncelistentry_t));
} else { // add new entry at end of existing list. } else { // add new entry at end of existing list.
p2 = p2->next = malloc(sizeof(noncelistentry_t)); p2 = p2->next = calloc(1, sizeof(noncelistentry_t));
} }
} else if ((p1->nonce_enc & 0x00ff0000) != (nonce_enc & 0x00ff0000)) { // found distinct 2nd byte. Need to insert. } else if ((p1->nonce_enc & 0x00ff0000) != (nonce_enc & 0x00ff0000)) { // found distinct 2nd byte. Need to insert.
if (p2 == NULL) { // need to insert at start of list if (p2 == NULL) { // need to insert at start of list
p2 = nonces[first_byte].first = malloc(sizeof(noncelistentry_t)); p2 = nonces[first_byte].first = calloc(1, sizeof(noncelistentry_t));
} else { } else {
p2 = p2->next = malloc(sizeof(noncelistentry_t)); p2 = p2->next = calloc(1, sizeof(noncelistentry_t));
} }
} else { // we have seen this 2nd byte before. Nothing to add or insert. } else { // we have seen this 2nd byte before. Nothing to add or insert.
return (0); return (0);
@ -570,7 +565,6 @@ static int add_nonce(uint32_t nonce_enc, uint8_t par_enc) {
return (1); // new nonce added return (1); // new nonce added
} }
static void init_nonce_memory(void) { static void init_nonce_memory(void) {
for (uint16_t i = 0; i < 256; i++) { for (uint16_t i = 0; i < 256; i++) {
nonces[i].num = 0; nonces[i].num = 0;
@ -605,7 +599,6 @@ static void init_nonce_memory(void) {
first_byte_Sum = 0; first_byte_Sum = 0;
} }
static void free_nonce_list(noncelistentry_t *p) { static void free_nonce_list(noncelistentry_t *p) {
if (p == NULL) { if (p == NULL) {
return; return;
@ -635,13 +628,14 @@ static double p_hypergeometric(uint16_t i_K, uint16_t n, uint16_t k) {
// P(X=0) = ----------------------------- // P(X=0) = -----------------------------
// N*(N-1)*...*(N-n+1) // N*(N-1)*...*(N-n+1)
uint16_t const N = 256; uint16_t const N = 256;
uint16_t K = sums[i_K]; uint16_t K = sums[i_K];
// avoids log(x<=0) in calculation below
if (n - k > N - K || k > K) {
return 0.0;
}
if (n - k > N - K || k > K) return 0.0; // avoids log(x<=0) in calculation below
if (k == 0) { if (k == 0) {
// use logarithms to avoid overflow with huge factorials (double type can only hold 170!) // use logarithms to avoid overflow with huge factorials (double type can only hold 170!)
double log_result = 0.0; double log_result = 0.0;
@ -673,7 +667,9 @@ static double p_hypergeometric(uint16_t i_K, uint16_t n, uint16_t k) {
} }
static float sum_probability(uint16_t i_K, uint16_t n, uint16_t k) { static float sum_probability(uint16_t i_K, uint16_t n, uint16_t k) {
if (k > sums[i_K]) return 0.0; if (k > sums[i_K]) {
return 0.0;
}
double p_T_is_k_when_S_is_K = p_hypergeometric(i_K, n, k); double p_T_is_k_when_S_is_K = p_hypergeometric(i_K, n, k);
double p_S_is_K = p_K[i_K]; double p_S_is_K = p_K[i_K];
@ -699,7 +695,6 @@ static void init_allbitflips_array(void) {
} }
} }
static void update_allbitflips_array(void) { static void update_allbitflips_array(void) {
if (hardnested_stage & CHECK_2ND_BYTES) { if (hardnested_stage & CHECK_2ND_BYTES) {
for (uint16_t i = 0; i < 256; i++) { for (uint16_t i = 0; i < 256; i++) {
@ -717,12 +712,10 @@ static void update_allbitflips_array(void) {
} }
} }
static uint32_t estimated_num_states_part_sum_coarse(uint16_t part_sum_a0_idx, uint16_t part_sum_a8_idx, odd_even_t odd_even) { static uint32_t estimated_num_states_part_sum_coarse(uint16_t part_sum_a0_idx, uint16_t part_sum_a8_idx, odd_even_t odd_even) {
return part_sum_count[odd_even][part_sum_a0_idx][part_sum_a8_idx]; return part_sum_count[odd_even][part_sum_a0_idx][part_sum_a8_idx];
} }
static uint32_t estimated_num_states_part_sum(uint8_t first_byte, uint16_t part_sum_a0_idx, uint16_t part_sum_a8_idx, odd_even_t odd_even) { static uint32_t estimated_num_states_part_sum(uint8_t first_byte, uint16_t part_sum_a0_idx, uint16_t part_sum_a8_idx, odd_even_t odd_even) {
if (odd_even == ODD_STATE) { if (odd_even == ODD_STATE) {
return count_bitarray_AND3(part_sum_a0_bitarrays[odd_even][part_sum_a0_idx], return count_bitarray_AND3(part_sum_a0_bitarrays[odd_even][part_sum_a0_idx],
@ -744,7 +737,6 @@ static uint32_t estimated_num_states_part_sum(uint8_t first_byte, uint16_t part_
// } // }
} }
static uint64_t estimated_num_states(uint8_t first_byte, uint16_t sum_a0, uint16_t sum_a8) { static uint64_t estimated_num_states(uint8_t first_byte, uint16_t sum_a0, uint16_t sum_a8) {
uint64_t num_states = 0; uint64_t num_states = 0;
for (uint8_t p = 0; p < NUM_PART_SUMS; p++) { for (uint8_t p = 0; p < NUM_PART_SUMS; p++) {
@ -764,7 +756,6 @@ static uint64_t estimated_num_states(uint8_t first_byte, uint16_t sum_a0, uint16
return num_states; return num_states;
} }
static uint64_t estimated_num_states_coarse(uint16_t sum_a0, uint16_t sum_a8) { static uint64_t estimated_num_states_coarse(uint16_t sum_a0, uint16_t sum_a8) {
uint64_t num_states = 0; uint64_t num_states = 0;
for (uint8_t p = 0; p < NUM_PART_SUMS; p++) { for (uint8_t p = 0; p < NUM_PART_SUMS; p++) {
@ -784,7 +775,6 @@ static uint64_t estimated_num_states_coarse(uint16_t sum_a0, uint16_t sum_a8) {
return num_states; return num_states;
} }
static void update_p_K(void) { static void update_p_K(void) {
if (hardnested_stage & CHECK_2ND_BYTES) { if (hardnested_stage & CHECK_2ND_BYTES) {
uint64_t total_count = 0; uint64_t total_count = 0;
@ -806,7 +796,6 @@ static void update_p_K(void) {
} }
} }
static void update_sum_bitarrays(odd_even_t odd_even) { static void update_sum_bitarrays(odd_even_t odd_even) {
if (all_bitflips_bitarray_dirty[odd_even]) { if (all_bitflips_bitarray_dirty[odd_even]) {
for (uint8_t part_sum = 0; part_sum < NUM_PART_SUMS; part_sum++) { for (uint8_t part_sum = 0; part_sum < NUM_PART_SUMS; part_sum++) {
@ -826,7 +815,6 @@ static void update_sum_bitarrays(odd_even_t odd_even) {
} }
} }
static int compare_expected_num_brute_force(const void *b1, const void *b2) { static int compare_expected_num_brute_force(const void *b1, const void *b2) {
uint8_t index1 = *(uint8_t *)b1; uint8_t index1 = *(uint8_t *)b1;
uint8_t index2 = *(uint8_t *)b2; uint8_t index2 = *(uint8_t *)b2;
@ -835,7 +823,6 @@ static int compare_expected_num_brute_force(const void *b1, const void *b2) {
return (score1 > score2) - (score1 < score2); return (score1 > score2) - (score1 < score2);
} }
static int compare_sum_a8_guess(const void *b1, const void *b2) { static int compare_sum_a8_guess(const void *b1, const void *b2) {
float prob1 = ((guess_sum_a8_t *)b1)->prob; float prob1 = ((guess_sum_a8_t *)b1)->prob;
float prob2 = ((guess_sum_a8_t *)b2)->prob; float prob2 = ((guess_sum_a8_t *)b2)->prob;
@ -843,7 +830,6 @@ static int compare_sum_a8_guess(const void *b1, const void *b2) {
} }
static float check_smallest_bitflip_bitarrays(void) { static float check_smallest_bitflip_bitarrays(void) {
uint64_t smallest = 1LL << 48; uint64_t smallest = 1LL << 48;
// initialize best_first_bytes, do a rough estimation on remaining states // initialize best_first_bytes, do a rough estimation on remaining states
@ -864,7 +850,6 @@ static float check_smallest_bitflip_bitarrays(void) {
return (float)smallest / 2.0; return (float)smallest / 2.0;
} }
static void update_expected_brute_force(uint8_t best_byte) { static void update_expected_brute_force(uint8_t best_byte) {
float total_prob = 0.0; float total_prob = 0.0;
@ -885,7 +870,6 @@ static void update_expected_brute_force(uint8_t best_byte) {
return; return;
} }
static float sort_best_first_bytes(void) { static float sort_best_first_bytes(void) {
// initialize best_first_bytes, do a rough estimation on remaining states for each Sum_a8 property // initialize best_first_bytes, do a rough estimation on remaining states for each Sum_a8 property
@ -974,7 +958,6 @@ static float sort_best_first_bytes(void) {
return nonces[best_first_bytes[0]].expected_num_brute_force; return nonces[best_first_bytes[0]].expected_num_brute_force;
} }
static float update_reduction_rate(float last, bool init) { static float update_reduction_rate(float last, bool init) {
#define QUEUE_LEN 4 #define QUEUE_LEN 4
static float queue[QUEUE_LEN]; static float queue[QUEUE_LEN];
@ -1017,7 +1000,6 @@ static float update_reduction_rate(float last, bool init) {
return reduction_rate; return reduction_rate;
} }
static bool shrink_key_space(float *brute_forces) { static bool shrink_key_space(float *brute_forces) {
#if defined(DEBUG_REDUCTION) #if defined(DEBUG_REDUCTION)
PrintAndLogEx(INFO, "shrink_key_space() with stage = 0x%02x\n", hardnested_stage); PrintAndLogEx(INFO, "shrink_key_space() with stage = 0x%02x\n", hardnested_stage);
@ -1037,7 +1019,6 @@ static bool shrink_key_space(float *brute_forces) {
} }
static void estimate_sum_a8(void) { static void estimate_sum_a8(void) {
if (first_byte_num == 256) { if (first_byte_num == 256) {
for (uint16_t i = 0; i < 256; i++) { for (uint16_t i = 0; i < 256; i++) {
@ -1053,7 +1034,6 @@ static void estimate_sum_a8(void) {
} }
} }
static int read_nonce_file(char *filename) { static int read_nonce_file(char *filename) {
if (filename == NULL) { if (filename == NULL) {
@ -1100,17 +1080,21 @@ static int read_nonce_file(char *filename) {
sprintf(progress_string, "Target Block=%d, Keytype=%c", trgBlockNo, trgKeyType == 0 ? 'A' : 'B'); sprintf(progress_string, "Target Block=%d, Keytype=%c", trgBlockNo, trgKeyType == 0 ? 'A' : 'B');
hardnested_print_progress(num_acquired_nonces, progress_string, (float)(1LL << 47), 0); hardnested_print_progress(num_acquired_nonces, progress_string, (float)(1LL << 47), 0);
bool got_match = false;
for (uint8_t i = 0; i < NUM_SUMS; i++) { for (uint8_t i = 0; i < NUM_SUMS; i++) {
if (first_byte_Sum == sums[i]) { if (first_byte_Sum == sums[i]) {
first_byte_Sum = i; first_byte_Sum = i;
got_match = true;
break; break;
} }
} }
if (got_match == false) {
return 0; PrintAndLogEx(FAILED, "No match for the First_Byte_Sum (%u), is the card a genuine MFC Ev1? ", first_byte_Sum);
return 1;
}
return PM3_SUCCESS;
} }
static noncelistentry_t *SearchFor2ndByte(uint8_t b1, uint8_t b2) { static noncelistentry_t *SearchFor2ndByte(uint8_t b1, uint8_t b2) {
noncelistentry_t *p = nonces[b1].first; noncelistentry_t *p = nonces[b1].first;
while (p != NULL) { while (p != NULL) {
@ -1122,7 +1106,6 @@ static noncelistentry_t *SearchFor2ndByte(uint8_t b1, uint8_t b2) {
return NULL; return NULL;
} }
static bool timeout(void) { static bool timeout(void) {
return (msclock() > last_sample_clock + sample_period); return (msclock() > last_sample_clock + sample_period);
} }
@ -1226,7 +1209,6 @@ __attribute__((force_align_arg_pointer))
return NULL; return NULL;
} }
static void check_for_BitFlipProperties(bool time_budget) { static void check_for_BitFlipProperties(bool time_budget) {
// create and run worker threads // create and run worker threads
pthread_t thread_id[NUM_CHECK_BITFLIPS_THREADS]; pthread_t thread_id[NUM_CHECK_BITFLIPS_THREADS];
@ -1265,7 +1247,6 @@ static void check_for_BitFlipProperties(bool time_budget) {
#endif #endif
} }
static void update_nonce_data(bool time_budget) { static void update_nonce_data(bool time_budget) {
check_for_BitFlipProperties(time_budget); check_for_BitFlipProperties(time_budget);
update_allbitflips_array(); update_allbitflips_array();
@ -1275,7 +1256,6 @@ static void update_nonce_data(bool time_budget) {
estimate_sum_a8(); estimate_sum_a8();
} }
static void apply_sum_a0(void) { static void apply_sum_a0(void) {
uint32_t old_count = num_all_bitflips_bitarray[EVEN_STATE]; uint32_t old_count = num_all_bitflips_bitarray[EVEN_STATE];
num_all_bitflips_bitarray[EVEN_STATE] = count_bitarray_AND(all_bitflips_bitarray[EVEN_STATE], sum_a0_bitarrays[EVEN_STATE][first_byte_Sum]); num_all_bitflips_bitarray[EVEN_STATE] = count_bitarray_AND(all_bitflips_bitarray[EVEN_STATE], sum_a0_bitarrays[EVEN_STATE][first_byte_Sum]);
@ -1289,7 +1269,6 @@ static void apply_sum_a0(void) {
} }
} }
static void simulate_MFplus_RNG(uint32_t test_cuid, uint64_t test_key, uint32_t *nt_enc, uint8_t *par_enc) { static void simulate_MFplus_RNG(uint32_t test_cuid, uint64_t test_key, uint32_t *nt_enc, uint8_t *par_enc) {
struct Crypto1State sim_cs = {0, 0}; struct Crypto1State sim_cs = {0, 0};
@ -1309,10 +1288,9 @@ static void simulate_MFplus_RNG(uint32_t test_cuid, uint64_t test_key, uint32_t
uint8_t nt_byte_par_enc = ks_par ^ oddparity8(nt_byte_dec); // determine the nt byte's parity and encode it uint8_t nt_byte_par_enc = ks_par ^ oddparity8(nt_byte_dec); // determine the nt byte's parity and encode it
*par_enc = (*par_enc << 1) | nt_byte_par_enc; *par_enc = (*par_enc << 1) | nt_byte_par_enc;
} }
} }
static void simulate_acquire_nonces(void) { static int simulate_acquire_nonces(void) {
time_t time1 = time(NULL); time_t time1 = time(NULL);
last_sample_clock = 0; last_sample_clock = 0;
sample_period = 1000; // for simulation sample_period = 1000; // for simulation
@ -1348,12 +1326,21 @@ static void simulate_acquire_nonces(void) {
if (first_byte_num == 256) { if (first_byte_num == 256) {
if (hardnested_stage == CHECK_1ST_BYTES) { if (hardnested_stage == CHECK_1ST_BYTES) {
bool got_match = false;
for (uint8_t i = 0; i < NUM_SUMS; i++) { for (uint8_t i = 0; i < NUM_SUMS; i++) {
if (first_byte_Sum == sums[i]) { if (first_byte_Sum == sums[i]) {
first_byte_Sum = i; first_byte_Sum = i;
got_match = true;
break; break;
} }
} }
if (got_match == false) {
PrintAndLogEx(FAILED, "No match for the First_Byte_Sum (%u), is the card a genuine MFC Ev1? ", first_byte_Sum);
return PM3_ESOFT;
}
hardnested_stage |= CHECK_2ND_BYTES; hardnested_stage |= CHECK_2ND_BYTES;
apply_sum_a0(); apply_sum_a0();
} }
@ -1382,10 +1369,9 @@ static void simulate_acquire_nonces(void) {
// ); // );
fprintf(fstats, "%" PRIu32 ";%" PRIu32 ";%1.0f;", total_num_nonces, num_acquired_nonces, difftime(end_time, time1)); fprintf(fstats, "%" PRIu32 ";%" PRIu32 ";%1.0f;", total_num_nonces, num_acquired_nonces, difftime(end_time, time1));
return PM3_SUCCESS;
} }
static int acquire_nonces(uint8_t blockNo, uint8_t keyType, uint8_t *key, uint8_t trgBlockNo, uint8_t trgKeyType, bool nonce_file_write, bool slow, char *filename) { static int acquire_nonces(uint8_t blockNo, uint8_t keyType, uint8_t *key, uint8_t trgBlockNo, uint8_t trgKeyType, bool nonce_file_write, bool slow, char *filename) {
last_sample_clock = msclock(); last_sample_clock = msclock();
@ -1479,12 +1465,20 @@ static int acquire_nonces(uint8_t blockNo, uint8_t keyType, uint8_t *key, uint8_
if (first_byte_num == 256) { if (first_byte_num == 256) {
if (hardnested_stage == CHECK_1ST_BYTES) { if (hardnested_stage == CHECK_1ST_BYTES) {
bool got_match = false;
for (uint8_t i = 0; i < NUM_SUMS; i++) { for (uint8_t i = 0; i < NUM_SUMS; i++) {
if (first_byte_Sum == sums[i]) { if (first_byte_Sum == sums[i]) {
first_byte_Sum = i; first_byte_Sum = i;
got_match = true;
break; break;
} }
} }
if (got_match == false) {
PrintAndLogEx(FAILED, "No match for the First_Byte_Sum (%u), is the card a genuine MFC Ev1? ", first_byte_Sum);
return 4;
}
hardnested_stage |= CHECK_2ND_BYTES; hardnested_stage |= CHECK_2ND_BYTES;
apply_sum_a0(); apply_sum_a0();
} }
@ -1543,10 +1537,9 @@ static int acquire_nonces(uint8_t blockNo, uint8_t keyType, uint8_t *key, uint8_
fclose(fnonces); fclose(fnonces);
} }
return 0; return PM3_SUCCESS;
} }
static inline bool invariant_holds(uint_fast8_t byte_diff, uint_fast32_t state1, uint_fast32_t state2, uint_fast8_t bit, uint_fast8_t state_bit) { static inline bool invariant_holds(uint_fast8_t byte_diff, uint_fast32_t state1, uint_fast32_t state2, uint_fast8_t bit, uint_fast8_t state_bit) {
uint_fast8_t j_1_bit_mask = 0x01 << (bit - 1); uint_fast8_t j_1_bit_mask = 0x01 << (bit - 1);
uint_fast8_t bit_diff = byte_diff & j_1_bit_mask; // difference of (j-1)th bit uint_fast8_t bit_diff = byte_diff & j_1_bit_mask; // difference of (j-1)th bit
@ -1557,7 +1550,6 @@ static inline bool invariant_holds(uint_fast8_t byte_diff, uint_fast32_t state1,
return !all_diff; return !all_diff;
} }
static inline bool invalid_state(uint_fast8_t byte_diff, uint_fast32_t state1, uint_fast32_t state2, uint_fast8_t bit, uint_fast8_t state_bit) { static inline bool invalid_state(uint_fast8_t byte_diff, uint_fast32_t state1, uint_fast32_t state2, uint_fast8_t bit, uint_fast8_t state_bit) {
uint_fast8_t j_bit_mask = (0x01 << bit); uint_fast8_t j_bit_mask = (0x01 << bit);
uint_fast8_t bit_diff = byte_diff & j_bit_mask; // difference of jth bit uint_fast8_t bit_diff = byte_diff & j_bit_mask; // difference of jth bit
@ -1567,7 +1559,6 @@ static inline bool invalid_state(uint_fast8_t byte_diff, uint_fast32_t state1, u
return all_diff; return all_diff;
} }
static inline bool remaining_bits_match(uint_fast8_t num_common_bits, uint_fast8_t byte_diff, uint_fast32_t state1, uint_fast32_t state2, odd_even_t odd_even) { static inline bool remaining_bits_match(uint_fast8_t num_common_bits, uint_fast8_t byte_diff, uint_fast32_t state1, uint_fast32_t state2, odd_even_t odd_even) {
if (odd_even) { if (odd_even) {
// odd bits // odd bits
@ -1612,11 +1603,9 @@ static inline bool remaining_bits_match(uint_fast8_t num_common_bits, uint_fast8
return true; // valid state return true; // valid state
} }
static pthread_mutex_t statelist_cache_mutex = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t statelist_cache_mutex = PTHREAD_MUTEX_INITIALIZER;
static pthread_mutex_t book_of_work_mutex = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t book_of_work_mutex = PTHREAD_MUTEX_INITIALIZER;
typedef enum { typedef enum {
TO_BE_DONE, TO_BE_DONE,
WORK_IN_PROGRESS, WORK_IN_PROGRESS,
@ -1629,7 +1618,6 @@ static struct sl_cache_entry {
work_status_t cache_status; work_status_t cache_status;
} sl_cache[NUM_PART_SUMS][NUM_PART_SUMS][2]; } sl_cache[NUM_PART_SUMS][NUM_PART_SUMS][2];
static void init_statelist_cache(void) { static void init_statelist_cache(void) {
pthread_mutex_lock(&statelist_cache_mutex); pthread_mutex_lock(&statelist_cache_mutex);
for (uint16_t i = 0; i < NUM_PART_SUMS; i++) { for (uint16_t i = 0; i < NUM_PART_SUMS; i++) {
@ -1644,7 +1632,6 @@ static void init_statelist_cache(void) {
pthread_mutex_unlock(&statelist_cache_mutex); pthread_mutex_unlock(&statelist_cache_mutex);
} }
static void free_statelist_cache(void) { static void free_statelist_cache(void) {
pthread_mutex_lock(&statelist_cache_mutex); pthread_mutex_lock(&statelist_cache_mutex);
for (uint16_t i = 0; i < NUM_PART_SUMS; i++) { for (uint16_t i = 0; i < NUM_PART_SUMS; i++) {
@ -1743,7 +1730,6 @@ static void bitarray_to_list(uint8_t byte, uint32_t *bitarray, uint32_t *state_l
*len = p - state_list; *len = p - state_list;
} }
static void add_cached_states(statelist_t *cands, uint16_t part_sum_a0, uint16_t part_sum_a8, odd_even_t odd_even) { static void add_cached_states(statelist_t *cands, uint16_t part_sum_a0, uint16_t part_sum_a8, odd_even_t odd_even) {
cands->states[odd_even] = sl_cache[part_sum_a0 / 2][part_sum_a8 / 2][odd_even].sl; cands->states[odd_even] = sl_cache[part_sum_a0 / 2][part_sum_a8 / 2][odd_even].sl;
cands->len[odd_even] = sl_cache[part_sum_a0 / 2][part_sum_a8 / 2][odd_even].len; cands->len[odd_even] = sl_cache[part_sum_a0 / 2][part_sum_a8 / 2][odd_even].len;
@ -2220,7 +2206,6 @@ int mfnestedhard(uint8_t blockNo, uint8_t keyType, uint8_t *key, uint8_t trgBloc
char instr_set[12] = {0}; char instr_set[12] = {0};
get_SIMD_instruction_set(instr_set); get_SIMD_instruction_set(instr_set);
PrintAndLogEx(SUCCESS, "Using " _GREEN_("%s") " SIMD core.", instr_set);
// initialize static arrays // initialize static arrays
memset(part_sum_count, 0, sizeof(part_sum_count)); memset(part_sum_count, 0, sizeof(part_sum_count));
@ -2236,7 +2221,7 @@ int mfnestedhard(uint8_t blockNo, uint8_t keyType, uint8_t *key, uint8_t trgBloc
setlocale(LC_NUMERIC, ""); setlocale(LC_NUMERIC, "");
if ((fstats = fopen("hardnested_stats.txt", "a")) == NULL) { if ((fstats = fopen("hardnested_stats.txt", "a")) == NULL) {
PrintAndLogEx(WARNING, "Could not create/open file " _YELLOW_("hardnested_stats.txt")); PrintAndLogEx(WARNING, "Could not create/open file " _YELLOW_("hardnested_stats.txt"));
return 3; return PM3_EFILE;
} }
for (uint32_t i = 0; i < tests; i++) { for (uint32_t i = 0; i < tests; i++) {
@ -2260,7 +2245,9 @@ int mfnestedhard(uint8_t blockNo, uint8_t keyType, uint8_t *key, uint8_t trgBloc
init_nonce_memory(); init_nonce_memory();
update_reduction_rate(0.0, true); update_reduction_rate(0.0, true);
simulate_acquire_nonces(); if (simulate_acquire_nonces() != PM3_SUCCESS) {
return 3;
}
set_test_state(best_first_bytes[0]); set_test_state(best_first_bytes[0]);

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2015 piwi // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// hf mf hardnested command // hf mf hardnested command
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,10 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2018 Merlok // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// Copyright (C) 2018 drHatson
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency MIFARE Plus commands // High frequency MIFARE Plus commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2018 Merlok // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency MIFARE Plus commands // High frequency MIFARE Plus commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Ultralight Code (c) 2013,2014 Midnitesnake & Andy Davies of Pentura // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// 2015,2016,2017 Iceman, Marshmellow //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency MIFARE ULTRALIGHT (C) commands // High frequency MIFARE ULTRALIGHT (C) commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,3 +1,20 @@
//-----------------------------------------------------------------------------
// Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//-----------------------------------------------------------------------------
// High frequency MIFARE ULTRALIGHT (C) commands
//-----------------------------------------------------------------------------
#ifndef CMDHFMFU_H__ #ifndef CMDHFMFU_H__
#define CMDHFMFU_H__ #define CMDHFMFU_H__

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2021 iceman // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// SEOS commands // SEOS commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2021 iceman // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// SEOS commands // SEOS commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2020 iceman1001 // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency ISO14443A / ST commands // High frequency ISO14443A / ST commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2020 iceman1001 // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency ISO14443A / ST commands // High frequency ISO14443A / ST commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2020 iceman1001 // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency ISO14443A / ST25TA commands // High frequency ISO14443A / ST25TA commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2020 iceman1001 // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency ISO14443A / ST25TA commands // High frequency ISO14443A / ST25TA commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2019 iceman // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Thinfilm commands // Thinfilm commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2019 iceman // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Thinfilm commands // Thinfilm commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -1,9 +1,17 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Copyright (C) 2015 Piwi // Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
// //
// This code is licensed to you under the terms of the GNU GPL, version 2 or, // This program is free software: you can redistribute it and/or modify
// at your option, any later version. See the LICENSE.txt file for the text of // it under the terms of the GNU General Public License as published by
// the license. // the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// See LICENSE.txt for the text of the license.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// High frequency Topaz (NFC Type 1) commands // High frequency Topaz (NFC Type 1) commands
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@ -41,8 +49,8 @@ static struct {
uint8_t uid[7]; uint8_t uid[7];
uint16_t size; uint16_t size;
uint8_t data_blocks[TOPAZ_STATIC_MEMORY / 8][8]; // this memory is always there uint8_t data_blocks[TOPAZ_STATIC_MEMORY / 8][8]; // this memory is always there
uint8_t *dynamic_memory; // this memory can be there uint8_t *dynamic_memory; // this memory can be there
dynamic_lock_area_t *dynamic_lock_areas; // lock area descriptors dynamic_lock_area_t *dynamic_lock_areas; // lock area descriptors
} topaz_tag; } topaz_tag;
static void topaz_switch_on_field(void) { static void topaz_switch_on_field(void) {
@ -193,6 +201,11 @@ static bool topaz_byte_is_locked(uint16_t byteno) {
if (lock_area == NULL) { if (lock_area == NULL) {
return false; return false;
} else { } else {
if ((lock_area->byte_offset - TOPAZ_STATIC_MEMORY) < 0) {
return false;
}
lockbits = &topaz_tag.dynamic_memory[lock_area->byte_offset - TOPAZ_STATIC_MEMORY]; lockbits = &topaz_tag.dynamic_memory[lock_area->byte_offset - TOPAZ_STATIC_MEMORY];
locked_bytes_per_bit = lock_area->bytes_locked_per_bit; locked_bytes_per_bit = lock_area->bytes_locked_per_bit;
byteno = byteno - lock_area->first_locked_byte; byteno = byteno - lock_area->first_locked_byte;

Some files were not shown because too many files have changed in this diff Show more