Giter Site home page Giter Site logo

gswxxn / nfctoolsgui Goto Github PK

View Code? Open in Web Editor NEW
60.0 3.0 5.0 1.68 MB

A cross-platform program that interacts with PN532, supports Windows, Linux, and macOS.

License: GNU Affero General Public License v3.0

Shell 6.48% JavaScript 53.85% CSS 21.64% HTML 18.03%
pn532 nfc nfc-card-reader nfc-crack libnfc mifare

nfctoolsgui's Introduction

NFCToolsGUI

icon

A cross-platform program that interacts with PN532, supports Windows, Linux, and macOS.

English | 简体中文

Supported functions

  • Crack card using MFOC
  • Write card
  • Format card
  • Lock UFUID
  • HardNested crack
  • Dictionary testing
  • Dump editing
  • Dump comparison

Interface preview

Driver installation

Choose the appropriate driver according to your actual situation, taking CH341 as an example.

Windows

Download and install CH341SER

macOS

Download and install CH341SER_MAC

Linux

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

How to compile

Compile the core component

Windows

  1. Install MSYS2
  2. Enter the project directory and execute the following command in CMD
     C:\msys64\msys2_shell.cmd -mingw64 -defterm -here -no-start -c ./compile.sh

    Replace C:\msys64\ with the installation path of MSYS2.

Linux

  1. Install dependencies (using Ubuntu as an example)
    sudo apt-get install curl autoconf libtool pkg-config patchelf liblzma-dev libreadline-dev

    The dependency names may vary on different distributions.

  2. Enter the project directory and execute the following command:
    sh ./compile.sh

macOS

  1. Install dependencies:
    brew install autoconf automake libtool pkg-config
  2. Enter the project directory and execute the following command:
    sh ./compile.sh

Compile GUI

  1. Install Node.js
  2. Enter the project directory and execute the following command:
    npm install
    npm run make
  3. After compilation, the compiled files can be found in the out directory

    You can also use npm run start to debug this project.

Directory usage

In addition to the installation directory, the program also uses the following directories to store user files:

  • Windows: %APPDATA%\NFCToolsGUI
  • Linux: $XDG_CONFIG_HOME/NFCToolsGUI or ~/.config/NFCToolsGUI
  • macOS: ~/Library/Application Support/NFCToolsGUI

Notes on Linux

Cannot find a serial port like 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.

Find the Serial Port But Can't Open It

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

License

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/>.
AGPL-3.0 license allows you to:
  • use, modify, and distribute software protected by the AGPL-3.0 license for free.
  • use software protected by the AGPL-3.0 license for commercial purposes.
  • redistribute software in source code or executable form.
  • 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.
  • 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.
AGPL-3.0 license prohibits you from:
  • modifying software protected by the AGPL-3.0 license and distributing it in a proprietary manner.
  • using software protected by the AGPL-3.0 license in your network service without providing users with the complete source code and modified content.

Credits

  • MifareOneTool: A GUI Mifare Classic tool on Windows
  • Electron: A framework for building cross-platform desktop applications.
  • mfoc: Mifare Classic Offline Cracker
  • crypto1_bs: Bitsliced Crypto-1 brute-forcer, used only for nonce collection in this project.
  • cropto1_bs: HardNested brute-forcer.
  • libnfc: Platform-independent NFC library.
  • nfc-mflock: A simple utility to lock block0 of UFUID cards.

nfctoolsgui's People

Contributors

gswxxn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

nfctoolsgui's Issues

error when run npm run make

An unhandled rejection has occurred inside Forge:
Error: Command failed: git rev-parse --short HEAD
fatal: not a git repository (or any of the parent directories): .git
at checkExecSyncError (node:child_process:890:11)
at execSync (node:child_process:962:15)
at Proxy.generateAssets (C:\Users\myname\Downloads\NFCToolsGUI-main\forge.config.js:43:26)
at Task.task (C:\Users\myname\Downloads\NFCToolsGUI-main\node_modules@electron-forge\core\dist\util\hook.js:33:42)
at Task.run (C:\Users\myname\Downloads\NFCToolsGUI-main\node_modules\listr2\dist\index.cjs:978:35)

无法使用HardNested

需解密卡信息:

### 开始执行检测卡片l类型
Found Mifare Classic 1k tag
ISO/IEC 14443A (106 kbps) target:
    ATQA (SENS_RES): 00  04  
* UID size: single
* bit frame anticollision supported
       UID (NFCID1): 4e  e2  16  0b  
      SAK (SEL_RES): 08  
* Not compliant with ISO/IEC 14443-4
* Not compliant with ISO/IEC 18092

Fingerprinting based on MIFARE type Identification Procedure:
* MIFARE Classic 1K
* MIFARE Plus (4 Byte UID or 4 Byte RID) 2K, Security level 1
* SmartMX with MIFARE 1K emulation
Other possible matches based on ATQA & SAK values:

Try to authenticate to all sectors with default keys...
Symbols: '.' no key found, '/' A key found, '\' B key found, 'x' both keys found
[Key: ffffffffffff] -> [xxxxxxxxxx......]
[Key: a0a1a2a3a4a5] -> [xxxxxxxxxx......]
[Key: d3f7d3f7d3f7] -> [xxxxxxxxxx......]
[Key: 000000000000] -> [xxxxxxxxxx......]
[Key: b0b1b2b3b4b5] -> [xxxxxxxxxx......]
[Key: 4d3a99c351dd] -> [xxxxxxxxxx......]
[Key: 1a982c7e459a] -> [xxxxxxxxxx......]
[Key: aabbccddeeff] -> [xxxxxxxxxx......]
[Key: 714c5c886e97] -> [xxxxxxxxxx......]
[Key: 587ee5f9350f] -> [xxxxxxxxxx......]
[Key: a0478cc39091] -> [xxxxxxxxxx......]
[Key: 533cb6c723f6] -> [xxxxxxxxxx......]
[Key: 8fd0a4f256e9] -> [xxxxxxxxxx......]

Sector 00 - Found   Key A: ffffffffffff Found   Key B: ffffffffffff
Sector 01 - Found   Key A: ffffffffffff Found   Key B: ffffffffffff
Sector 02 - Found   Key A: ffffffffffff Found   Key B: ffffffffffff
Sector 03 - Found   Key A: ffffffffffff Found   Key B: ffffffffffff
Sector 04 - Found   Key A: ffffffffffff Found   Key B: ffffffffffff
Sector 05 - Found   Key A: ffffffffffff Found   Key B: ffffffffffff
Sector 06 - Found   Key A: ffffffffffff Found   Key B: ffffffffffff
Sector 07 - Found   Key A: ffffffffffff Found   Key B: ffffffffffff
Sector 08 - Found   Key A: ffffffffffff Found   Key B: ffffffffffff
Sector 09 - Found   Key A: ffffffffffff Found   Key B: ffffffffffff
Sector 10 - Unknown Key A               Unknown Key B
Sector 11 - Unknown Key A               Unknown Key B
Sector 12 - Unknown Key A               Unknown Key B
Sector 13 - Unknown Key A               Unknown Key B
Sector 14 - Unknown Key A               Unknown Key B
Sector 15 - Unknown Key A               Unknown Key B

There are some encrypted blocks

HardNested 使用参数:
image

报错信息:

### 开始收集 Nonces



exit code: 3221225595
### 运行出错 ###

使用只采集不计算功能时报错信息:

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.