PCSC-SPY
Section: PC/SC lite (1)
Updated: 2018-10-15
Page Index
NAME
pcsc-spy - A PC/SC spy command
SYNOPSIS
pcsc-spy [
-n|
--nocolor] [
-d|
--diffable] [
-h|
--help]
[
fifo_filename]
DESCRIPTION
pcsc-spy displays
PC/SC calls of an application. It must be used with
the
libpcscspy.so library.
To be able to spy the PC/SC layer, the application flow must be
modified so that all PC/SC calls are redirected. Two options are
available:
- - the application is linked with libpcsclite.so.1
-
- - the application loads the libpcsclite.so.1 library using dlopen(3)
-
OPTIONS
- -d, --diffable
-
Remove the variable parts (like handler values) from the output so that
two execution can be more easily compared.
- -h, --help
-
Display a short help text.
- -n, --nocolor
-
Disable the output colorization (if you want redirect the output in a
file for example).
- -v, --version
-
Print the version of the pcsc-spy program plus a copyright, a list of
authors.
EXAMPLES
Applications linked with libpcsclite.so.1
We will use the standard
"LD_PRELOAD" loader option to load our spying
library.
Example:
LD_PRELOAD=/usr/lib/libpcscspy.so pcsc_scan
Application loading libpcsclite.so.1
This is the case for the
PC/SC wrappers like pyscard (for Python) and
pcsc-perl (for Perl). The
LD_PRELOAD mechanism can't be used. Instead
we replace the
libpcsclite.so.1 library by the spying one.
You may use install_spy.sh and uninstall_spy.sh to install and
uninstall the spying library.
Using the spying library without pcsc-spy is not a problem but has
side effects:
- a line ``libpcsclite_nospy.so.1: cannot open shared object file:
No such file or directory'' will be displayed
- some CPU time will be lost because of the PC/SC calls redirection
Starting the spy tool
pcsc-spy
If a command argument is passed we use it instead of the default
~/pcsc-spy FIFO file. It is then possible to record an execution log
and use pcsc-spy multiple times on the same log.
To create the log file just do:
mkfifo ~/pcsc-spy
cat ~/pcsc-spy > logfile
and run your PC/SC application.
Mac OS X
The installation is not automatic. In the pcsc-lite/src/spy directory do:
make framework
Then copy the PCSC.framework directory in /tmp
cp -a PCSC.framework /tmp
Copy the official PCSC.framework (binary only) in /tmp
cp /System/Library/Frameworks/PCSC.framework/PCSC /tmp
Run the application to debug as:
DYLD_FRAMEWORK_PATH=/tmp pcsctest
FILES
~/pcsc-spy FIFO file is used by
libpcsclite.so.1 to send the raw
log lines
SEE ALSO
pcscd(8)
AUTHOR
This manual page was written by Ludovic Rousseau <
rousseau@free.fr>