YL160磁条四合一编码器如何实现Read/Write?
how to achieve Read/Write on YL160 Magnetic Stripe 4in 1 encoder?
我最近从中国买了一台Magnetic Reader/Writer (YL160 4 in 1 Reader/Writer)
它与演示应用程序以及 API 一起提供。
这个设备我主要需要的是Magnetic Stripe Write,我需要把数据写到一张空白的HiCo磁卡上。
当我在磁条选项卡下打开演示应用程序时,它们是两列
- 只读
- 读写
只读有效,但 Read/Write 无效,它指的是只读,这表明设备没有写入功能,所以我进入 API 进行检查如果演示应用程序有问题,这是我在 160.h 头文件
中找到的内容
extern int _stdcall MSR_Init(void);
extern void _stdcall MSR_Exit(void);
extern int _stdcall MSR_DoCancel(void);
extern int _stdcall MSR_Read(void);
extern int _stdcall MSR_Write(unsigned char *TK1Dat, unsigned char *TK2Dat, unsigned char *TK3Dat);
extern int _stdcall MSR_Read_ASCII(void);
extern int _stdcall MSR_Write_ASCII(char *trace1, char *trace2, char *trace3);
extern int _stdcall MSR_Erase(unsigned char mode);
extern int _stdcall MSR_GetTrackData(unsigned char *TK1Dat, unsigned char *TK2Dat, unsigned char *TK3Dat);
extern int _stdcall MSR_Set_HiCo ();
extern int _stdcall MSR_Set_LoCo ();
extern int _stdcall MSR_Get_CoStatus(unsigned char *status);
extern int _stdcall Msr_ChangeAscii(unsigned char *TK1Dat, unsigned char *TK2Dat, unsigned char *TK3Dat);
extern int _stdcall MSR_Write_status(void);
extern int _stdcall MSR_Fast_Init(int portnum);
extern int _stdcall MSR_Get_HwInfo (char *info);
extern void _stdcall MSR_BeepOff (void);
extern void _stdcall MSR_BeepOn (void);
extern int _stdcall MSR_Erase_status(void);
extern int _stdcall MSR_ASC_Read(void);
extern int __stdcall auto_init(void)
然后这个
extern void __stdcall MagOpen(void);
extern void __stdcall MagClose(void);
extern void __stdcall MagReset(void);
extern unsigned char __stdcall MagSwiped(void);
extern unsigned char __stdcall MagRead(unsigned char *Track1, unsigned char *Track2,unsigned char *Track3);
然后我想也许演示应用程序正在使用 MagOpen() 将设备切换到读取模式,但没有将设备切换到 的功能写入模式。
我还没有用 MSR_Write() 测试过 MagOpen()。
API 文件夹内有 Lib160.dll 和 Lib160.lib
我尝试用 IDA Pro 反汇编 Lib160.dll 以查看 MagOpen 中发生了什么 所以我也许可以实现写入模式开关,但 IDA Pro 显示有关输入的错误。
此外,此设备在设备管理器中显示为 Microsoft Usbccid 智能卡 Reader (WUDF) 在智能卡 Reader 下,不在 COM 端口或 HID 上。
现在这是我的问题
是否可以检测磁头是否可以写入?如果是如何?
能不能把磁头换成有写入功能的磁头?
请帮助我需要帮助,编码不是问题,但问题是从哪里开始
谢谢
根据亚马逊上的产品图片(参见 ASIN # B09L17C3PG):
磁卡是只读的。
我最近从中国买了一台Magnetic Reader/Writer (YL160 4 in 1 Reader/Writer) 它与演示应用程序以及 API 一起提供。 这个设备我主要需要的是Magnetic Stripe Write,我需要把数据写到一张空白的HiCo磁卡上。
当我在磁条选项卡下打开演示应用程序时,它们是两列
- 只读
- 读写
只读有效,但 Read/Write 无效,它指的是只读,这表明设备没有写入功能,所以我进入 API 进行检查如果演示应用程序有问题,这是我在 160.h 头文件
中找到的内容extern int _stdcall MSR_Init(void);
extern void _stdcall MSR_Exit(void);
extern int _stdcall MSR_DoCancel(void);
extern int _stdcall MSR_Read(void);
extern int _stdcall MSR_Write(unsigned char *TK1Dat, unsigned char *TK2Dat, unsigned char *TK3Dat);
extern int _stdcall MSR_Read_ASCII(void);
extern int _stdcall MSR_Write_ASCII(char *trace1, char *trace2, char *trace3);
extern int _stdcall MSR_Erase(unsigned char mode);
extern int _stdcall MSR_GetTrackData(unsigned char *TK1Dat, unsigned char *TK2Dat, unsigned char *TK3Dat);
extern int _stdcall MSR_Set_HiCo ();
extern int _stdcall MSR_Set_LoCo ();
extern int _stdcall MSR_Get_CoStatus(unsigned char *status);
extern int _stdcall Msr_ChangeAscii(unsigned char *TK1Dat, unsigned char *TK2Dat, unsigned char *TK3Dat);
extern int _stdcall MSR_Write_status(void);
extern int _stdcall MSR_Fast_Init(int portnum);
extern int _stdcall MSR_Get_HwInfo (char *info);
extern void _stdcall MSR_BeepOff (void);
extern void _stdcall MSR_BeepOn (void);
extern int _stdcall MSR_Erase_status(void);
extern int _stdcall MSR_ASC_Read(void);
extern int __stdcall auto_init(void)
然后这个
extern void __stdcall MagOpen(void);
extern void __stdcall MagClose(void);
extern void __stdcall MagReset(void);
extern unsigned char __stdcall MagSwiped(void);
extern unsigned char __stdcall MagRead(unsigned char *Track1, unsigned char *Track2,unsigned char *Track3);
然后我想也许演示应用程序正在使用 MagOpen() 将设备切换到读取模式,但没有将设备切换到 的功能写入模式。 我还没有用 MSR_Write() 测试过 MagOpen()。 API 文件夹内有 Lib160.dll 和 Lib160.lib
我尝试用 IDA Pro 反汇编 Lib160.dll 以查看 MagOpen 中发生了什么 所以我也许可以实现写入模式开关,但 IDA Pro 显示有关输入的错误。 此外,此设备在设备管理器中显示为 Microsoft Usbccid 智能卡 Reader (WUDF) 在智能卡 Reader 下,不在 COM 端口或 HID 上。
现在这是我的问题
是否可以检测磁头是否可以写入?如果是如何?
能不能把磁头换成有写入功能的磁头?
请帮助我需要帮助,编码不是问题,但问题是从哪里开始
谢谢
根据亚马逊上的产品图片(参见 ASIN # B09L17C3PG):
磁卡是只读的。