搜索
bottom↓
回复: 20

贴个简单的小程序(M8读电话IC卡)

[复制链接]

出0入0汤圆

发表于 2007-11-12 21:35:12 | 显示全部楼层 |阅读模式
//ICC-AVR application builder : 2007-11-11 23:20:41
// Target : M8
// Crystal: 8.0000Mhz (内部8M晶振)

#include <iom8v.h>
#include <macros.h>
#include <include.h>

#define DDR_IC_CARD DDRB |= (1<<4) | (1<<5)   // RST、CLK 为输出,I/O 为输入
#define PIN_IC_CARD PINB & (1<<3)     // 读取I/O口状态
#define SET_RST     PORTB |=  (1<<4)  // RST = 1;
#define CLR_RST     PORTB &= ~(1<<4)  // RST = 0;
#define SET_CLK     PORTB |=  (1<<5)  // CLK = 1;
#define CLR_CLK     PORTB &= ~(1<<5)  // CLK = 0;

uint8 databuf[16];

//UART0 initialize
// desired baud rate: 9600
// actual: baud rate: 9615 (0.2%)
// char size: 8 bit
// parity: Disabled
// 串口初始化
void uart0_init(void)
{
    UCSRB = 0x00; //disable while setting baud rate
    UCSRA = 0x00;
    UCSRC = BIT(URSEL) | 0x06;
    UBRRL = 0x33; //set baud rate lo
    UBRRH = 0x00; //set baud rate hi
    UCSRB = 0x18;
}

// 查询方式串口发送程序
void UART_Transmit(unsigned char data)
{
    UDR = data;                   // 发送数据
        while(!(UCSRA & (1<<UDRE)));  // 等待发送完成
}

/******************************************************************************
复位:
为使地址计数器复位到0,先让Reset端变高。紧跟着一个Clock脉冲(从低到高再降到0),
Reset重新变低,把Clock脉冲包住。随着Reset端变低,地址0单元的数据从I/O上输出。对
应 Clock端的每个脉冲,其上升沿使地址计数器增加。其下降沿使被选通地址单元的数据从
I/O上输出。地址计数器增加到127后返回到0
      __________________
_____|                  |_____________________________________________ Reset
     :                  :
     :        _____     :  _____       _____       _____       _____
_____:_______|     |____:_|     |_____|     |_____|     |_____|     |_ Clk
     :       :          : :     :     :     :     :     :     :     :
_____:_______:__________:_:_____:_____:_____:_____:_____:_____:_____:_
_____:___n___|_____0____:_|_____1_____|_____2_____|_____3_____|___4_:_ (Address)
     :                  :       :           :           :           :
_____:                  :_______:___________:___________:___________:_
_____XXXXXXXXXXXXXXXXXXXX_______|___________|___________|___________|_ Data
******************************************************************************/
// IC 卡复位
void Reset_Card(void)
{
    SET_RST;
        CLR_CLK;
        SET_CLK;
        CLR_CLK;
        CLR_RST;
}

// 读IC卡
uint8 Read_Card(void)
{
    uint8 data;  
        uint8 i;
       
        CLR_RST;     // RST = 0;
        SET_CLK;     // CLK = 1;
       
        for(i=8;i>0;i--)
        {
            data <<= 1;  
                SET_CLK;
                CLR_CLK;
                if(PIN_IC_CARD) data |= 1;       
        }
        return data;  
}

void main(void)
{
    uint8 i;
        DDR_IC_CARD;            // 端口初始化
        uart0_init();           // 串口初始化
        Reset_Card();           // IC卡复位  
       
        for(i=0;i<16;i++)
        {
            databuf = Read_Card();  // 循环读取16个字节数据
        }
        for(i=0;i<16;i++)
        {
                UART_Transmit(databuf);  // 循环发送16个字节数据
        }
       
        while(1);
}

我的卡读出来为:86 03 80 96 1C 24 F2 30 00 00 03 0F 0F FF FF FF

出0入0汤圆

发表于 2007-11-12 21:58:26 | 显示全部楼层
请教,电话IC卡卡也能读出数据来么?卡是什么型号的?

出0入0汤圆

发表于 2007-11-12 22:23:18 | 显示全部楼层
附上电路参考价值就更大了!

出0入0汤圆

发表于 2007-11-12 23:10:38 | 显示全部楼层
能写入才有价值^_^

出0入0汤圆

发表于 2007-11-12 23:46:35 | 显示全部楼层
嘿嘿,大家想太多了。

出0入0汤圆

发表于 2007-11-13 08:08:22 | 显示全部楼层
只是读出序列号吧,至于计费的数额应该是主机上,不再卡里面的吧?
头像被屏蔽

出0入0汤圆

发表于 2007-11-13 08:13:19 | 显示全部楼层
竟然有这么巧的事,昨天我们刚将SIM手机卡这个配件加入到邮购部

我正在做这方面的实验,所以就顺便让采购员采购了。

出0入475汤圆

发表于 2007-11-13 10:32:45 | 显示全部楼层
不能有檫除意义上的写,但可以普通意义上的写,即烧钱,上面卡上还有16.4元钱,可以通过'写'命令让他变成0,但是不能恢复.
这个不是序列号,钱也在上面,我都知道他有多少钱了,不信你问楼主,
这个卡不是SIM,阿莫的那种可没有这么简单,不知道阿莫的是正在的SIM卡还是那种台湾啊什么地方私人做的877,8515等卡,如果是前者的话感觉没有用处,因为要不已经是废卡要不就是没有使用的带号卡,后者的话价格合适我也买些张,先给自己电话卡备份一个,以备电话丢失后马上可以用,然后就是来玩卫星电视

出0入0汤圆

发表于 2007-11-13 11:27:49 | 显示全部楼层
电话IC卡在ouravr上都有人用单片机仿真成功了,那么资料多,

出0入0汤圆

发表于 2007-11-13 11:28:46 | 显示全部楼层
4401卡只能减少

出0入0汤圆

发表于 2007-11-13 11:31:49 | 显示全部楼层
【8楼】 zbhrose 电话IC卡在ouravr上都有人用单片机仿真成功了,那么资料多,
给个连接吧,我记得搂主早就删除了

出0入0汤圆

发表于 2007-11-13 14:24:46 | 显示全部楼层
电话卡(就是那种IC电话上用的卡)的原理与我们经常用的SIM卡不属于一种类型的。电话卡里面有个计数器,里面记录的不是钱,而是计费单位,也就是说电话机在每个收费单位会将其中一个位写0,这些位只能写0,不能再恢复了,所以如果你愿意可以通过时序把你自己的卡全写为0,结果也很明显,不能再用了,呵呵。而网上所谓的仿真卡其实就是从这里下手的。举例说明吧,你自己做个转接卡(主要是为了连线)然后后面带一个单片机,一旦进入电话机中的时候,让单片机尽快工作,仿真真实的卡来给电话机发送时序,但当电话机发写卡命令的时候,单片机可以通过内部RAM来反应,模拟实际操作。非常明显的是一点,当你断电(卡取出)再插进去的时候,所有数据又全恢复了,就相当于根本就没花钱。我曾经仿真过4442加密卡,成功了一大部分了,后来没时间了,放下了,是完全可行的。对于SIM卡其实是一种CPU卡,里面除了数据还有一个单片机在工作,就是一般的877卡或者是8515卡。其实这种卡通讯是通过串行通讯的方式的,不过采用了半双工,当然我们要想读取数据就必须知道协议,我不知道啊,有没有高手提供一下?如果有人愿意的话,可以自己将里面的单片机的程序重新改掉,那么就可以用你自己定义的协议了。这两种卡根本就不属于一种类型。

出0入0汤圆

 楼主| 发表于 2007-11-13 21:24:11 | 显示全部楼层
,------------+------------,      ,------------+------------,
|  8         |         4  |      |  1         |         5  |
+------\     |     /------+      +------\     |     /------+
|  7    +----+----+    3  |      |  2    +----+    +    6  |
+-------|         |-------+      +-------|         |-------+
|  6    +    +----+    2  |      |  3    +----+----+    7  |
+------/     |     \------+      +------/     |     \------+
|  5         |         1  |      |  4         |         8  |
'------------+------------'      '------------+------------'

                           6 contacts
                          ISO POSITION
                      (in the middle left)

                  ,------------+------------,
                  |  1         |         5  |
                  +------\     |     /------+
                  |  2    +----+    +    6  |
                  +-------|         |-------+
                  |  3    +----,----+    7  |
                  '------------'------------'

NB: only the position of the chip is ISO standardized and not the pinout.

PINOUT:   1 : Vcc = 5V     5 : Gnd
~~~~~~    2 : RESET        6 : Vpp = 5V    (*)
          3 : Clock        7 : I/O
          4 : RAS          8 : Fus         (**)

上面的是电路图,I/O 那个脚最好要接个上拉,反正我没有接时,是没有调出来的。如果是6个触点的IC卡只有这几个脚:
          1 : Vcc = 5V     5 : Gnd
~~~~~~    2 : RESET        6 : Vpp = 5V    (*)
          3 : Clock        7 : I/O

只是读电话IC卡里的东西,没有写,论坛里有很多资料,还有模拟IC卡的,不过我不想去玩,这个也只是纯玩,
其实现在接触IC卡已快被淘汰了,一是保密性不好,另一个接触面也易磨损,现在是射频卡的天下了,
有机会还是玩下射频卡比较好!

出0入0汤圆

发表于 2007-11-13 21:52:53 | 显示全部楼层
用M8仿电话IC卡,网上有好多资料。我想,要做一个出来不难。
我写了个用M16读IC卡的程序可以给大家参考一下

出0入475汤圆

发表于 2007-11-13 21:54:23 | 显示全部楼层
这种类型的卡已被玩滥了,没有必要继续谈下去了。
我们这里前2天的报纸上说马上就要全面淘汰了,准备玩射频卡的破解了,有兴趣的讨论讨论

出0入0汤圆

发表于 2007-11-13 22:01:00 | 显示全部楼层
.macro        SBICLK                                ; load Z pointer
        SBI                ICDATA,CLK
.endm

.macro        CBICLK                                ; load Z pointer
        CBI                ICDATA,CLK
.endm
.macro        SBIRST                                ; load Z pointer
        SBI                ICDATA,RST
.endm
.macro        CBIRST                                ; load Z pointer
        CBI                ICDATA,RST
.endm
.macro        table                                ; load Z pointer
        ldi        ZL,low(@0*2)                ; low
        ldi        ZH,high(@0*2)                ; high
.endm

.INCLUDE "M16DEF.INC"

.EQU        SD        = PA7
.EQU        CLK        = PA5
.EQU        RST        = PA3
.EQU        VCC        = PA2
.EQU        GND        = PA3
.EQU        ICDATA        = PORTA
.EQU        ICIN        = PINA
.EQU        ICDDR        = DDRA
.EQU        ICLAN        = 0X40

.DEF        datal        = R16
.DEF        datah        = R17
.DEF        TTL        = R18
.DEF        TTH        = R19
.DEF        TEMP1        = R20
.DEF        TEMP2        = R21
.DEF        TEMP3        = R22
.DEF        UBDAT        = R23
.DEF        BBIT        = R24
.DEF        ICSD        = R25

.equ        BIT0        = 0        ; Port D Input Pins bit 0
.equ        BIT1        = 1        ; Port D Input Pins bit 1
.equ        BIT2        = 2        ; Port D Input Pins bit 2
.equ        BIT3        = 3        ; Port D Input Pins bit 3
.equ        BIT4        = 4        ; Port D Input Pins bit 4
.equ        BIT5        = 5        ; Port D Input Pins bit 5
.equ        BIT6        = 6        ; Port D Input Pins bit 6
.equ        BIT7        = 7        ; Port D Input Pins bit 7

.cseg
.ORG 0x00
        rjmp        Reset         ; Reset handle
;        rjmp        CLK_INT         ; INT0 handle
;        rjmp        RST_INT         ; INT1 handle
;         rjmp        ICP_INT         ; Input Capture1 Interrupt
;        rjmp        OC1_INT         ; Output Compare1 Interrupt
;        rjmp        OVF1_INT ; Overflow1 Interrupt
;        rjmp        OVF0_INT ; Overflow0 Interrupt
;        rjmp        RX_END         ; UART Receive Complete
;        rjmp        UDR_EMP         ; UART Data Register Empty
;        rjmp        TX_END         ; UART Transmit Complete
;        rjmp        AC_INT         ; Analog Comparator
.ORG        0x10

Reset:
        LDI        TEMP1,LOW(RAMEND) ;initialize stack
        OUT        SPL,TEMP1
        LDI        TEMP1,HIGH(RAMEND)
        OUT        SPH,TEMP1

        LDI        TEMP1,0x00
        OUT        DDRA,TEMP1
        OUT        DDRB,TEMP1
        OUT        DDRC,TEMP1
        OUT        DDRD,TEMP1
        OUT        PORTA,TEMP1
        OUT        PORTB,TEMP1
        OUT        PORTC,TEMP1
        OUT        PORTD,TEMP1
        SBI        ICDDR,CLK
        SBI        ICDDR,RST
        CBI        ICDDR,SD
        CBI        ICDATA,RST
        CBI        ICDATA,CLK
        SBI        ICDATA,SD
        CLR        TEMP1
        OUT        DDRD,TEMP1
        SER        TEMP1
        OUT        PORTD,TEMP1
        SBI        PORTC,6
        SBI        PORTC,7


        CLR     TEMP1
        OUT     UCSRB,TEMP1
        OUT     UCSRA,TEMP1
        LDI     TEMP2,0xa6
        OUT     UCSRC,TEMP2
        LDI     TEMP2,0x0b
        OUT     UBRRL,TEMP2
        OUT     UBRRH,TEMP1
        LDI     TEMP2,0x08
        OUT     UCSRB,TEMP2

       



LOOP:

;        RCALL        READIC1
        SBIc        PIND,2
        rjmp        pp2
        LDI        R16,5
        RCALL        DELAY_M
PP1:        SBIS        PIND,2
        RJMP        PP1
        RCALL        INITIC
        RCALL        READIC1
pp2:
        SBIc        PINC,6
        rjmp        PP4
        LDI        R16,5
        RCALL        DELAY_M
PP3:        SBIS        PINC,6
        RJMP        PP3
        RCALL        INITIC
        RCALL        READIC2
PP4:
        SBIc        PINC,7
        rjmp        pp6
        LDI        R16,5
        RCALL        DELAY_M
PP5:        SBIS        PINC,7
        RJMP        PP5
        RCALL        INITIC
        RCALL        READIC3
pp6:
        SBIc        PIND,3
        rjmp        pp8
        LDI        R16,5
        RCALL        DELAY_M
PP7:        SBIS        PIND,3
        RJMP        PP7
        RCALL        INITIC
        RCALL        READIC4
pp8:
       
        rjmp        LOOP

INITIC:
        SBI        PORTA,        0
        SBI        DDRA,        0
        LDI        R16,        170
        DEC        R16
        BRNE        PC-1
        LDI        R16,        170
        DEC        R16
        BRNE        PC-1
        RET
ENDIC:        CBI        PORTA,        0
        RET
;*******************************************************************

READIC1:
        LDI                XL,0X60
        LDI                XH,0X00
        SBIRST
        RCALL        DELAY

        SBICLK
        RCALL        DELAY

        CBICLK
        RCALL        DELAY

        CBIRST
        RCALL        DELAY
       
        CLR                TEMP1
LOOPBAY1:
        CLR                TEMP2
        CLR                ICSD
LOOPBIN1:
        LSR                ICSD
        SBIC        ICIN,SD
        SUBI    ICSD,0x80
        SBICLK
        RCALL        DELAY

        CBICLK
        RCALL        DELAY

        INC        TEMP2
        CPI        TEMP2,8
        BRCS        LOOPBIN1
        ST        X+,ICSD
        INC        TEMP1
        CPI        TEMP1,ICLAN
        BRCS        LOOPBAY1
        RJMP        UBSR
;*********************************************************

READIC2:
        LDI                XL,0X60
        LDI                XH,0X00
        SBIRST
        RCALL        DELAY1

        SBICLK
        RCALL        DELAY1

        CBICLK
        RCALL        DELAY1

        CBIRST
        RCALL        DELAY1

        CLR        TEMP1
LOOPBAY2:
        CLR        TEMP2
        CLR        ICSD
LOOPBIN2:
        LSR        ICSD
        SBIC        ICIN,SD
        SUBI    ICSD,0x80
        SBICLK
        RCALL        DELAY1

        CBICLK
        RCALL        DELAY1

        INC        TEMP2
        CPI        TEMP2,8
        BRCS        LOOPBIN2
        ST        X+,ICSD
        INC        TEMP1
        CPI        TEMP1,ICLAN
        BRCS        LOOPBAY2
        RJMP        UBSR
;*********************************************************
READIC3:
        LDI                XL,0X60
        LDI                XH,0X00
        SBIRST
        RCALL        DELAY2

        SBICLK
        RCALL        DELAY2

        CBICLK
        RCALL        DELAY2

        CBIRST
        RCALL        DELAY2
       
        CLR        TEMP1
LOOPBAY3:
        CLR        TEMP2
        CLR        ICSD
LOOPBIN3:
        LSR        ICSD
        SBIC        ICIN,SD
        SUBI    ICSD,0x80
        SBICLK
        RCALL        DELAY2

        CBICLK
        RCALL        DELAY2

        INC        TEMP2
        CPI        TEMP2,8
        BRCS        LOOPBIN3
        ST        X+,ICSD
        INC        TEMP1
        CPI        TEMP1,ICLAN
        BRCS        LOOPBAY3
        RJMP        UBSR


READIC4:
        LDI                XL,0X60
        LDI                XH,0X00
        SBIRST
        RCALL        DELAYA

        SBICLK
        RCALL        DELAYA

        CBICLK
        RCALL        DELAYA

        CBIRST
        RCALL        DELAYA
       
        CLR        TEMP1
LOOPBAY4:
        CLR        TEMP2
        CLR        ICSD
LOOPBIN4:
        LSR        ICSD
        SBIC        ICIN,SD
        SUBI    ICSD,0x80
        SBICLK
        RCALL        DELAYA

        CBICLK
        RCALL        DELAYA

        INC        TEMP2
        CPI        TEMP2,8
        BRCS        LOOPBIN4
        ST        X+,ICSD
        INC        TEMP1
        CPI        TEMP1,ICLAN
        BRCS        LOOPBAY4
;===========================================================

UBSR:;发送数据
        RCALL        ENDIC
        LDI        YL,0X60
        LDI        YH,0X00
        LDI        TEMP2,0x00
UBLO:
        LD        TEMP1,Y+
        PUSH        TEMP2
        RCALL        BTSDI
        POP        TEMP2
        INC        TEMP2
        CPI        TEMP2,0x10
        BRCS        BBKE
        LDI        TEMP2,0x00
        RCALL        HXCC

BBKE:
        CPI        YL,0x60+ICLAN
        BRCS        UBLO
        RCALL        HXCC
BBED:
        RCALL        JEJS
        RCALL        SPAC5
        RCALL        JEJH
        RCALL        HXCC

;*********发送换行号************
HXCC:
        LDI        UBDAT,0x0D
        RCALL        putc
        LDI        UBDAT,0x0A
        RCALL        putc
        RET
;*********金额计算十六进制,存入TTH,TTL************
JEJS:
        LDI        YL,0x6D
        LDI        YH,0x00
        CLR        DATAL
        CLR        DATAH
        CLR        TTH
        LDI        TTL,1
JSDD:
        LD        TEMP1,-Y
        RCALL        JSZS
        LDI        TEMP3,8

        MUL        TTH,TEMP3
        MOV        TTH,R0
        MUL        TTL,TEMP3
        MOV        TTL,R0
        ADD        TTH,R1

        CPI        YL,0x68
        BRNE        JSDD
        RET
SPAC5:
       
        LDI        TEMP1,8
        LDI        UBDAT,0x20
TOSP:        RCALL        PUTC
        DEC        TEMP1
        BRNE        TOSP
        RET

;*********金额计算十六进制转十进制经COM口发送出************
JEJH:
        CBR        BBIT,1
        LDI        TTL,0x10
        LDI        TTH,0x27
        RCALL        SUBBB
        CPI        TEMP3,0x30
        BREQ        UPP1
        MOV        UBDAT,TEMP3
        RCALL        PUTC
        SBR        BBIT,1
       
UPP1:        LDI        TTL,0xE8
        LDI        TTH,0x03
        RCALL        SUBBB
        CPI        TEMP3,0x30
        BRNE        UPP2
        SBRS        BBIT,0
        RJMP        UPP3
UPP2:
        MOV        UBDAT,TEMP3
        RCALL        PUTC
        SBR        BBIT,1
UPP3:
        LDI        TTL,0x64
        LDI        TTH,0x00
        RCALL        SUBBB
        CPI        TEMP3,0x30
        BRNE        UPP4
        SBRS        BBIT,0
        RJMP        UPP5
UPP4:
        MOV        UBDAT,TEMP3
        RCALL        PUTC
UPP5:
        LDI        TTL,0x0A
        LDI        TTH,0x00
        RCALL        SUBBB
        MOV        UBDAT,TEMP3
        RCALL        PUTC
        LDI        UBDAT,0x2E
        RCALL        PUTC
        LDI        UBDAT,0x30
        ADD        UBDAT,DATAL
        RCALL        PUTC
        RET

SUBBB:
        LDI        TEMP3,0x30
SUBBE:
        MOV        TEMP1,TTH
        SUB        DATAL,TTL
        BRCC        SUBBH
        INC        TEMP1
SUBBH:
        SUB        DATAH,TEMP1
        BRCC        EDSUBB
        ADD        DATAL,TTL
        ADD        DATAH,TEMP1
        RET
EDSUBB:
        INC        TEMP3
        RJMP        SUBBE


JSZS:
        LDI        TEMP3,8
JELOOP:
        ROR        TEMP1
        BRCC        JEJSS
        ADD        DATAL,TTL
        BRCC        JJSEE
        INC        DATAH
JJSEE:
        ADD        DATAH,TTH
JEJSS:
        DEC        TEMP3
        BRNE        JELOOP
        RET
               



BTSDI:
        MOV        TEMP2,TEMP1
        SWAP        TEMP1
        ANDI        TEMP1,0x0F
        RCALL        INTTOSTR
        RCALL        putc
        MOV        TEMP1,TEMP2
        ANDI        TEMP1,0x0F
        RCALL        INTTOSTR
        RCALL        putc
        LDI        UBDAT,0x20
        RCALL        putc
        RET



INTTOSTR:        ;数值转字符
        CPI        TEMP1,10
        BRSH        PC+3
        LDI        UBDAT,'0'
        RJMP        PC+2
        LDI        UBDAT,'A'-10
        ADD        UBDAT,TEMP1
        RET
;***************************************************************************

;***************************************************************************
DELAY:
        NOP
        NOP
DELAY1:
        NOP
        NOP
DELAY2:
        NOP
        NOP
DELAY3:
        NOP
DELAY4:
        RJMP        DELAYA
;***************************************************************************
;***************************************************************************
DELAYA:
        NOP
        RET
;***************************************************************************
DELAY_M:
        LDI                R17,255
DELAY_U:
        LDI                R18,255
DELAY_N:
        DEC                R18
        BRNE        DELAY_N
        DEC                R17
        BRNE        DELAY_U
        DEC                R16
        BRNE        DELAY_M
        RET
;***************************************************************************

putc:
        sbis        USR,UDRE                ; test for TX register empty
        rjmp        putc                        ; loop until TX empty
        out        UDR,UBDAT                        ; send the byte
        ret

;***************************************************************************

出0入96汤圆

发表于 2010-5-12 10:34:02 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-5-12 11:16:12 | 显示全部楼层
回复【11楼】ssyniuej
-----------------------------------------------------------------------

老大,你也太专业了

出0入0汤圆

发表于 2010-5-12 21:39:08 | 显示全部楼层
ddddddddddddddd

出0入0汤圆

发表于 2010-9-14 09:04:42 | 显示全部楼层
mark!

出0入0汤圆

发表于 2010-9-20 17:46:39 | 显示全部楼层
mark
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-7 23:00

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表