2019年12月6日

arc122_usb在nfc-list出現的問題排解

最近買了一台ACR122U-A9,打算練習很久前就想玩的NFC破解技術
很簡單的在ubuntu上apt install nfc-tools(libnfc)後
確一直卡在

error libnfc.driver.acr122_usb Unable to set alternate setting on USB interface (Connection timed out) nfc_open failed for acr122_usb:001:002

依照網路爬文,在/etc/modprobe.d/blacklist-libnfc.conf設定了
blacklist nfc
blacklist pn533
blacklist pn533_usb


modprobe -r pn533 nfc

但結果還是一樣XDDDDD

$ sudo nfc-scan-device -v
nfc-scan-device uses libnfc 1.7.1
1 NFC device(s) found:
error   libnfc.driver.acr122_usb        Unable to set alternate setting on USB interface (Connection timed out)
nfc_open failed for acr122_usb:001:002 


廢話很多,解法如下


root@kali:~# sudo service pcscd stop
root@kali:~# modprobe -r pn533 nfc
root@kali:~# mkdir test
root@kali:~# cd test


#說明:從網上下載libnfc-1.7.1原始碼
root@kali:~/test# wget http://dl.bintray.com/nfc-tools/sources/libnfc-1.7.1.tar.bz2
root@kali:~/test# tar xjf libnfc-1.7.1.tar.bz2
root@kali:~/test# cd libnfc-1.7.1
root@kali:~/test/libnfc-1.7.1# nano libnfc/drivers/acr122_usb.c


#說明:透過Ctrl+w 或Ctrl+_,跳至433行,找到下面這段程式碼,並將其註解
/* 
    res = usb_set_altinterface(data.pudh, 0);
    if (res < 0) {
 
   log_put(LOG_GROUP, LOG_CATEGORY, NFC_LOG_PRIORITY_ERROR, "Unable to 
set alternate setting on USB interface (%s)", _usb_strerror(res));
    usb_close(data.pudh);
    // we failed to use the specified device
    goto free_mem;
    }
*/


#說明:按下Ctrl+x並儲存,開始編譯程式碼
root@kali:~/test/libnfc-1.7.1# ./configure --prefix=/usr --sysconfdir=/etc
root@kali:~/test/libnfc-1.7.1#  make


#說明:成功編譯後,會產生utils/nfc-list,可以先執行是否成功
root@kali:~/test/libnfc-1.7.1# utils/nfc-list
 


#說明:執行最後的步驟,再複製相關檔案即可
root@kali:~/test/libnfc-1.7.1# make install
root@kali:~/test/libnfc-1.7.1# cd /usr/lib
root@kali:~/usr/lib# cp -p libnfc.* x86_64-linux-gnu/
root@kali:~/usr/lib# cd /
root@kali:/# 
reference: https://debian-facile.org/viewtopic.php?pid=310787#p310787