用樹莓派3B+和 ITEAD PN532 讀取、破解、寫入M1卡

来源:https://www.cnblogs.com/panda-blog/archive/2018/11/21/9998446.html
-Advertisement-
Play Games

這是一篇介紹如何用樹莓派使用PN532的隨筆,介紹了具體的使用步驟。 首先介紹一下: ①、IC卡是非接觸式的智能卡,裡面一般是一個方形線圈和一個小晶元(用強光照著可以看到)。M1卡是IC卡的一種,一般水卡、公交卡都是這種。UID卡是M1的複製子卡,與M1完全相容。M1卡0扇區的內容可讀不可寫,UID ...


  這是一篇介紹如何用樹莓派使用PN532的隨筆,介紹了具體的使用步驟。

首先介紹一下:

①、IC卡是非接觸式的智能卡,裡面一般是一個方形線圈和一個小晶元(用強光照著可以看到)。M1卡是IC卡的一種,一般水卡、公交卡都是這種。UID卡是M1的複製子卡,與M1完全相容。M1卡0扇區的內容可讀不可寫,UID卡所有扇區均可讀可寫,所以M1卡的數據能複製到UID卡中,而不能複製到M1卡中。

    平常用的M1卡有16個扇區,一個扇區4個塊,一個快16個位元組,一共1K數據。每個扇區的前三個塊是數據區,最後一個塊是keyA、控制段、keyB的存儲區域,分別是6個位元組,4個位元組,6個位元組。第0扇區的第0塊記錄了制卡廠家的或者卡的ID信息,只可讀,不可寫。

②、ITEAD PN532是為嵌入式設計的PN532板子,可以用樹莓派控制(我用window讀取不出來),它有2種數據傳輸模式,SPI和I2C。

 

操作步驟:

用的是I2C介面傳輸數據,SET0-->HSET1-->L

 

連線方法:

樹莓派<----->PN532

  4口   <-----> VCC

  5口   <-----> GND

  3口   <-----> SDA/TX

  5口   <-----> SCL/RX

 

另附一張樹莓派GPIO圖:

 

①、在樹莓派上安裝必要的庫:

 sudo apt-get install libusb-dev libpcsclite-dev          //這是libnfc依賴的庫

 sudo apt-get install automake autoconf          //這是編譯時用到的

 如果安裝libusb-dev和libpcsclite-dev報版本錯誤安裝失敗“ Unable to correct problems, you have held broken packages.”,

 可執行命令:aptitude install libusb-dev ,然後依次輸n、y、y 即可。

②、安裝nfc操作模塊:

 libnfc(操作nfc):

wget http://dl.bintray.com/nfc-tools/sources/libnfc-1.7.1.tar.bz2
tar -xf libnfc-1.7.1.tar.bz2 
cd libnfc-1.7.1
./configure --prefix=/usr --sysconfdir=/etc
make
sudo make install
mfoc(破解key,讀出數據到文件):https://github.com/nfc-tools/mfoc
mfuck(破解全加密數據):https://github.com/nfc-tools/mfcuk
後兩個下載解壓後切換到目錄里執行:
automake
autoconf
autoreconf -is
./configure
make
make install

③修改配置文件:

 cd /etc
 sudo mkdir nfc
 sudo nano /etc/nfc/libnfc.conf

  添加以下內容:

# Allow device auto-detection (default: true)
# Note: if this auto-detection is disabled, user has to manually set a device
# configuration using file or environment variable
allow_autoscan = true

# Allow intrusive auto-detection (default: false)
# Warning: intrusive auto-detection can seriously disturb other devices
# This option is not recommended, so user should prefer to add manually his/her device.
allow_intrusive_scan = false

# Set log level (default: error)
# Valid log levels are (in order of verbosity): 0 (none), 1 (error), 2 (info), 3 (debug)
# Note: if you compiled with --enable-debug option, the default log level is "debug"
log_level = 1

# Manually set default device (no default)
# To set a default device, users must set both name and connstring for their device
# Note: if autoscan is enabled, default device will be the first device available in device list.
device.name = "Itead_PN532_I2C"
device.connstring = "pn532_i2c:/dev/i2c-1"

  

④、開啟樹莓派i2c:

 執行 sudo raspi-config ,在第5項里打開i2c。

⑤、測試

 重啟一下,看看有沒有i2c設備:ls /dev 或者 lsmod

 執行  i2cdetect -y 1  ,如果出現的不全是橫杠,就代表連接成功了,如下圖:

 如果全是橫杠的話,撥一下pn532的vcc線再插上試試。ps:我的也是死活顯示沒有,然後重插一下就有了。

放上一張卡執行 nfc-list,如果正常顯示下麵內容就表示讀取到卡了。

如果提示closed,就是板子沒正常接通。

⑤、讀寫數據:

    mfoc -O output.mfd    // 讀出卡中的數據保存為文件output.mfd 

 mfoc 是讀取數據,如果有加密就自動破解,如果全加密,就沒法讀取,可用mfuck命令破解。

 nfc-mfclassic w a  output.mfd output.mfd    //  寫入數據,w小寫,如果大寫是強寫0扇區

 由於每張卡的0扇區信息(UID)不一樣,0扇區又不可寫,不同的卡沒法互寫。但是可寫入0扇區可寫的UID卡。

 我把讀出來的數據寫入它自己里可以寫入,暫時沒有UID卡,就沒辦法將數據寫入空卡裡。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • .net中的字元串操作性能問題由來已久,幸運的是微軟推出了span<T>高性能指針操作封裝工具類。這個類到底有多高的性能呢?網上傳言反正很高,但是實際上在網上很難找到合適的測試實例,這讓本人實在無力吐槽。經不住高性能這三個字的誘惑,本人還是瞭解了一番後做了幾個簡單樣例來測試一番,下麵列出幾種字元串常 ...
  • 異常信息: System.IO.FileLoadException:“混合模式程式集是針對“v2.0.50727”版的運行時生成的,在沒有配置其他信息的情況下,無法在 4.0 運行時中載入該程式集。” 解決方案: 在app.config新增如下配置節: <startup useLegacyV2Run ...
  • 什麼是EF? ADO.NET Entity Framework 是一個對象-關係的映射架構。 它支持直接定義完全獨立於資料庫結構的實體類,並把它們映射到資料庫的表和關係上。 三種編程模型: 資料庫優先開發模式(Database First Development) 模型優先開發模式(Model Fi ...
  • " 【.NET Core項目實戰 統一認證平臺】開篇及目錄索引 " 上篇文章我介紹瞭如何在網關上增加自定義客戶端授權功能,從設計到編碼實現,一步一步詳細講解,相信大家也掌握了自定義中間件的開發技巧了,本篇我們將介紹如何實現自定義客戶端的限流功能,來進一步完善網關的基礎功能。 .netcore項目實戰 ...
  • ASP.NET -- WebForm -- Cookie的使用 Cookie是存在瀏覽器記憶體或磁碟上。 1. Test3.aspx文件 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Test3.aspx.cs" Inherits="T ...
  • Linux文件類型和Linux文件的文件名所代表的意義是兩個不同的概念。我們通過一般應用程式而創建的比如file.txt、file.tar.gz ,這些文件雖然要用不同的程式來打開,但放在Linux文件類型中衡量的話,大多是常規文件(也被稱為普通文件)。 一. 文件類型 Linux文件類型常見的有: ...
  • master資料庫已投入生產一段時間後,做主從複製的操作記錄 環境: master庫:172.18.237.13slave庫:172.18.237.14 mysql版本說明: master:mysql 5.6.33 slave:mysql 5.6.35 我到公司的時候已經裝了5.6.33版本,找了很 ...
  • 1.Linux修改管理員密碼:打開終端:1. 重啟 2.進入內核登陸系統點擊e3.進入系統救援界面,定位Linux16所在行,找到ro 後刪除,在此位置添加一條命令: 4.點擊Ctrl + x進入內核編輯界面5.輸入: 6.輸入: 來設置語言格式7.輸入: 後輸入2次密碼8.輸入: 讓密碼生效9.點 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...