自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 PCSC那事儿(三十七--PCSCD)

<br />StatSynchronize做了两件事情,同步共享内存,往pipe写入'/0'.<br />319行, StatSynchronize的入口参数rContext->readerState,在执行StatSynchronize之前已经做了足够的初始化。现在通过同步共享内存,并通过pipe告知客户端,状态readerState发生了变化。使得客户端根据共享内存获得最新的状态。<br /> <br /><br />321         while (1) <br />322         { <

2010-12-01 12:51:00 1885 2

原创 PCSC那事儿(三十六--PCSCD)

<br /> <br />回头吧,回到 EHSpawnEventHandler 177行,接着往下看。<br /><br />184         /* <br />185          * Find an empty reader slot and insert the new reader <br />186          */ <br />187         for (i = 0; i < PCSCLITE_MAX_READERS_CONTEXTS; i++) <br />188    

2010-12-01 12:49:00 1348

原创 PCSC那事儿(三十五--PCSCD)

<br />回到RFAddReader<br /> 237 <br /> 238         /* asynchronous card movement?  */ <br /> 239         { <br /> 240                 RESPONSECODE (*fct)(DWORD) = NULL; <br /> 241 <br /> 242                 dwGetSize = sizeof(fct); <br /> 243 <br /> 244     

2010-12-01 12:47:00 1527

原创 PCSC那事儿(三十四--PCSCD)

<br />这个还是放在后面解说比较好,因为关系到和一个reader上下文相关的线程终止的问题。<br />可是目前还没有解说到该线程的启动。<br /> <br />418行, RFUnInitializeReader定义在readerfactory.c<br />实现如下:<br /> <br /> <br />1062 LONG RFUnInitializeReader(PREADER_CONTEXT rContext) <br />1063 { <br />1064         Log2(PCS

2010-12-01 12:42:00 1298

原创 PCSC那事儿(三十三--PCSCD)

RFLoadReader定义在readerfactory.c实现如下: 736 LONG RFLoadReader(PREADER_CONTEXT rContext)  737 {  738         if (rContext->vHandle != 0)  739         {  740                 Log2(PCSC_LOG_INFO, "Reusing already loaded driver for %s",  741                        

2010-12-01 12:36:00 1258

原创 PCSC那事儿(三十二--PCSCD)

<br />RFLoadReader定义在readerfactory.c<br />实现如下:<br /> 736 LONG RFLoadReader(PREADER_CONTEXT rContext) <br /> 737 { <br /> 738         if (rContext->vHandle != 0) <br /> 739         { <br /> 740                 Log2(PCSC_LOG_INFO, "Reusing already loaded dr

2010-12-01 12:35:00 1467

原创 PCSC那事儿(三十一--PCSCD)

   121  122                                 if ((strcmp(lpcReader, lpcStripReader) == 0) &&  123                                         (dwPort == (sReadersConte

2010-01-28 09:35:00 1884 1

原创 PCSC那事儿(三十--PCSCD)

  464         /* 465          * Allocate memory for reader structures 466          */ 467         (void)RFAllocateReaderSpace(); 468 RFAllocateRead

2010-01-28 09:34:00 1735

原创 PCSC那事儿(二十九--PCSCD)

 绕来绕去,回到pcscdaemon.c346                 else 347                 { 348                         if (HotPlug) 349                         { 350                 

2010-01-28 09:30:00 3451 1

原创 PCSC那事儿(二十八--PCSCD)

 Info.plist这个文件以后再说。 所以呢,serial和PCMCIA类型的读卡器在/etc/reader.conf配置。usb类型的读卡器在/usr/local/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist配置。 307~312行,表示出现

2010-01-28 09:24:00 4330

原创 PCSC那事儿(二十七--开始服务端代码分析)

  服务端代码分析 服务端,明显比客户端复杂,而且还用到了多线程。 从pcscdaemon.c开始。从main开始。 继续继续... 190 int main(int argc, char **argv) 191 { 192         int rv;

2010-01-26 14:59:00 1981

原创 PCSC那事儿(二十六--SCardReconnect)

 SCardReconnect SCardReconnect定义在winscard_clnt.c实现如下:等等,问:前面提过的API有SCardConnect,这次SCardReconnect做什么?为什么需要这个API?答案是,在共享访问模式下,其中一个应用rese

2010-01-26 14:57:00 3922 1

原创 PCSC那事儿(二十五--SCardDisconnect)

 SCardDisconnect SCardDisconnect定义在winscard_clnt.c实现如下: 1030 LONG SCardDisconnect(SCARDHANDLE hCard, DWORD dwDisposition)1031 {1032         LONG rv;

2010-01-26 14:56:00 2788

原创 PCSC那事儿(二十四--SCardStatus)

 SCardStatus 1532 LONG SCardStatus(SCARDHANDLE hCard, LPSTR mszReaderName,1533         LPDWORD pcchReaderLen, LPDWORD pdwState,1534         LPDWORD pdwProtocol, LPB

2010-01-26 14:54:00 3970 1

原创 PCSC那事儿(二十三--SCardSetAttrib)

 SCardSetAttrib 343行,SCardSetAttrib定义在winscard_clnt.c实现如下: 2732 LONG SCardSetAttrib(SCARDHANDLE hCard, DWORD dwAttrId, LPCBYTE pbAttr,2733         DW

2010-01-26 14:53:00 1755

原创 PCSC那事儿(二十二--SCardGetAttrib)

 SCardGetAttribSCardGetAttrib定义在winscard_clnt.c实现如下: 2658 LONG SCardGetAttrib(SCARDHANDLE hCard, DWORD dwAttrId, LPBYTE pbAttr,2659         LPDWORD pcbAttrLen)

2010-01-26 14:51:00 3826

原创 PCSC那事儿(二十一--SCardControl)

 SCardControl SCardControl定义在winscard_clnt.c实现如下:   2365 LONG SCardControl(SCARDHANDLE hCard, DWORD dwControlCode, LPCVOID pbSendBuffer,2366        

2010-01-26 14:50:00 4687 7

原创 PCSC那事儿(二十--SCardTransmit)

 SCardTransmit245行SCardTransmit定义在winscard_clnt.c实现如下:2915 LONG SCardTransmit(SCARDHANDLE hCard, LPCSCARD_IO_REQUEST pioSendPci,2916         LPCBYTE pbSendBu

2010-01-26 14:46:00 6934 1

原创 PCSC那事儿(十九--SCardConnect)

 SCardConnect214行,SCardConnect定义在winscard_clnt.c实现如下: 734 LONG SCardConnect(SCARDCONTEXT hContext, LPCSTR szReader, 735         DWORD dwShareMode, DWO

2010-01-26 14:45:00 6359 2

原创 PCSC那事儿(十八--SCardCancel)

 SCardCancel 3495 LONG SCardCancel(SCARDCONTEXT hContext)3496 {3497         LONG dwContextIndex;3498         LONG rv = SCARD_S_SUCCESS;3499 3500        

2010-01-26 14:43:00 2233

原创 PCSC那事儿(十七--SCardGetStatusChange)

 SCardGetStatusChangeSCardGetStatusChange定义在winscard_clnt.c实现如下:1872 LONG SCardGetStatusChange(SCARDCONTEXT hContext, DWORD dwTimeout,1873         LPSCARD_READERST

2010-01-26 14:32:00 5289 2

原创 PCSC那事儿(十六--SCardListReaders)

 SCardListReadersSCardListReaders做了什么?定义在winscard_clnt.c实现如下:3202 LONG SCardListReaders(SCARDCONTEXT hContext, /*@unused@*/ LPCSTR mszGroups,3203         LPS

2010-01-26 14:31:00 6934 2

原创 PCSC那事儿(十五--SCardFreeMemory)

 SCardFreeMemory定义在 winscard_clnt.c实现如下:3321 LONG SCardFreeMemory(SCARDCONTEXT hContext, LPCVOID pvMem)3322 {3323         LONG rv = SCARD_S_SUCCESS;3324     

2010-01-26 14:30:00 2456 1

原创 PCSC那事儿(十四--SCardReleaseContext)

 SCardReleaseContext看看SCardReleaseContext发生了什么。 576 LONG SCardReleaseContext(SCARDCONTEXT hContext) 577 { 578         LONG rv; 579         rele

2010-01-26 14:26:00 2591

原创 PCSC那事儿(十三--SCardListReaderGroups)

 SCardListReaderGroups实现在winscard_clnt.c定义如下:3395 LONG SCardListReaderGroups(SCARDCONTEXT hContext, LPSTR mszGroups,3396         LPDWORD pcchGroups)3397 {339

2010-01-26 14:24:00 2223

原创 PCSC那事儿(十二--SCardIsValidContext)

 SCardIsValidContext在winscard_clnt.c中定义实现如下:3543 LONG SCardIsValidContext(SCARDCONTEXT hContext)3544 {3545         LONG rv;3546         LONG dwContextI

2010-01-26 14:23:00 2624 1

原创 PCSC那事儿(十一--SCardEstablishContext)

 这个很典型的,socket写操作。采用非阻塞方式写数据。同样的SHMMessageReceive也很典型,socket读操作。采用非阻塞方式读数据。不再罗列了。 提前说明,testpcsc和pcscd之间的通讯,是通过结构体sharedSegmentMsg (仅仅是通用的一个,后续的用到的AP

2010-01-26 14:14:00 4685

原创 PCSC那事儿(十--SCardEstablishContext)

381行, isExecuted,在本文件开头187 static short isExecuted = 0; 初始化为0,所以首次运行的时候会进入这个条件体。  393行, mapAddr = SYS_OpenFile(PCSCLITE_PUBSHM_FIL

2009-12-25 17:49:00 3361 2

原创 PCSC那事儿(九--SCardEstablishContext)

SCardEstablishContext305 LONG SCardEstablishContext(DWORD dwScope, LPCVOID pvReserved1, 306         LPCVOID pvReserved2, LPSCARDCONTEXT phContext) 307 { 308    

2009-12-25 17:43:00 6436 1

原创 PCSC那事儿(八--SCardEstablishContext)

客户端代码分析前提:至少已经了解linux进程和进程间通讯,线程和线程间通讯。  继续。Everybody,Oh my god.We re back again.... 主要目的是分析PCSC-LITE1.5.5版本的框架和部分代码。首先,看看到底有几行代码.

2009-12-25 17:39:00 5746

原创 PCSC那事儿(七)

 卷5上面说了,很多情况下,得直面ResourceManager。既然如此,就耐心分析分析。 RESOURCEMANAGER ClassRESOURCEMANAGER[6]属性HANDLE hContext 方法RESOURCEMANAGER()~RESOUR

2009-12-21 13:38:00 4950

原创 PCSC那事儿(六)

 卷6 这卷谈到了SP。 直奔编程接口。 SCARD 要满足PCSC2,这是必须实现的接口[4]。定义了支持ICC应用接口的方法。通常,作为ICCSPs或CSP的一部分来实现。 属性HANDLEhContext方法

2009-12-21 13:36:00 4509

原创 PCSC那事儿(五)

 卷1前面说过了,现在的人基本都很忙。没有所谓的闲功夫,从外到内,从下到上了解所有内容。所以这里直接把APPLICATION这位TOP先请出来给大家见见面。下面说说卷1。 问:卷1谈什么?答案是,别着急。卷1 简要介绍上面的金字塔中的各个层次。看看APPLICATION是如何调用(EXPLOIT)它的下层。

2009-12-21 13:30:00 5809 1

原创 PCSC那事儿(四)

 卷7打开卷7。我们一起来,大声点“Lesson seven”… 本部分描述了智能卡应用程序使用PC/SC体系提供的功能的方法。通过使用智能卡资源管理器和智能卡服务提供者所提供的高层函数接口,智能卡应用程序可以做到一定程度的IFD无关性和IC卡无关性。在PC/SC规范规定的体系结构中,接口设备是由接

2009-12-18 09:50:00 6237

原创 PCSC那事儿(三)

 工作组的使命 工作组?上面提到了PC/SC工作组,大佬们组织的。很快,你就想知道,工作组的职责是什么。工作组当然要制定强势规范。要在windows下工作的读卡器都要遵守。制定了什么规范?各有什么用?Hold your horse,让我慢些说。 工作组,当然要做些工作的。这个很好理解。历史上的新撰组,为了维护幕府的利益,也

2009-12-18 09:46:00 5745

原创 PCSC那事儿(二)

历史春花秋月何时了,往事知多少。回顾过去,展望未来。所以我们先了解PCSC的背景。 1996年3月,由Microsoft,IBM,BULL等八家IC卡厂商和PC软硬件厂商发起制定了PC/SC(Interoperability Specification forICCs and Personal Computer Systems)规范。 读懂历史是很必要的。PCSC大有来

2009-12-17 15:51:00 6634

原创 PCSC那事儿(一)

写作背景       由于微软在PC/SC工作组中的领头羊地位,且PC/SC的一个关键组件——资源管理器已经在Microsoft Windows中得到了支持,PC/SC发展非常迅速,市面上出现了一系列的支持PC/SC的智能卡读写器。近年来,自由开放的Linux各种开源代码包括操作系统正在不断地发展并得到了广泛的应用。因为开源PCSC-LITE套件实现了windows下同样的winscard

2009-12-17 15:42:00 12069 7

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除