Contact base Smart Card intercept tools ---

Similar documents
FY.DOC

2/14 Buffer I12, /* x=2, buffer = I 1 2 */ Buffer I243, /* x=34, buffer = I 2 43 */ x=56, buffer = I243 Buffer I243I265 code_int(int x, char *buffer)

bingdian001.com

INTRODUCTION TO COM.DOC

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

51 C 51 isp 10 C PCB C C C C KEIL

Microsoft Word - 11.doc

华恒家庭网关方案

标题

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;

Microsoft Word - CIN-DLL.doc

untitled

目 录

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha

VoIP Make a Rtp Call VoIP Abstract... 2 VoIP RTP...3 Socket IP...9 Config Two Voice-hub

378高雄市都市計畫說明書

C语言的应用.PDF

Oracle Oracle Solaris Studio IDE makefile C C++ Fortran makefile IDE Solaris Linux C/C++/Fortran Oracle IDE "P

用户大会 论文集2.2.doc

/ / (FC 3)...

Oracle Solaris Studio makefile C C++ Fortran IDE Solaris Linux C/C++/Fortran IDE "Project Properties" IDE makefile 1.

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc

ICD ICD ICD ICD ICD


C 1 # include <stdio.h> 2 int main ( void ) { 4 int cases, i; 5 long long a, b; 6 scanf ("%d", & cases ); 7 for (i = 0;i < cases ;i ++) 8 { 9

2013 C 1 # include <stdio.h> 2 int main ( void ) 3 { 4 int cases, a, b, i; 5 scanf ("%d", & cases ); 6 for (i = 0;i < cases ;i ++) 7 { 8 scanf ("%d %d

untitled

提问袁小兵:

Important Notice SUNPLUS TECHNOLOGY CO. reserves the right to change this documentation without prior notice. Information provided by SUNPLUS TECHNOLO

目 录 软 件 概 述 软 件 用 途 软 件 运 行 系 统 配 置... 3 使 用 入 门 软 件 登 录 与 退 出 页 面 介 绍... 6 组 别 账 号 编 辑 组 别 编 辑.

(Methods) Client Server Microsoft Winsock Control VB 1 VB Microsoft Winsock Control 6.0 Microsoft Winsock Control 6.0 1(a). 2

EK-STM32F

bingdian001.com

A Preliminary Implementation of Linux Kernel Virus and Process Hiding

新・明解C言語入門編『索引』

教育部高等学校教学

AL-M200 Series

《將進酒》

河 南 蓝 皮 书 文 化 (2008) 网 络 文 学 主 要 是 指 在 网 上 原 创 的 文 学 作 品 作 为 网 络 文 化 的 主 力 部 分, 网 络 文 学 的 发 展 在 近 年 来 势 不 可 挡 作 为 凭 借 新 兴 媒 介 兴 起 的 文 学, 网 络 文 学 与 传 统

21 flash

epub83-1

C 1

ebook12-1

untitled

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.07.doc

新版 明解C++入門編

目录

概述

_汪_文前新ok[3.1].doc

nooog

ebook140-8

Simulator By SunLingxi 2003

IP505SM_manual_cn.doc

Microsoft Word - 第三章第一節第二節.doc

untitled

壹:教育文化公益慈善機關或團體免納所得稅適用標準

CC213

untitled

國立中山大學學位論文典藏.PDF

ebook15-C

<4D F736F F D20D0C5CFA2BBAFB7A2D5B9D6D8B5E3D7A8CFEEB9E6BBAE2E646F63>

关于建立境内违法互联网站黑名单管理制度的通知

? 這 全 都 是 市 政 府 提 供 給 我 的 資 料 低 底 盤 公 車 計 畫 96 年 預 算 新 台 幣 4,500 萬 元 97 年 預 算 新 台 幣 1 億 6,500 萬 元 98 年 預 算 新 台 幣 3 億 2,300 萬 元, 共 有 307 台 低 底 盤 公 車,99

mvc

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

Microsoft Word cppFinalSolution.doc

chp6.ppt

第7章-并行计算.ppt

PIC16F F MPLAB 08 16F LED 15 LED

<4D F736F F D20C8EDC9E82DCFC2CEE7CCE22D3039C9CF>

1.5招募说明书(草案)

TwinCAT 1. TwinCAT TwinCAT PLC PLC IEC TwinCAT TwinCAT Masc

W. Richard Stevens UNIX Sockets API echo Sockets TCP OOB IO C struct C/C++ UNIX fork() select(2)/poll(2)/epoll(4) IO IO CPU 100% libevent UNIX CPU IO

Microsoft Word - MAN2011A_CH_RTT.doc

ebook14-4

Microsoft Word 箕æ−¥ï¼‹å®ı稿;

98年度即測即評學科測試與即測即評即發證技術士技能檢定簡章

C6_ppt.PDF

JTAG ICE PC JTAG ICE JTAG ISP... 5 IDE AVR STUDIO JTAGICE JTAGICE... 12

ebook15-10

untitled

<4D F736F F D20B9F9B0EABBCDBBAFAB48DEB3B4C1A5BDB3F8A7692E646F63>


( CIP) /. :, ( ) ISBN TP CIP ( 2005) : : : : * : : 174 ( A ) : : ( 023) : ( 023)

嵌入式Linux块设备驱动开发解析

1 LINUX IDE Emacs gcc gdb Emacs + gcc + gdb IDE Emacs IDE C Emacs Emacs IDE ICE Integrated Computing Environment Emacs Unix Linux Emacs Emacs Emacs Un

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor

Microsoft Word - 01.DOC

第二章 系统初始化.doc

範本檔

ebook140-9

Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream Class java.io.datainptstream (extends) FilterInputStream InputStream Obj

Microsoft Word - MAN2023A_CH_APPONE.doc

典型自编教材

学习MSP430单片机推荐参考书

中 文 摘 要 智 慧 型 手 機 由 於 有 強 大 的 功 能, 以 及 優 渥 的 便 利 性, 還 能 與 網 路 保 持 隨 時 的 鏈 結 與 同 步 更 新, 因 此 深 受 廣 大 消 費 者 喜 愛, 當 然, 手 機 遊 戲 也 成 為 現 代 人 不 可 或 缺 的 娛 樂 之

ARM JTAG实时仿真器安装使用指南

(一)宿舍生活解惑區

c_cpp

Transcription:

虚拟卡软仿真说明 Virtual Card and Simulator manual 使用说明 Virtual card 软件仿真是指在 pc 上使用 vc 等工具, 配合 工具, 能够快速进行功能调试一种工程搭建方法 使用者通过一些简单设置, 即可将同一套代码共享在两个工程下 ( 例如一个 vc 工程, 一个 keil 工程 ), 这样代码的逻辑完全一致, 绝大多数问题都可以在 vc 环境下进行调试, 效率比在 keil 下调试能提高几倍到几十倍, 并可实现一些在真实环境下很难复现的场景 本手册中涉及 Vcardio.lib 和 vcardio.h 两个 vc 工程文件 本手册中涉及的软件是 taoism 2 软件 0.0.3.9 版及以上版本 第 1 页共 34 页

虚拟卡软仿真说明 目 录 VIRTUAL CARD AND SIMULATOR MANUAL... 1 目录... 2 建立一个 VC 对话框工程... 3 拷贝 VCARDIO.LIB 和 VCARDIO.H 到工程目录下, 并加入工程... 9 在 MYCARDDLG.CPP 中 INCLUDE VCARDIO.H... 10 修改 INITIADIALOG 函数, 按 CTRL + W, 编辑 ONINITDIALOG 函数... 11 在 ONINITDIALOG 中加入如下代码... 11 编译代码, 会有如下错误... 12 按 ALT+F7, 加入 VCARDIO.LIB... 13 如有若干个 LNK2005 错误, 按 ALT+F7... 13 再次编译, 会有如下错误... 14 再次编译, 成功... 16 按 CTRL + W, 响应 TIMER... 16 编辑 ONTIMER 函数, 加入 KILLTIMER 和调用虚拟卡主函数... 16 编译代码, 提示缺少 MYMAIN 函数... 17 加入 MYMAIN 函数... 17 新建代码文件, 实现 MYMAIN 函数... 18 将 KEIL_MAIN.C 加入工程中... 22 编译代码, 有可能有如下错误... 25 再次编译可能有如下错误... 27 再次编译彻底成功... 29 响应 WM_CLOSE 消息, 防止程序死锁... 29 编写智能卡逻辑代码... 29 一个极简单的 cos 代码... 30 将代码实现编写好后, 运行程序... 32 运行 SNOOPER TAOISM2 程序, 选择虚拟协议 1/11,IP 为 127.0.0.1, 端口为 9999... 33 连接成功, 效果如下... 33 发送一些指令... 34 界面脚本示例... 错误! 未定义书签 读写 flash, 定时器, 异常现象都可在 vc 下实现... 34 第 2 页共 34 页

虚拟卡软仿真说明 建立一个 vc 对话框工程 第 3 页共 34 页

虚拟卡软仿真说明 第 4 页共 34 页

虚拟卡软仿真说明 第 5 页共 34 页

虚拟卡软仿真说明 第 6 页共 34 页

虚拟卡软仿真说明 第 7 页共 34 页

虚拟卡软仿真说明 第 8 页共 34 页

虚拟卡软仿真说明 拷贝 vcardio.lib 和 vcardio.h 到工程目录下, 并加入工程 第 9 页共 34 页

虚拟卡软仿真说明 在 mycarddlg.cpp 中 include vcardio.h 第 10 页共 34 页

虚拟卡软仿真说明 修改 initiadialog 函数, 按 ctrl + w, 编辑 OnInitDialog 函数 在 OnInitDialog 中加入如下代码 第 11 页共 34 页

虚拟卡软仿真说明 编译代码, 会有如下错误 --------------------Configuration: mycard - Win32 Debug-------------------- Compiling resources... Compiling... StdAfx.cpp Compiling... mycard.cpp mycarddlg.cpp Generating Code... Linking... mycarddlg.obj : error LNK2001: unresolved external symbol "unsigned long stdcall daemon(void *)" (?daemon@@ygkpax@z) Debug/mycard.exe : fatal error LNK1120: 1 unresolved externals Error executing link.exe. mycard.exe - 2 error(s), 0 warning(s) 第 12 页共 34 页

虚拟卡软仿真说明 按 alt+f7, 加入 vcardio.lib 如有若干个 LNK2005 错误, 按 Alt+F7 例如 --------------------Configuration: mycard - Win32 Debug-------------------- Linking... nafxcw.lib(thrdcore.obj) : error LNK2005: "public: virtual void thiscall CWinThread::Delete(void)" (?Delete@CWinThread@@UAEXXZ) already defined in mfc42d.lib(mfc42d.dll) 忽略掉相关库 第 13 页共 34 页

虚拟卡软仿真说明 再次编译, 会有如下错误 --------------------Configuration: mycard - Win32 Debug-------------------- Linking... LINK : warning LNK4098: defaultlib "libc.lib" conflicts with use of other libs; use /NODEFAULTLIB:library vcardio.lib(vcardio.obj) : error LNK2001: unresolved external symbol imp accept@12 vcardio.lib(vcardio.obj) : error LNK2001: unresolved external symbol imp listen@8 vcardio.lib(vcardio.obj) : error LNK2001: unresolved external symbol imp closesocket@4 vcardio.lib(vcardio.obj) : error LNK2001: unresolved external symbol imp bind@12 vcardio.lib(vcardio.obj) : error LNK2001: unresolved external symbol imp htons@4 vcardio.lib(vcardio.obj) : error LNK2001: unresolved external symbol imp htonl@4 vcardio.lib(vcardio.obj) : error LNK2001: unresolved external symbol imp WSACleanup@0 vcardio.lib(vcardio.obj) : error LNK2001: unresolved external symbol imp socket@12 vcardio.lib(vcardio.obj) : error LNK2001: unresolved external symbol imp WSAStartup@8 vcardio.lib(vcardio.obj) : error LNK2001: unresolved external symbol imp recv@16 vcardio.lib(vcardio.obj) : error LNK2001: unresolved external symbol imp select@20 vcardio.lib(vcardio.obj) : error LNK2001: unresolved external symbol imp send@16 Debug/mycard.exe : fatal error LNK1120: 12 unresolved externals 第 14 页共 34 页

虚拟卡软仿真说明 Error executing link.exe. mycard.exe - 13 error(s), 1 warning(s) 第 15 页共 34 页

虚拟卡软仿真说明 再次编译, 成功 按 Ctrl + w, 响应 Timer 编辑 OnTimer 函数, 加入 KillTimer 和调用虚拟卡主函数 第 16 页共 34 页

虚拟卡软仿真说明 编译代码, 提示缺少 mymain 函数 --------------------Configuration: mycard - Win32 Debug-------------------- Compiling... mycarddlg.cpp Linking... mycarddlg.obj : error LNK2001: unresolved external symbol "void cdecl mymain(void)" (?mymain@@yaxxz) Debug/mycard.exe : fatal error LNK1120: 1 unresolved externals Error executing link.exe. mycard.exe - 2 error(s), 0 warning(s) 加入 mymain 函数 将新的代码存储到独立的文件夹下 第 17 页共 34 页

虚拟卡软仿真说明 新建代码文件, 实现 mymain 函数 并存储为.c 文件 第 18 页共 34 页

虚拟卡软仿真说明 创建一个文件夹, 例如 keil_src 第 19 页共 34 页

虚拟卡软仿真说明 将文件存储到 keil_src 中, 命名 keil_main.c 第 20 页共 34 页

虚拟卡软仿真说明 第 21 页共 34 页

虚拟卡软仿真说明 将 keil_main.c 加入工程中 第 22 页共 34 页

虚拟卡软仿真说明 第 23 页共 34 页

虚拟卡软仿真说明 第 24 页共 34 页

虚拟卡软仿真说明 编译代码, 有可能有如下错误 --------------------Configuration: mycard - Win32 Debug-------------------- Compiling resources... Compiling... StdAfx.cpp Compiling... mycard.cpp mycarddlg.cpp Generating Code... Compiling... keil_main.c d:\mycard\keil_src\keil_main.c(11) : fatal error C1010: unexpected end of file while looking for precompiled header directive Generating Code... Error executing cl.exe. 第 25 页共 34 页

虚拟卡软仿真说明 mycard.exe - 1 error(s), 0 warning(s) 如有此错误, 按 Alt + f7 第 26 页共 34 页

虚拟卡软仿真说明 再次编译可能有如下错误 Compiling... keil_main.c c:\program files\microsoft visual studio\vc98\mfc\include\afx.h(15) : fatal error C1189: #error : MFC requires C++ compilation (use a.cpp suffix) Generating Code... Compiling... mycarddlg.cpp Generating Code... Error executing cl.exe. mycard.exe - 1 error(s), 0 warning(s) 如有此错误, 按 Alt + f7, 加入 /Tp 选项 第 27 页共 34 页

虚拟卡软仿真说明 第 28 页共 34 页

虚拟卡软仿真说明 再次编译彻底成功 响应 WM_CLOSE 消息, 防止程序死锁 代码如下 void CMycardDlg::OnClose() { // TODO: Add your message handler code here and/or call default TerminateProcess( GetCurrentProcess(), 0 ); CDialog::OnClose(); } 编写智能卡逻辑代码 智能卡逻辑代码一般由发送 atr 或 ats 和一个无限循环组成, 下面使用 atr 来简单描述, 虚拟卡与真实 卡只是 io 收发不同, 其他的逻辑是相同的 第 29 页共 34 页

虚拟卡软仿真说明 一个极简单的 cos 代码 #include "..\vcardio.h" typedef unsigned char UINT8; UINT8 read_byte( void ) { #ifdef WIN32 return readio(); #else // 真实函数代码 return 0; #endif } void write_byte( UINT8 c ) { #ifdef WIN32 writeio( c ); #else // 真实函数代码 #endif } void sendatr( void ) { #ifdef WIN32 // 软仿真中, 发送复位信息, 使用 sendstr 函数 sendstr( "3b00" ); // t0 #else // 各种初始化 #endif } // 除一些基本函数外, 其他函数代码都是统一的 // 主函数收到一切返回 9000 void 第 30 页共 34 页

虚拟卡软仿真说明 mainloop( void ) { UINT8 command[ 5 ]; UINT8 i; } while( 1 ) { for( i = 0; i < 5; i++ ) { command[ i ] = read_byte(); } write_byte( 0x90 ); write_byte( 0x00 ); } // 主函数写法略有不同 #ifdef WIN32 void mymain( void ) { while( 1 ) { try { mainloop(); } catch(... ) { sendatr(); } } } #else void main( void ) { sendatr(); mainloop(); } #endif 第 31 页共 34 页

虚拟卡软仿真说明 将代码实现编写好后, 运行程序 点击允许访问 第 32 页共 34 页

虚拟卡软仿真说明 运行 Taoism2 程序, 选择虚拟协议 1/11,ip 为 127.0.0.1, 端口为 9999 连接成功, 效果如下 //VCard(Private Protocol 11) (T0/T1) //--connect success //reset 3B00 第 33 页共 34 页

虚拟卡软仿真说明 发送一些指令 读写 flash, 定时器, 异常现象都可在 vc 下实现 第 34 页共 34 页