日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

STM32F103+RTT从零开始(三)—— S50门禁卡复制

發布時間:2023/12/3 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STM32F103+RTT从零开始(三)—— S50门禁卡复制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

近期因為各種原因,重新租了個房子住,小區外面有門禁系統,樓下也有個門禁系統。房東只給了一套門禁卡,而我家人也需要門禁卡,所以我就去小區物業那里補卡,結果小區物業那里只能補小區的門禁卡,樓下的門禁卡需要在另外個地方補。物業工作人員給說了下地方,我找了下沒找到,又想起了我一年前買了個RFID模塊和十幾個空白門禁卡,還沒開封。又正好時值國慶,空閑時間比較多,不如自己來復制吧。

基礎知識

一兩個月前,我寫了兩篇STM32F103+RTT的入門博客。那兩篇是非常基礎的,到這里直接就是復制門禁卡,看起來好像不是循序漸進。不過也是沒法子,畢竟現在從事的工作和這些完全不沾邊,工作又忙,所以沒太多時間來一步一步學習并且寫博客,只能玩到哪是哪了。
先看了下門禁卡的分類和一些基礎資料,了解到我新租住的房子所在的小區用的門禁卡是S50類型的。它具有16個 扇區,每個扇區具有四個Block,分別為0、1、2、3,每個Block可以存儲16字節的數據。其中每個扇區的Block3存儲的為6字節A密碼+4字節控制位+6字節B密碼。另外第一扇區的Block0存儲的為卡號以及廠商的基本信息。卡就是下面的這個鬼樣子:

一般來說,第一扇區的Block0下內容是不能更改的,我原以為小區門禁卡是通過其他扇區的數據來做驗證的,后面寫好了讀數據的代碼,發現從門禁卡中從數據塊中讀取的數據都是0,只有密碼區、控制區及ID下第一扇區的Block0中有數據。所以我們的那個小區中的門禁卡應該是通過卡的第一扇區的Block0中的信息來驗證的。也就是說我們要做的是復制整個卡,包括第一扇區的Block0。
要復制第一扇區的Block0,普通的IC卡就不行了,我之前買的卡就是普通的IC卡,鼓搗了很久,一直以為是程序寫的有問題,后來才發現是卡不行。沒辦法,只能重新買卡了。
選卡也要選擇合適的卡,查了下資料,能夠修改第一扇區Block0的兼容S50類型的卡,有UID卡(可以使用后門指令無限制重復修改第一扇區Block0,會響應后門指令)、CUID卡(可以使用后門指令無限制重復修改第一扇區的Block0,不會響應后門指令)、FUID卡(使用普通指令,只能修改一次第一扇區的Block0)等。根據上面的說明,可以知道,UID卡可以無限制修改,但是由于會響應后門指令,所以如果門禁系統有檢測后門指令并且禁用,那就不能用了。CUID不響應后門指令,但是由于可以用后面指令修改,門禁系統如果先去修改一下,確認不能修改,再進行門禁驗證,那么CUID的卡就也不能用了。FUID顯然是最保險的,但是從價格來說,FUID(2.2元) > CUID(1.3元) > UID(0.78元)。
所以我先試了下房東給的門禁卡,發現它是可以被修改的,而且也會響應后門指令,那么考慮性價比,當然是買UID卡了。10塊錢13個還包郵,加上8塊錢不到的一個RFID-RC522,一共18塊錢(PS : 物業那里20塊錢一個門禁卡,真坑)。

門禁卡復制實現

上面提到修改門禁卡第一扇區Block0是需要使用后門指令的,直接按照普通的寫數據的方式進行修改,是無法修改的。既然主要目的是復制門禁卡,懶得重復去造輪子了。我之前買的RFID-RC522模塊,使用的是SPI的通信模式,淘寶上搜索,應該很多都是這樣的,如下圖所示:

對,買的就是這樣沒焊腳的,然后我又買了個電烙鐵套裝。。。

然后上位機還是使用之前的那個STM32F103C8T6。

RC522驅動程序

然后再網上找了下STM32F103下RC522的驅動程序,并增加利用后門指令寫第一扇區block0的代碼如下:
驅動頭文件rc522.h

#ifndef __RC522_H #define __RC522_H#define MF522_RST_PIN GPIO_Pin_0 #define MF522_RST_PORT GPIOB #define MF522_RST_CLK RCC_APB2Periph_GPIOB#define MF522_MISO_PIN GPIO_Pin_6 #define MF522_MISO_PORT GPIOA #define MF522_MISO_CLK RCC_APB2Periph_GPIOA#define MF522_MOSI_PIN GPIO_Pin_7 #define MF522_MOSI_PORT GPIOA #define MF522_MOSI_CLK RCC_APB2Periph_GPIOA#define MF522_SCK_PIN GPIO_Pin_5 #define MF522_SCK_PORT GPIOA #define MF522_SCK_CLK RCC_APB2Periph_GPIOA#define MF522_NSS_PIN GPIO_Pin_4 #define MF522_NSS_PORT GPIOA #define MF522_NSS_CLK RCC_APB2Periph_GPIOA#define RST_H GPIO_SetBits(MF522_RST_PORT, MF522_RST_PIN) #define RST_L GPIO_ResetBits(MF522_RST_PORT, MF522_RST_PIN) #define MOSI_H GPIO_SetBits(MF522_MOSI_PORT, MF522_MOSI_PIN) #define MOSI_L GPIO_ResetBits(MF522_MOSI_PORT, MF522_MOSI_PIN) #define SCK_H GPIO_SetBits(MF522_SCK_PORT, MF522_SCK_PIN) #define SCK_L GPIO_ResetBits(MF522_SCK_PORT, MF522_SCK_PIN) #define NSS_H GPIO_SetBits(MF522_NSS_PORT, MF522_NSS_PIN) #define NSS_L GPIO_ResetBits(MF522_NSS_PORT, MF522_NSS_PIN) #define READ_MISO GPIO_ReadInputDataBit(MF522_MISO_PORT, MF522_MISO_PIN)// ???? void PcdInit(void); char PcdReset(void); void PcdAntennaOn(void); void PcdAntennaOff(void); char PcdRequest(unsigned char req_code,unsigned char *pTagType); char PcdAnticoll(unsigned char *pSnr); char PcdSelect(unsigned char *pSnr); char PcdAuthState(unsigned char auth_mode,unsigned char addr,unsigned char *pKey,unsigned char *pSnr); char PcdRead(unsigned char addr,unsigned char *pData); char PcdWrite(unsigned char addr,unsigned char *pData); char PcdValue(unsigned char dd_mode,unsigned char addr,unsigned char *pValue); char PcdBakValue(unsigned char sourceaddr, unsigned char goaladdr); char PcdHalt(void); char PcdComMF522(unsigned char Command,unsigned char *pInData, unsigned char InLenByte,unsigned char *pOutData, unsigned int *pOutLenBit); void CalulateCRC(unsigned char *pIndata,unsigned char len,unsigned char *pOutData); void WriteRawRC(unsigned char Address,unsigned char value); unsigned char ReadRawRC(unsigned char Address); void SetBitMask(unsigned char reg,unsigned char mask); void ClearBitMask(unsigned char reg,unsigned char mask); char M500PcdConfigISOType(unsigned char type); void delay_10ms(unsigned int _10ms); void WaitCardOff(void); char PcdSpicelWrite(unsigned char *pData);#define PCD_IDLE 0x00 #define PCD_AUTHENT 0x0E #define PCD_RECEIVE 0x08 #define PCD_TRANSMIT 0x04 #define PCD_TRANSCEIVE 0x0C #define PCD_RESETPHASE 0x0F #define PCD_CALCCRC 0x03 #define PICC_REQIDL 0x26 #define PICC_REQALL 0x52 #define PICC_ANTICOLL1 0x93 #define PICC_ANTICOLL2 0x95 #define PICC_AUTHENT1A 0x60 #define PICC_AUTHENT1B 0x61 #define PICC_READ 0x30 #define PICC_WRITE 0xA0 #define PICC_DECREMENT 0xC0 #define PICC_INCREMENT 0xC1 #define PICC_RESTORE 0xC2 #define PICC_TRANSFER 0xB0 #define PICC_HALT 0x50 #define PCD_SPECIAL_COPY 0x43#define DEF_FIFO_LENGTH 64 #define RFU00 0x00 #define CommandReg 0x01 #define ComIEnReg 0x02 #define DivlEnReg 0x03 #define ComIrqReg 0x04 #define DivIrqReg 0x05 #define ErrorReg 0x06 #define Status1Reg 0x07 #define Status2Reg 0x08 #define FIFODataReg 0x09 #define FIFOLevelReg 0x0A #define WaterLevelReg 0x0B #define ControlReg 0x0C #define BitFramingReg 0x0D #define CollReg 0x0E #define RFU0F 0x0F // PAGE 1 #define RFU10 0x10 #define ModeReg 0x11 #define TxModeReg 0x12 #define RxModeReg 0x13 #define TxControlReg 0x14 #define TxAutoReg 0x15 #define TxSelReg 0x16 #define RxSelReg 0x17 #define RxThresholdReg 0x18 #define DemodReg 0x19 #define RFU1A 0x1A #define RFU1B 0x1B #define MifareReg 0x1C #define RFU1D 0x1D #define RFU1E 0x1E #define SerialSpeedReg 0x1F // PAGE 2 #define RFU20 0x20 #define CRCResultRegM 0x21 #define CRCResultRegL 0x22 #define RFU23 0x23 #define ModWidthReg 0x24 #define RFU25 0x25 #define RFCfgReg 0x26 #define GsNReg 0x27 #define CWGsCfgReg 0x28 #define ModGsCfgReg 0x29 #define TModeReg 0x2A #define TPrescalerReg 0x2B #define TReloadRegH 0x2C #define TReloadRegL 0x2D #define TCounterValueRegH 0x2E #define TCounterValueRegL 0x2F // PAGE 3 #define RFU30 0x30 #define TestSel1Reg 0x31 #define TestSel2Reg 0x32 #define TestPinEnReg 0x33 #define TestPinValueReg 0x34 #define TestBusReg 0x35 #define AutoTestReg 0x36 #define VersionReg 0x37 #define AnalogTestReg 0x38 #define TestDAC1Reg 0x39 #define TestDAC2Reg 0x3A #define TestADCReg 0x3B #define RFU3C 0x3C #define RFU3D 0x3D #define RFU3E 0x3E #define RFU3F 0x3F#define REQ_ALL 0x52 #define KEYA 0x60 #define KEYB 0x61#define MI_OK (char)0 #define MI_NOTAGERR (char)(-1) #define MI_ERR (char)(-2)#endif

驅動實現rc522.c

#include "rc522.h" #include "stm32f10x_gpio.h"#define MAXRLEN 18 void PcdInit() {GPIO_InitTypeDef GPIO_InitStructure;/* Enable the GPIO Clock */RCC_APB2PeriphClockCmd(MF522_RST_CLK, ENABLE);/* Configure the GPIO pin */GPIO_InitStructure.GPIO_Pin = MF522_RST_PIN;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;GPIO_Init(MF522_RST_PORT, &GPIO_InitStructure);/* Enable the GPIO Clock */RCC_APB2PeriphClockCmd(MF522_MISO_CLK, ENABLE);/* Configure the GPIO pin */GPIO_InitStructure.GPIO_Pin = MF522_MISO_PIN;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;GPIO_Init(MF522_MISO_PORT, &GPIO_InitStructure);/* Enable the GPIO Clock */RCC_APB2PeriphClockCmd(MF522_MOSI_CLK, ENABLE);/* Configure the GPIO pin */GPIO_InitStructure.GPIO_Pin = MF522_MOSI_PIN;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;GPIO_Init(MF522_MOSI_PORT, &GPIO_InitStructure);/* Enable the GPIO Clock */RCC_APB2PeriphClockCmd(MF522_SCK_CLK, ENABLE);/* Configure the GPIO pin */GPIO_InitStructure.GPIO_Pin = MF522_SCK_PIN;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;GPIO_Init(MF522_SCK_PORT, &GPIO_InitStructure);/* Enable the GPIO Clock */RCC_APB2PeriphClockCmd(MF522_NSS_CLK, ENABLE);/* Configure the GPIO pin */GPIO_InitStructure.GPIO_Pin = MF522_NSS_PIN;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;GPIO_Init(MF522_NSS_PORT, &GPIO_InitStructure); }char PcdRequest(unsigned char req_code,unsigned char *pTagType) {char status; unsigned int unLen;unsigned char ucComMF522Buf[MAXRLEN]; ClearBitMask(Status2Reg,0x08);WriteRawRC(BitFramingReg,0x07);SetBitMask(TxControlReg,0x03);ucComMF522Buf[0] = req_code;status = PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,1,ucComMF522Buf,&unLen); // if(status == MI_OK ) // { LED_GREEN =0 ;} // else {LED_GREEN =1 ;}if ((status == MI_OK) && (unLen == 0x10)){ *pTagType = ucComMF522Buf[0];*(pTagType+1) = ucComMF522Buf[1];}else{ status = MI_ERR; }return status; }char PcdAnticoll(unsigned char *pSnr) {char status;unsigned char i,snr_check=0;unsigned int unLen;unsigned char ucComMF522Buf[MAXRLEN]; ClearBitMask(Status2Reg,0x08);WriteRawRC(BitFramingReg,0x00);ClearBitMask(CollReg,0x80);ucComMF522Buf[0] = PICC_ANTICOLL1;ucComMF522Buf[1] = 0x20;status = PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,2,ucComMF522Buf,&unLen);if (status == MI_OK){for (i=0; i<4; i++){ *(pSnr+i) = ucComMF522Buf[i];snr_check ^= ucComMF522Buf[i];}if (snr_check != ucComMF522Buf[i]){ status = MI_ERR; }}SetBitMask(CollReg,0x80);return status; }char PcdSelect(unsigned char *pSnr) {char status;unsigned char i;unsigned int unLen;unsigned char ucComMF522Buf[MAXRLEN]; ucComMF522Buf[0] = PICC_ANTICOLL1;ucComMF522Buf[1] = 0x70;ucComMF522Buf[6] = 0;for (i=0; i<4; i++){ucComMF522Buf[i+2] = *(pSnr+i);ucComMF522Buf[6] ^= *(pSnr+i);}CalulateCRC(ucComMF522Buf,7,&ucComMF522Buf[7]);ClearBitMask(Status2Reg,0x08);status = PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,9,ucComMF522Buf,&unLen);if ((status == MI_OK) && (unLen == 0x18)){ status = MI_OK; }else{ status = MI_ERR; }return status; }char PcdAuthState(unsigned char auth_mode,unsigned char addr,unsigned char *pKey,unsigned char *pSnr) {char status;unsigned int unLen;unsigned char i,ucComMF522Buf[MAXRLEN]; ucComMF522Buf[0] = auth_mode;ucComMF522Buf[1] = addr;for (i=0; i<6; i++){ ucComMF522Buf[i+2] = *(pKey+i); }for (i=0; i<6; i++){ ucComMF522Buf[i+8] = *(pSnr+i); }// memcpy(&ucComMF522Buf[2], pKey, 6); // memcpy(&ucComMF522Buf[8], pSnr, 4); status = PcdComMF522(PCD_AUTHENT,ucComMF522Buf,12,ucComMF522Buf,&unLen);if ((status != MI_OK) || (!(ReadRawRC(Status2Reg) & 0x08))){ status = MI_ERR; }return status; }char PcdRead(unsigned char addr,unsigned char *pData) {char status;unsigned int unLen;unsigned char i,ucComMF522Buf[MAXRLEN]; ucComMF522Buf[0] = PICC_READ;ucComMF522Buf[1] = addr;CalulateCRC(ucComMF522Buf,2,&ucComMF522Buf[2]);status = PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,4,ucComMF522Buf,&unLen);if ((status == MI_OK) && (unLen == 0x90))// { memcpy(pData, ucComMF522Buf, 16); }{for (i=0; i<16; i++){ *(pData+i) = ucComMF522Buf[i]; }}else{ status = MI_ERR; }return status; }char PcdWrite(unsigned char addr,unsigned char *pData) {char status;unsigned int unLen;unsigned char i,ucComMF522Buf[MAXRLEN]; ucComMF522Buf[0] = PICC_WRITE;ucComMF522Buf[1] = addr;CalulateCRC(ucComMF522Buf,2,&ucComMF522Buf[2]);status = PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,4,ucComMF522Buf,&unLen);if ((status != MI_OK) || (unLen != 4) || ((ucComMF522Buf[0] & 0x0F) != 0x0A)){ status = MI_ERR; }if (status == MI_OK){//memcpy(ucComMF522Buf, pData, 16);for (i=0; i<16; i++){ ucComMF522Buf[i] = *(pData+i); }CalulateCRC(ucComMF522Buf,16,&ucComMF522Buf[16]);status = PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,18,ucComMF522Buf,&unLen);if ((status != MI_OK) || (unLen != 4) || ((ucComMF522Buf[0] & 0x0F) != 0x0A)){ status = MI_ERR; }}return status; }//這個是寫第一扇區Block0的代碼 char PcdSpicelWrite(unsigned char *pData) {char status;unsigned int unLen;unsigned char i,ucComMF522Buf[MAXRLEN]; //需要使用以下步驟開啟后門PcdHalt();WriteRawRC(BitFramingReg, 0x07);//WriteRawRC(CommandReg, 0x40);ucComMF522Buf[0] = 0x40;PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,1,ucComMF522Buf,&unLen);WriteRawRC(BitFramingReg, 0x00);ucComMF522Buf[0] = 0x43;PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,1,ucComMF522Buf,&unLen);return PcdWrite(0, pData); }char PcdHalt(void) {unsigned int unLen;unsigned char ucComMF522Buf[MAXRLEN]; ucComMF522Buf[0] = PICC_HALT;ucComMF522Buf[1] = 0;CalulateCRC(ucComMF522Buf,2,&ucComMF522Buf[2]);PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,4,ucComMF522Buf,&unLen);return MI_OK; }//?MF522??CRC16?? void CalulateCRC(unsigned char *pIndata,unsigned char len,unsigned char *pOutData) {unsigned char i,n;ClearBitMask(DivIrqReg,0x04);WriteRawRC(CommandReg,PCD_IDLE);SetBitMask(FIFOLevelReg,0x80);for (i=0; i<len; i++){ WriteRawRC(FIFODataReg, *(pIndata+i)); }WriteRawRC(CommandReg, PCD_CALCCRC);i = 0xFF;do {n = ReadRawRC(DivIrqReg);i--;}while ((i!=0) && !(n&0x04));pOutData[0] = ReadRawRC(CRCResultRegL);pOutData[1] = ReadRawRC(CRCResultRegM); }char PcdReset(void) {RST_H;delay_10ms(1);RST_L;delay_10ms(1);RST_H;delay_10ms(10);if(ReadRawRC(0x02) == 0x80){}WriteRawRC(CommandReg,PCD_RESETPHASE);WriteRawRC(ModeReg,0x3D); WriteRawRC(TReloadRegL,30); WriteRawRC(TReloadRegH,0);WriteRawRC(TModeReg,0x8D);WriteRawRC(TPrescalerReg,0x3E);WriteRawRC(TxAutoReg,0x40); return MI_OK; }char M500PcdConfigISOType(unsigned char type) {if (type == 'A'){ ClearBitMask(Status2Reg,0x08);WriteRawRC(ModeReg,0x3D);//3FWriteRawRC(RxSelReg,0x86);//84WriteRawRC(RFCfgReg,0x7F); //4FWriteRawRC(TReloadRegL,30);//tmoLength);// TReloadVal = 'h6a =tmoLength(dec) WriteRawRC(TReloadRegH,0);WriteRawRC(TModeReg,0x8D);WriteRawRC(TPrescalerReg,0x3E);delay_10ms(1);PcdAntennaOn();}else{ return (char)-1; }return MI_OK; }unsigned char ReadRawRC(unsigned char Address) {unsigned char i, ucAddr;unsigned char ucResult=0;NSS_L;ucAddr = ((Address<<1)&0x7E)|0x80;for(i=8;i>0;i--){SCK_L;if(ucAddr&0x80)MOSI_H;elseMOSI_L;SCK_H;ucAddr <<= 1;}for(i=8;i>0;i--){SCK_L;ucResult <<= 1;SCK_H;if(READ_MISO == 1)ucResult |= 1;}NSS_H;SCK_H;return ucResult; }void WriteRawRC(unsigned char Address, unsigned char value) { unsigned char i, ucAddr;SCK_L;NSS_L;ucAddr = ((Address<<1)&0x7E);for(i=8;i>0;i--){if(ucAddr&0x80)MOSI_H;elseMOSI_L;SCK_H;ucAddr <<= 1;SCK_L;}for(i=8;i>0;i--){if(value&0x80)MOSI_H;elseMOSI_L;SCK_H;value <<= 1;SCK_L;}NSS_H;SCK_H; }void SetBitMask(unsigned char reg,unsigned char mask) {char tmp = 0x0;tmp = ReadRawRC(reg);WriteRawRC(reg,tmp | mask); // set bit mask }void ClearBitMask(unsigned char reg,unsigned char mask) {char tmp = 0x0;tmp = ReadRawRC(reg);WriteRawRC(reg, tmp & ~mask); // clear bit mask } char PcdComMF522(unsigned char Command, unsigned char *pInData, unsigned char InLenByte,unsigned char *pOutData, unsigned int *pOutLenBit) {char status = MI_ERR;unsigned char irqEn = 0x00;unsigned char waitFor = 0x00;unsigned char lastBits;unsigned char n;unsigned int i;switch (Command){case PCD_AUTHENT:irqEn = 0x12;waitFor = 0x10;break;case PCD_TRANSCEIVE:case PCD_SPECIAL_COPY:irqEn = 0x77;waitFor = 0x30;break;default:break;}WriteRawRC(ComIEnReg,irqEn|0x80);ClearBitMask(ComIrqReg,0x80);WriteRawRC(CommandReg,PCD_IDLE);SetBitMask(FIFOLevelReg,0x80);for (i=0; i<InLenByte; i++){ WriteRawRC(FIFODataReg, pInData[i]); }WriteRawRC(CommandReg, Command);if (Command == PCD_TRANSCEIVE){ SetBitMask(BitFramingReg,0x80); }i = 2000;do {n = ReadRawRC(ComIrqReg);i--;}while ((i!=0) && !(n&0x01) && !(n&waitFor));ClearBitMask(BitFramingReg,0x80);if (i!=0){ if(!(ReadRawRC(ErrorReg)&0x1B)){status = MI_OK;if (n & irqEn & 0x01){ status = MI_NOTAGERR; }if (Command == PCD_TRANSCEIVE){n = ReadRawRC(FIFOLevelReg);lastBits = ReadRawRC(ControlReg) & 0x07;if (lastBits){ *pOutLenBit = (n-1)*8 + lastBits; }else{ *pOutLenBit = n*8; }if (n == 0){ n = 1; }if (n > MAXRLEN){ n = MAXRLEN; }for (i=0; i<n; i++){ pOutData[i] = ReadRawRC(FIFODataReg); }}}else{ status = MI_ERR; }}SetBitMask(ControlReg,0x80); // stop timer nowWriteRawRC(CommandReg,PCD_IDLE); return status; }void PcdAntennaOn() {unsigned char i;i = ReadRawRC(TxControlReg);if (!(i & 0x03)){SetBitMask(TxControlReg, 0x03);} }void PcdAntennaOff() {ClearBitMask(TxControlReg, 0x03); }void WaitCardOff(void) {char status;unsigned char TagType[2];while(1){status = PcdRequest(REQ_ALL, TagType);if(status){status = PcdRequest(REQ_ALL, TagType);if(status){status = PcdRequest(REQ_ALL, TagType);if(status){return;}}}delay_10ms(10);} }void delay_10ms(unsigned int _10ms) {unsigned int i, j;for(i=0; i<_10ms; i++){for(j=0; j<60000; j++);} }

后門代碼實現依據來源于這篇博客,RC522驅動代碼來源于這篇博客,在此表示感謝。

主要控制邏輯

按照之前點亮LED的經驗,我們使用RTthread來進行進行門禁卡的檢測和復制。主要代碼如下:
復制代碼被注釋了,我們先使用檢測并讀取的代碼,讀取出原卡的內容,然后把讀取內容記錄下來,復制到新卡上去。正確的做法應該是使用完整邏輯來實現這個流程,這里為了方便,直接手動記錄,然后修改代碼重新編譯來進行卡的復制,有興趣有需要的朋友可在此基礎上自行補充完成。

#include <board.h> #include <rtthread.h> #include "led.h" #include "rc522.h"ALIGN(RT_ALIGN_SIZE) static rt_uint8_t led_stack[ 512 ]; static struct rt_thread led_thread; static void led_thread_entry(void* parameter) {unsigned int count=0;rt_hw_led_init();while (1){count++;rt_hw_led_on(0);rt_thread_delay( RT_TICK_PER_SECOND/2 ); /* sleep 0.5 second and switch to other thread */rt_hw_led_off(0);rt_thread_delay( RT_TICK_PER_SECOND/2 );} }static void ShowID(u8 *p) {u8 num[9];u8 i;for(i=0; i<4; i++){num[i*2]=p[i]/16;num[i*2]>9?(num[i*2]+='7'):(num[i*2]+='0');num[i*2+1]=p[i]%16;num[i*2+1]>9?(num[i*2+1]+='7'):(num[i*2+1]+='0');}num[8]=0;rt_kprintf("ID>>>%s\r\n", num); }static rt_uint8_t rfid_stack[ 512 ]; static struct rt_thread rfid_thread; static void rfid_thread_entry(void* parameter) {unsigned int count=0;char status;unsigned char snr, buf[16], TagType[2], SelectedSnr[4], DefaultKey[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};PcdInit();PcdReset();PcdAntennaOff();PcdAntennaOn();M500PcdConfigISOType( 'A' );rt_kprintf( "rc522 init over!\n" );while(1){status= PcdRequest( REQ_ALL , TagType );if(!status) {status = PcdAnticoll(SelectedSnr);if(!status){status=PcdSelect(SelectedSnr);if(!status){ShowID(SelectedSnr);/*unsigned char inDoor[16] = {0x91, 0x94, 0x09, 0xa5, 0xa9, 0x88, 0x04, 0x00, 0x85, 0x00, 0xb4, 0x2e, 0xf0, 0xbb, 0x6a, 0xa8};unsigned char outDoor[16] = {0x1c, 0x6a, 0xa0, 0xa5, 0x73, 0x88, 0x04, 0x00,0x85, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};status = PcdSpicelWrite(inDoor);*/if(!status){for(int i = 0;i < 16 ;i++){snr = i;status = PcdAuthState(KEYB, (snr*4+3), DefaultKey, SelectedSnr);for(int j = 0; j < 4; j++){status = PcdRead((snr*4+j), buf);//status = PcdWrite((snr*4+0), "way2"); if(!status){uint16_t * e = 0;e = (uint16_t *)TagType;//rt_kprintf("Snr Index : %d, type = %x \n", snr * 4 + j, *e);for(int n = 0; n < 16; n++){rt_kprintf("%x ", (uint16_t)buf[n]);} rt_kprintf("\n"); }}}}rt_kprintf("operate finished! %x \n", status);WaitCardOff();}}}} }void rt_init_thread_entry(void* parameter) { #ifdef RT_USING_COMPONENTS_INIT/* initialization RT-Thread Components */rt_components_init(); #endif }int rt_application_init(void) {rt_thread_t init_thread;rt_err_t result;/* init led thread */result = rt_thread_init(&led_thread,"led",led_thread_entry,RT_NULL,(rt_uint8_t*)&led_stack[0],sizeof(led_stack),20,5);if (result == RT_EOK){rt_thread_startup(&led_thread);}result = rt_thread_init(&rfid_thread,"rfid",rfid_thread_entry,RT_NULL,(rt_uint8_t*)&rfid_stack[0],sizeof(rfid_stack),22,5);if (result == RT_EOK){rt_thread_startup(&rfid_thread);}#if (RT_THREAD_PRIORITY_MAX == 32)init_thread = rt_thread_create("init",rt_init_thread_entry, RT_NULL,2048, 8, 20); #elseinit_thread = rt_thread_create("init",rt_init_thread_entry, RT_NULL,2048, 80, 20); #endifif (init_thread != RT_NULL)rt_thread_startup(init_thread);return 0; }/*@}*/

工程源碼

工程源碼掛載在CSDN下載頻道,攢點下載分備用。歡迎轉載,轉載博客請注明出處湖廣午王的博客。

總結

以上是生活随笔為你收集整理的STM32F103+RTT从零开始(三)—— S50门禁卡复制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

免费观看的黄色片 | 男女男视频 | 在线观看视频 | 国产伦精品一区二区三区… | 国产专区日韩专区 | 成人资源在线 | 久久观看免费视频 | 精品福利视频在线观看 | 黄色国产区 | 日韩精品一区在线播放 | 国产黄色a| 伊人五月天.com | 欧美夫妻性生活电影 | 激情五月色播五月 | 久久精品99精品国产香蕉 | 美女黄濒 | 久热免费在线观看 | 国产在线观看国语版免费 | 久久这里只有精品23 | 欧美精品在线观看免费 | 丝袜+亚洲+另类+欧美+变态 | a亚洲视频 | 精品久久视频 | 中文字幕久久亚洲 | 亚洲精品xxxx | 国产一区免费在线 | 国产一区高清在线观看 | 日韩精品一区二区三区在线视频 | 久久久久国产一区二区三区四区 | 中文字幕在线看视频国产 | 国产精品99久久久久人中文网介绍 | 精品人妖videos欧美人妖 | 日韩av免费在线电影 | 夜夜躁狠狠躁日日躁 | 狠狠色丁香婷婷综合最新地址 | 久久久久国产精品厨房 | 天天弄天天干 | 草草草影院 | 中文字幕超清在线免费 | av黄色国产| 免费高清在线视频一区· | 久久久久日本精品一区二区三区 | 97香蕉久久国产在线观看 | 国产999视频在线观看 | 日韩a在线播放 | 最近日韩中文字幕中文 | 激情视频区| 久久一区国产 | 视频国产在线观看18 | 日韩精品91偷拍在线观看 | 玖玖玖在线观看 | 69精品在线 | 久久欧美视频 | 国内精品久久久久久久久久久久 | 国产欧美精品一区二区三区 | 成年人在线观看免费视频 | 欧美电影在线观看 | 久久理论视频 | 91av超碰| 久久免费视频一区 | 五月天中文字幕 | 嫩草av在线| av电影免费在线看 | 国产成免费视频 | 99人久久精品视频最新地址 | 国产1区在线 | 日韩电影在线视频 | 久草在线国产 | 欧美视频二区 | 久久久91精品国产一区二区精品 | 国产在线观看免 | 91人人澡人人爽人人精品 | 激情电影影院 | 欧美激情片在线观看 | 999精品网| 日韩在线观看视频网站 | 婷婷在线不卡 | 夜夜澡人模人人添人人看 | 国产一级91 | 国产色 在线 | 91在线精品一区二区 | 欧美日韩中文字幕在线视频 | 久久久久亚洲精品中文字幕 | 久操中文字幕在线观看 | 久久国产手机看片 | 四虎影视成人永久免费观看视频 | 久久视频免费看 | 色综合久久综合网 | 日韩理论片在线 | 在线观看国产91 | 亚洲成人资源在线 | 91麻豆精品国产91久久久久久久久 | 五月婷婷综合网 | 国产亚洲精品久 | 欧美精彩视频 | 在线免费观看的av网站 | 久久无码av一区二区三区电影网 | 99热国内精品 | 国产三级在线播放 | 天天天天综合 | 伊人天堂网 | 伊人热| 天天干天天操天天拍 | 91视频免费看片 | 久久国产精品一区二区三区四区 | 国产高清99 | 国产精品尤物 | 97视频人人免费看 | 国产精品久久久久久久久久了 | 国产精品欧美久久久久久 | 国产免费观看av | av观看在线观看 | av网站在线观看播放 | 激情综合五月网 | 免费成人短视频 | 在线看国产精品 | 国产精品一区二区在线观看 | 日韩av在线免费看 | 九色自拍视频 | 美女亚洲精品 | 久久久国产网站 | 国产91精品在线播放 | 日韩在线无 | 久热电影 | 精品1区2区 | 久久久久成人精品亚洲国产 | 欧美精品久久人人躁人人爽 | 亚洲精品国产综合99久久夜夜嗨 | 在线天堂中文www视软件 | 在线视频日韩一区 | 992tv在线成人免费观看 | 国产美女搞久久 | av夜夜操| 五月天色站| 色999五月色 | 国产丝袜 | 91女子私密保健养生少妇 | 成人丝袜 | 日日夜夜操操操操 | 91完整版观看 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 亚洲欧洲精品一区 | 特级aaa毛片 | 日韩在线中文字幕视频 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 久久综合国产伦精品免费 | 久久久久久久久久久电影 | 婷婷去俺也去六月色 | 美女福利视频一区二区 | 在线免费观看国产精品 | 日韩午夜电影网 | 久久精品日本啪啪涩涩 | 伊人视频 | 亚洲涩涩网 | 2021国产精品视频 | 久久99操 | 五月激情婷婷丁香 | 亚洲国产精品激情在线观看 | 精品一二三四五区 | 美女精品网站 | 中文字幕亚洲欧美日韩 | 久久成人人人人精品欧 | 久久视频在线观看中文字幕 | 91免费在线视频 | 日韩欧美视频在线播放 | av软件在线观看 | 一级黄色在线免费观看 | 少妇搡bbb | 欧美黄色特级片 | 99在线观看免费视频精品观看 | 亚洲一区免费在线 | 亚洲少妇激情 | 在线观看亚洲精品视频 | 看av免费| 色五婷婷| 免费v片 | 91亚洲精品久久久蜜桃网站 | 天天射综合网视频 | 日韩一区正在播放 | 日韩免费播放 | 色综合色综合久久综合频道88 | 99热最新在线 | 在线天堂日本 | 午夜精品福利在线 | 99热国产在线 | 18岁免费看片 | 欧美精品久久久久久久久久白贞 | 丁香六月婷婷开心婷婷网 | 日韩精品视频在线观看免费 | 欧美性大战 | 最近免费中文字幕大全高清10 | www.在线观看视频 | av在线免费播放 | 日韩在线视频在线观看 | 免费看黄20分钟 | 人人射人人爱 | 国产精品午夜av | 深夜免费福利网站 | 中文字幕一区二区三区四区视频 | 久久精品xxx | 国产精品精品国产色婷婷 | 日韩电影在线一区 | 欧美日韩有码 | 日韩精品久久中文字幕 | 亚洲精品高清视频 | 九九热99视频 | 国产一区视频导航 | av在线播放一区二区三区 | 亚洲一片黄 | 午夜资源站| 欧美一二三四在线 | 欧美精品xxx| 国产伦精品一区二区三区四区视频 | 国产一级不卡视频 | 欧美日韩国产精品一区二区 | 精品亚洲欧美无人区乱码 | 亚洲免费在线看 | 天天综合视频在线观看 | 天天天在线综合网 | 激情网第四色 | 2019免费中文字幕 | 日本三级人妇 | 麻花豆传媒mv在线观看网站 | 狠狠干天天操 | av三级av| 91视频 - v11av | 亚洲视频在线看 | 国产精品九九九九九 | 99精品国产高清在线观看 | 在线观看国产亚洲 | 国产原创av在线 | 91大神电影 | 精品在线观看一区二区 | 国产在线不卡视频 | 免费看黄网站在线 | 亚洲最新av在线网址 | 综合久久久久久久 | 久精品一区 | 久久综合欧美 | 亚洲成人国产 | 久久久久久久久久毛片 | 国产最新网站 | 免费亚洲精品视频 | 色资源在线观看 | 国产乱老熟视频网88av | 中文字幕一区二区三区在线观看 | 国产精品免费一区二区 | 99精品国产兔费观看久久99 | 成年人黄色免费视频 | 丝袜美女视频网站 | 欧美一二三区在线观看 | 日韩最新av| 久久99久久精品 | 精品人妖videos欧美人妖 | 最新中文字幕在线播放 | 久久婷婷国产色一区二区三区 | 久久久久免费精品国产小说色大师 | 在线播放视频一区 | 国产成人免费观看久久久 | 婷婷激情小说网 | 国产美女视频免费 | av色综合| 一区二区三区中文字幕在线观看 | 人人爽久久久噜噜噜电影 | 伊人婷婷综合 | 蜜臀精品久久久久久蜜臀 | 99精品国产在热久久下载 | 欧美人交a欧美精品 | 天天躁天天躁天天躁婷 | 国产综合久久 | 激情网在线视频 | 五月婷婷伊人网 | 五月开心婷婷网 | 又污又黄网站 | av片免费播放 | 在线免费观看一区二区三区 | 综合久久网 | 天天干天天操天天干 | 91大神视频网站 | 日韩精品一区二区在线观看 | 在线播放视频一区 | 美女视频黄,久久 | 亚洲精品久久久蜜桃 | 色婷婷丁香| 中文字幕一区二区三区四区久久 | 欧美在线视频精品 | 欧美精品乱码久久久久 | 久久国产精品免费视频 | 婷婷去俺也去六月色 | 国产午夜精品一区二区三区四区 | 久热爱 | 色91在线视频 | 中文字幕在线播出 | 日韩视频免费播放 | 激情丁香久久 | 激情久久网 | 天堂av免费看 | 最新超碰在线 | 久久国产品 | 在线观看国产v片 | 中文字幕一二三区 | 久久99中文字幕 | 久久免费试看 | 国内精品久久久久久久久久清纯 | 丁香5月婷婷久久 | 久久 在线 | 狠狠色狠狠色综合日日92 | 国产r级在线观看 | 天天综合成人 | 国产偷国产偷亚洲清高 | 草久中文字幕 | 国产一区二区在线视频观看 | 国产精品国产三级在线专区 | 久草在线免费资源 | 九九热.com | 亚洲国产偷 | 手机在线观看国产精品 | 四虎国产永久在线精品 | 亚洲男人天堂2018 | 综合色亚洲 | 四虎8848免费高清在线观看 | 久久久久亚洲精品中文字幕 | 黄色小说在线免费观看 | 国产亚洲成人精品 | 免费观看的黄色片 | 最新日本中文字幕 | 国内揄拍国内精品 | 一本色道久久精品 | 成人黄色毛片视频 | 久久国产精品网站 | 激情影院在线观看 | 超碰在线观看97 | 午夜精品麻豆 | 婷婷色五 | 久久精品成人欧美大片古装 | 成人高清在线 | 欧美日韩精品区 | 国产一在线精品一区在线观看 | av在线一| 久久久久久久久久久免费av | 日韩欧美电影 | 久久99视频精品 | 97在线观看免费高清完整版在线观看 | 91精品入口 | 亚洲精品久久在线 | 日韩欧美在线视频一区二区 | 久久a久久 | 丁香婷婷色综合亚洲电影 | 亚洲精品动漫成人3d无尽在线 | 欧美精品v国产精品 | 欧美日韩精品在线视频 | 色激情五月 | 外国av网 | 中国精品少妇 | 免费日韩 精品中文字幕视频在线 | 在线91精品 | 91成人网在线播放 | 婷婷九月丁香 | 天天人人 | 亚洲夜夜综合 | 99情趣网视频 | 中文字幕一区二区三区精华液 | 成人观看| 超碰在线官网 | 91免费高清观看 | 在线中文字幕av观看 | 久久久影视 | www免费网站在线观看 | 一级一片免费看 | 在线视频1卡二卡三卡 | 黄色网在线免费观看 | 黄色大全在线观看 | 日韩av片在线 | 久久精品伊人 | 免费在线日韩 | 99久久精品免费视频 | 国产69精品久久久久99 | 91精品网站在线观看 | 日韩精品久久一区二区三区 | 中文字幕国产一区 | 国产专区视频在线 | 国产一级在线观看 | 久久综合一本 | 狠狠狠狠狠狠干 | 天天操网站 | 日本电影久久 | 免费国产在线视频 | 激情五月综合 | 成人试看120秒 | www.888.av| 一区二区精品在线 | 欧美日韩高清在线观看 | av在线一| 国产尤物一区二区三区 | 欧洲亚洲精品 | 久草久| 午夜精品久久久久久久久久久 | 97超碰在线资源 | av中文字幕在线看 | 国产精品久久久久毛片大屁完整版 | 国产69久久 | 国产拍在线 | 激情婷婷色 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 久久久香蕉视频 | 在线免费观看不卡av | a√天堂中文在线 | 久久久av电影 | 国产成人精品免高潮在线观看 | 久久精品屋 | 国产日韩欧美在线播放 | 亚洲成人国产精品 | 欧美日韩aa | 亚洲成人av电影在线 | 精品亚洲二区 | 国产一二三四在线观看视频 | 久草在线中文视频 | 在线电影91| 91在线操| 99热最新 | 国产91av视频在线观看 | 日本在线观看视频一区 | 久久综合久久伊人 | 成人精品亚洲 | 亚洲精品资源 | 亚洲日韩欧美一区二区在线 | 一区二区三区动漫 | 国产精品大片免费观看 | 欧美一级激情 | 日韩理论在线 | 网址你懂的在线观看 | 日韩特黄一级欧美毛片特黄 | 亚洲欧洲日韩在线观看 | 久久天天躁夜夜躁狠狠躁2022 | 国产91影视 | 国产精品免费看久久久8精臀av | 久久午夜国产精品 | a黄色片 | 水蜜桃亚洲一二三四在线 | 精品国产1区2区3区 国产欧美精品在线观看 | japanese黑人亚洲人4k | 五月婷婷免费 | 黄色精品久久久 | 三级av中文字幕 | 久久精品久久久久 | 91喷水 | 麻豆精品传媒视频 | 久久免费精品一区二区三区 | 中文字幕人成不卡一区 | 国产毛片久久 | 日韩网站免费观看 | 国产午夜精品免费一区二区三区视频 | 中文超碰字幕 | 99久久精品日本一区二区免费 | 国产成人一区二区三区免费看 | 毛片网站免费 | 欧美视频18 | 欧美日韩视频免费 | 久久国产一区二区 | 国产成人免费 | 久久久久久久久久久免费 | aaa日本高清在线播放免费观看 | 日韩视频1区 | 伊人成人激情 | 久久精品精品 | 亚洲精品乱码久久久久久按摩 | 精品视频资源站 | www日韩| 欧美一区二区伦理片 | av色影院 | 中文字幕日韩有码 | 国产69精品久久久久久 | 精品福利视频在线 | 国产精品一区二区免费看 | 在线观看91精品国产网站 | 欧美日韩激情网 | 波多野结衣在线观看一区二区三区 | 成人一级在线观看 | 欧美亚洲另类在线视频 | 亚洲国产精品一区二区久久hs | 最新中文字幕在线播放 | www夜夜| 91在线看黄| 99久久国产免费看 | 婷婷五天天在线视频 | 97在线视频免费观看 | 亚洲精品综合一二三区在线观看 | 天天操天天干天天爱 | 精品一区精品二区高清 | 日韩欧美xxxx | 黄色在线观看免费网站 | 日韩黄色在线电影 | 日日干夜夜爱 | 色五月激情五月 | 欧美久久久久久久久 | 久久精品看| 97偷拍在线视频 | 精品视频中文字幕 | 在线观看视频黄色 | 成人免费看片网址 | 九九九九九九精品任你躁 | 色999五月色 | 天天操天天操天天干 | 亚洲精品视频免费 | 久久中文字幕导航 | 国产视频资源在线观看 | 在线а√天堂中文官网 | 人人澡人人爽欧一区 | 亚洲美女免费视频 | 四虎在线观看精品视频 | 国产在线黄色 | 91在线亚洲| 久久国际影院 | 久久人人爽人人爽人人片av软件 | 久草在线资源视频 | 97免费视频在线播放 | av免费福利| 欧美日韩aa| 国产精品久久久久久一区二区三区 | 香蕉网在线 | 国产中文字幕网 | 欧美激情视频一区二区三区免费 | 久久精品视频免费播放 | 久久蜜臀一区二区三区av | 午夜免费在线观看 | 国产不卡在线观看视频 | 免费视频一二三区 | 高清中文字幕av | 日韩理论在线观看 | 日韩一区二区免费视频 | 日韩理论片 | av一区在线 | 九九热精品在线 | 婷色| 亚洲一区久久 | 国产亚洲片| 毛片网站在线看 | 国外av在线| 在线观看www视频 | 久久精品久久精品久久39 | 天天曰天天射 | 国产精品久久久视频 | 亚洲在线| 在线观看黄网 | 黄色电影小说 | 国产成人精品999在线观看 | 五月香视频在线观看 | 五月天天天操 | 中文av在线免费观看 | 制服丝袜欧美 | 久久久精品国产免费观看一区二区 | 美女网站一区 | 黄色大全视频 | wwwwww国产 | 91看片成人 | 日韩激情网| 激情网在线观看 | 国模精品在线 | 四虎在线免费 | 激情婷婷亚洲 | 噜噜色官网 | 亚洲日本一区二区在线 | 欧美日韩久久不卡 | 天堂av在线| 五月婷婷伊人网 | 天天草网站 | 国产精品一区二区白浆 | 91九色最新 | 亚洲一区视频免费观看 | 黄色在线免费观看网址 | 亚洲女裸体 | 国产aaa大片 | 婷婷综合成人 | 欧美最猛性xxxxx(亚洲精品) | 成人黄色电影视频 | 久久精品国产v日韩v亚洲 | 成年人黄色在线观看 | 国产麻豆精品95视频 | 亚洲欧美在线观看视频 | 精品伦理一区二区三区 | 中文av一区二区 | 九九热只有精品 | 奇米导航 | 免费的成人av | 99久久久久国产精品免费 | 黄色三级在线看 | 亚洲精品在线观看视频 | 美女在线免费视频 | 天天爱av导航 | 中文字幕黄色网址 | 国产中文字幕在线看 | 久久久久久久久久伊人 | 国产精品网址在线观看 | 丁香久久| 五月天网页| 毛片基地黄久久久久久天堂 | avav片 | 国产三级国产精品国产专区50 | 香蕉视频在线观看免费 | 91九色蝌蚪国产 | 天天综合天天做天天综合 | 国产精品美乳一区二区免费 | 久久久久久久久久久高潮一区二区 | 在线播放日韩av | 亚洲电影久久久 | 中文字幕有码在线播放 | 349k.cc看片app | 亚洲撸撸 | 精品综合久久 | 97色狠狠 | 91黄色影视| 精品国产一区二区三区四区在线观看 | 欧洲激情在线 | 久爱综合 | 探花国产在线 | 99精品久久精品一区二区 | 亚洲欧洲精品一区二区精品久久久 | 久草免费在线视频观看 | 日韩精品中文字幕av | 91精品一区二区三区蜜桃 | 超碰国产在线观看 | 99视频在线播放 | 欧美夫妻生活视频 | 欧美另类美少妇69xxxx | 最近中文字幕大全中文字幕免费 | 精品国产一区二区三区久久影院 | 国产精品黄色影片导航在线观看 | 久久精品99久久 | 天天操天天射天天操 | 天天天色综合 | 天天看天天干天天操 | 免费看av片网站 | 欧美视频在线二区 | 欧美日韩一区二区三区视频 | 91免费网站在线观看 | a久久免费视频 | 91亚洲精品乱码久久久久久蜜桃 | 高潮久久久 | 91视频这里只有精品 | 国产精品精品国产婷婷这里av | 午夜色站| 成年人免费看片 | 99r在线播放 | av在线电影免费观看 | 国产特级毛片aaaaaaa高清 | 中日韩免费视频 | 久热香蕉视频 | 午夜视频免费播放 | 中文字幕日本特黄aa毛片 | 狠色在线 | 国产看片 色 | 西西4444www大胆视频 | 免费在线观看一区 | 成人h视频 | 四虎影视www | 午夜av一区 | 91精选 | 91最新在线 | 九九在线高清精品视频 | 美女av电影 | 国内99视频| 亚洲欧美日韩精品久久久 | 国产精品久久久久久久午夜 | 一区二区视频网站 | 欧美成人黄色片 | 久久狠狠一本精品综合网 | 免费在线一区二区三区 | 在线视频在线观看 | 国产欧美三级 | 国产成人久久精品77777 | 国内精品久久久久国产 | a极黄色片 | 国产电影黄色av | 婷婷六月色| 久产久精国产品 | 9热精品 | 中文字幕在线观看一区二区三区 | 国产美女在线免费观看 | 日韩久久久久久久久久久久 | 在线观看视频中文字幕 | 黄av资源| 免费色av | 久久成视频 | 丁香视频全集免费观看 | 国产黄色看片 | 亚洲小视频在线观看 | 亚洲精品黄 | 国产精品成人一区二区三区吃奶 | 久久免费精品国产 | 成人动漫视频在线 | 免费黄色在线网站 | 激情五月在线 | 四虎免费av | 国产涩图| 久久五月情影视 | 五月开心婷婷网 | 亚洲欧美日韩精品一区二区 | 国产又粗又长又硬免费视频 | 九九免费观看全部免费视频 | 99情趣网视频 | 97福利 | 国产一区视频免费在线观看 | 国产高清在线看 | 欧美91成人网 | 狠狠色丁香婷婷综合最新地址 | 亚洲一区网 | 西西大胆免费视频 | 亚洲丝袜一区 | 免费观看国产精品视频 | 中文字幕在线观看视频一区二区三区 | 激情开心网站 | www.久久爱.cn | 国产日韩高清在线 | 99视频国产在线 | 免费一级日韩欧美性大片 | av千婊在线免费观看 | 久久高清毛片 | 欧美精品久久久久久久久老牛影院 | 午夜精品久久久久久久99婷婷 | 欧美日本国产在线观看 | 亚洲成人高清在线 | 亚洲精品福利在线观看 | 久久婷婷国产色一区二区三区 | 久久久久久网站 | 免费看的黄色片 | 91中文字幕在线 | 国产精品初高中精品久久 | 成人免费观看视频网站 | 欧美极度另类 | 麻豆国产精品va在线观看不卡 | 国产精品美女久久久网av | 中文字幕在线一区二区三区 | 欧美极品一区二区三区 | 日韩三级不卡 | 亚洲精品中文字幕在线观看 | 久久久麻豆 | 亚洲精品男人天堂 | 97爱爱爱| 伊人五月天综合 | 中文字幕av网站 | 天天狠狠干 | 国产91精品久久久久久 | 在线免费观看国产黄色 | 午夜久久久久久久久久久 | 国产韩国日本高清视频 | 97超碰在线播放 | 久久人人爽人人人人片 | 五月婷香蕉久色在线看 | 人人艹人人| 国产午夜精品一区 | 精品人人爽 | www久久久久 | 97国产情侣爱久久免费观看 | 91mv.cool在线观看 | 一级免费看 | 88av网站| 91一区啪爱嗯打偷拍欧美 | 91av视屏| 黄色小说免费在线观看 | av在观看 | 青青草国产精品 | 天堂va在线高清一区 | 国产成人综合在线观看 | 久久久久麻豆 | 日韩性片 | 日韩在线视频在线观看 | 免费高清无人区完整版 | 在线观影网站 | 国产高清免费视频 | 美女露久久 | 五月激情天 | 日韩美女av在线 | 国产精品一区二区av | 日韩福利在线观看 | 中文伊人 | 激情av五月婷婷 | www免费黄色 | 欧美日韩国产一区二区三区 | 国产精品久久久久久久久久尿 | 婷婷六月色| 99在线视频精品 | 久久一线 | 视频一区在线播放 | 亚洲欧洲xxxx | 精品视频国产一区 | 久久经典国产 | 国产精品福利在线观看 | 午夜少妇一区二区三区 | 一级α片免费看 | 久热只有精品 | 日韩首页| 日p在线观看 | 久久久久久久久久久久久久电影 | 久久婷婷影视 | 亚洲视频专区在线 | 日本巨乳在线 | 中文字幕网站视频在线 | a级国产乱理论片在线观看 特级毛片在线观看 | 一二三精品视频 | 在线观看国产一区二区 | 97香蕉视频| 国产精品久久久久久久av电影 | 婷婷99 | 欧美成人999 | 久久久久久久久网站 | 亚洲精品理论 | 香蕉网在线播放 | 国产区在线看 | 国产精品久久久久久超碰 | 丁香花在线观看视频在线 | 欧美日韩中文视频 | 成人91在线观看 | 亚洲视频中文 | 成人av免费网站 | 日韩av电影免费观看 | 少妇搡bbbb搡bbb搡忠贞 | 天天干天天干天天干天天干天天干天天干 | 国产精品久久久久aaaa九色 | 成在人线av | 黄色av成人在线观看 | 国产亚洲精品久久久网站好莱 | 视频一区在线播放 | 久久久久免费精品国产 | 精品中文字幕在线 | 在线精品视频在线观看高清 | 国产亚洲精品美女久久 | 中文在线8新资源库 | 手机在线日韩视频 | 99热在线免费观看 | 国产精品免费一区二区三区在线观看 | 国产系列在线观看 | 欧美伦理一区二区 | 三级黄色免费 | 97超碰免费在线观看 | 日韩av一区二区在线影视 | 国产一级做a爱片久久毛片a | 久久综合九色综合久99 | 操操操人人 | www国产亚洲精品久久网站 | 99久视频| 四虎影视成人精品国库在线观看 | 欧美另类xxxx | 国产成人高清 | 激情电影在线观看 | 欧美日韩后| 人人射av | 国产精品麻豆视频 | 国产精品18久久久久久首页狼 | 国产一区二区三区黄 | 国产一区二区三区在线 | 日韩在线观看视频一区二区三区 | 中文字幕免费成人 | 国产区精品视频 | 国产美女免费看 | 男女激情麻豆 | 亚洲黄网址 | 欧美91精品国产自产 | 成人在线一区二区三区 | 成人av影院在线观看 | 99国产一区二区三精品乱码 | a黄在线观看 | 看毛片网站 | 日本最新一区二区三区 | 99国产一区 | 99在线精品观看 | 久草在线官网 | 国产一区二区视频在线 | 不卡的av在线 | 久久午夜电影网 | 黄色免费观看视频 | 亚洲精品视频在 | 免费在线黄色av | 91精品视频免费在线观看 | 亚洲日韩欧美一区二区在线 | 免费观看十分钟 | 精品国产一区二区三区噜噜噜 | 免费试看一区 | 国产手机av在线 | 国产综合精品一区二区三区 | 亚洲午夜精品一区二区三区电影院 | 国产精品系列在线观看 | 久久精品播放 | 国产人免费人成免费视频 | 婷婷色在线资源 | 在线视频观看成人 | 五月天堂网 | 一区二区三区精品久久久 | 黄污在线观看 | 日韩综合视频在线观看 | 天天操操操操操 | 9免费视频 | 69xxxx欧美| 96精品高清视频在线观看软件特色 | 日韩女同一区二区三区在线观看 | 韩国av电影在线观看 | 国产一级二级在线 | 国产电影黄色av | 91久久一区二区 | 国产精品久久久久久电影 | 国产69精品久久久久9999apgf | 黄色大片日本免费大片 | 狠狠夜夜 | 免费看91的网站 | 97偷拍在线视频 | 波多野结衣电影久久 | 蜜臀av一区| 亚洲精品午夜国产va久久成人 | 中文字幕乱在线伦视频中文字幕乱码在线 | 欧美日韩高清在线 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 91在线看免费| 国产精品久久久久久久免费 | 欧美日韩国产在线观看 | 免费特级黄毛片 | 天天操天天操天天操天天操天天操天天操 | 成年人在线观看 | 精品国产一区二区三区日日嗨 | 免费a网 | 中文字幕文字幕一区二区 | 日韩啪啪小视频 | 毛片播放网站 | 日本黄色免费网站 | 久久99热这里只有精品国产 | 99高清视频有精品视频 | 色国产视频 | 日韩精品资源 | 久久韩国免费视频 | 国产1级视频 | 国产91丝袜在线播放动漫 | 十八岁以下禁止观看的1000个网站 | 精品伦理一区二区三区 | 麻豆网站免费观看 | 国产精品私人影院 | 欧美精品亚州精品 | 在线三级中文 | 日韩久久久久久久久久久久 | 国产精品欧美久久久久天天影视 | 日韩性片 | 久久国产精品99久久久久久老狼 | 成人h动漫精品一区二 | 精品国产电影一区 | 久久这里有| 婷婷国产视频 | 亚洲精品激情 | 在线只有精品 | 五月开心六月伊人色婷婷 | 亚洲国产免费看 | av中文字幕网址 | 亚洲永久免费av | 波多野结衣视频一区二区 | 日韩精品一区不卡 | 欧美另类xxx | 中日韩三级视频 | 最近在线中文字幕 | 公开超碰在线 | 欧美在线视频不卡 | 日韩av在线资源 | 天干啦夜天干天干在线线 | 91禁看片 | 久久免费电影网 | 久久久国产一区二区 | 91豆麻精品91久久久久久 | 91在线精品秘密一区二区 | 91在线播放综合 | 中文字幕在线久一本久 | 悠悠av资源片 | 久久久久婷 | 麻豆视频国产在线观看 | 韩国一区二区三区视频 | 久久久激情视频 | 97超碰人人模人人人爽人人爱 | 国产精品6999成人免费视频 | 91丨九色丨高潮丰满 | 国产视频黄 | 超碰电影在线观看 | 在线亚洲欧美日韩 | 中文字幕色婷婷在线视频 | 香蕉在线观看 | 日韩欧美视频二区 | 亚洲精品色 | 97精品超碰一区二区三区 | 日韩高清免费观看 | 色婷婷久久一区二区 | 日韩高清网站 | 97色噜噜| 一本色道久久综合亚洲二区三区 | 久久人人爽人人片av | 九九热免费在线观看 | 99久久激情| 免费热情视频 | 日本aaaa级毛片在线看 | 97超碰资源网 | 亚洲精品视频网址 | 国产黄a三级 | 国产精品观看视频 | 午夜国产影院 | 天天曰天天射 | 91女神的呻吟细腰翘臀美女 |