Wrote this as I was using APDUView utility quite a lot, but it's sometimes complicated to set up. This tool uses AppInit_Dlls functionality to achieve the same with more ease. It hooks
winscard!SCardTransmit and logs both sent and received data to a log file.
Log file is located in the same directory as the
SmartcardSniffer.dll, and has
a name of the application that is talking to the smart card.
Precompiled binaries (current version) for x86 and x86_64 available here.
It's using MHook lib to do it's hooking business.
To install the dll, just add it's path to:
- for 32 bit DLL on 32 bit systems:
- for 64 bit DLL on 64 bit system:
- for 32 bit DLL on 64 bit system (for hooking 32 bit applications on 64 bit systems):
Multiple entries are separated by space and/or
,. Make sure you path to the DLL doesn't have any spaces in it.
Note that on Windows Vista and later, you'd also need to set
RequireSignedAppInit_DLLs key to 0
to be able to load unsigned DLLs and make sure
LoadAppInit_DLLs is set to 1.
To uninstall it, simply remove the DLL entry from AppInit_DLLs list.
In the log file
>>> specifies the data to be sent, and
<<< received data.
Here's the example of the logged data:
>>> 00:A4:04:00:0B:A0:00:00:03:97:43:49:44:5F:01:00 <<< 6A:82 Winscard!SCardTransmit: >>> 00:CA:7F:68:00 <<< 7F:60:1F:83:A1:21:06:06:60:81:4B:01:65:03:A1:14:81:01:08:82:11:08:87:02:00:1A:88:02:08:04:B1:04:B1:02:14:3C:90:00 Winscard!SCardTransmit: >>> 00:A4:04:00:09:A0:00:00:03:08:00:00:10:00 <<< 6A:82