A cross-platform program that interacts with PN532, supports Windows, Linux, and macOS.
English | 简体中文
Choose the appropriate driver according to your actual situation, taking CH341 as an example.
Download and install CH341SER
Download and install CH341SER_MAC
Usually, the Linux kernel already includes the driver for CH341, so there is no need to install the driver separately. If your Linux kernel does not include the CH341 driver, you can try to download and install CH341SER_LINUX
CMD
C:\msys64\msys2_shell.cmd -mingw64 -defterm -here -no-start -c ./compile.sh
Replace
C:\msys64\
with the installation path of MSYS2.
sudo apt-get install curl autoconf libtool pkg-config patchelf liblzma-dev libreadline-dev
The dependency names may vary on different distributions.
sh ./compile.sh
brew install autoconf automake libtool pkg-config
sh ./compile.sh
npm install
npm run make
out
directory
You can also use
npm run start
to debug this project.
In addition to the installation directory, the program also uses the following directories to store user files:
%APPDATA%\NFCToolsGUI
$XDG_CONFIG_HOME/NFCToolsGUI
or ~/.config/NFCToolsGUI
~/Library/Application Support/NFCToolsGUI
ttyUSB0
First, run the following command:
sudo dmesg | grep brltty
If the output is similar to the following content, it means that your serial port has been occupied by brltty:
interface 0 claimed by ch341 while 'brltty' sets config #1
Execute:
sudo apt remove brltty
to uninstall brltty, and then plug in the device again.
In Linux, accessing a serial port requires sufficient permissions. One solution is to add the current user to the dialout group, which has permissions to access the serial port. This way, the program can access the serial port without using sudo.
You can use the following command to add the current user to the dialout group
sudo usermod -a -G dialout <username>
After adding, you need to log out and log in again to make the changes take effect.
If you don't want to add the user to the dialout group, you can modify the permissions of the serial port file to allow the program to access it. For example, you can use the following command to modify the permission of the /dev/ttyUSB0
file to 666:
sudo chmod 666 /dev/ttyUSB0
Copyright (C) 2022-2023 GSWXXN
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero 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 Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see http://www.gnu.org/licenses/.
<details>
<summary>AGPL-3.0 license allows you to:</summary>
<ul>
<li>use, modify, and distribute software protected by the AGPL-3.0 license for free.</li>
<li>use software protected by the AGPL-3.0 license for commercial purposes.</li>
<li>redistribute software in source code or executable form.</li>
<li>combine software protected by the AGPL-3.0 license with other software or code to create derivative works, as long as these derivative works are also protected by the AGPL-3.0 license and comply with the terms and conditions of the AGPL-3.0 license.</li>
<li>provide software protected by the AGPL-3.0 license on a network, as long as you provide the complete source code and modified content, and allow users to distribute your modifications and derivative works under the same AGPL-3.0 license.</li>
</ul>
</details>
<details>
<summary>AGPL-3.0 license prohibits you from:</summary>
<ul>
<li>modifying software protected by the AGPL-3.0 license and distributing it in a proprietary manner.</li>
<li>using software protected by the AGPL-3.0 license in your network service without providing users with the complete source code and modified content.</li>
</ul>
</details>
## Credits
- [MifareOneTool](https://github.com/xcicode/MifareOneTool/): A GUI Mifare Classic tool on Windows
- [Electron](https://github.com/electron/electron): A framework for building cross-platform desktop applications.
- [mfoc](https://github.com/nfc-tools/mfoc): Mifare Classic Offline Cracker
- [crypto1_bs](https://github.com/aczid/crypto1_bs): Bitsliced Crypto-1 brute-forcer, used only for nonce collection in this project.
- [cropto1_bs](https://github.com/vk496/cropto1_bs): HardNested brute-forcer.
- [libnfc](https://github.com/nfc-tools/libnfc): Platform-independent NFC library.
- [nfc-mflock](https://github.com/duament/nfc-mflock): A simple utility to lock block0 of UFUID cards.