Q:What is Stripe Snoop?
A: Stripe Snoop is a suite of research tools that captures, modifies, validates, generates, analyzes, and shares data from magstripe cards. Numerous readers are supported to gather this information. In addition to simply displaying the raw characters that are encoded on the card, Stripe Snoop has a database of known card formats. It uses this to give you more detailed information about the card.
Q:What is this database you are talking about? Is it mySQL?
A:
Stripe Snoop's database is a much looser meaning of the word. The database is
merely a collection of information about the format of different cards.
For example, an airplane ticket has a magstripe that is encoded according to a
standard (which, incidentally, is not published). The data on the magstripe is
arranged into different fields, with different lengths. Some of these have
prefixes. Stripe Snoop's database holds all these known characteristics about
airline tickets. When you swipe a card, Stripe Snoop can test it to see if
it matches the characteristics of any of the cards in its database. If so,
Stripe Snoop can supply more information about that card, because the database
tells Stripe Snoop what the different fields of the card represent.
Q:Wait, didn't I read an article in [2600 | O'Reilly's Make Magazine] about this?
A:
Why yes, yes you did. I wrote both articles. The 2600 article provides a little
more background
information and theory about magstripes, and is available for free download in
the
developer's documents. The Make article offers a much more detailed
explanation on how to construct the readers, and includes several detailed
color photographs
of the construction process.
Please support both magazines, I do.
Q:What magstripe readers are supported?
A: Stripe Snoop currently supports several types of readers, from powerful homebrew versions, to feature packed commercial grade readers. Readers that connect to the game port, parallel port, and serial port are currently supported. A homebrew USB-based reader is under development. A magstripe reader is not required to use Stripe Snoop!
Q:What operating systems does Stripe Snoop support?
A:
Since Stripe Snoop currently runs on all versions of Windows, Linux, and other
Unix-like operating systems.
However Stripe Snoop is currently limited to the x86 platform with accessing
hardware readers. Stripe Snooop
can be used (And is actually useful) without a hardware reader.
Future versions of Stripe Snoop should support other architectures. Serial
readers can work on other systems,
either directly, or with a USB-to-Serial adapter. Work is currently being done
on adding support for Macs
(OS X or later), Linux/PPC, and Linux/Unix on DEC/Compaq Alphas.
Q:What are the system requirements when using a hardware reader?
A:
If you are using a homebrew magstripe reader that is connected to the game port
or the parallel port, you
will need an x86 system running at 200MHz or faster. On older systems (less
than 600MHz), make sure the
system is not heavily loaded. A Pentium III 450 was unable to run Stripe Snoop
while playing an MP3/OGG
file, or while running SETI@HOME.
As a rule, Windows tends to be more bloated than Linux. I have successfully
used Stripe Snoop with a
game port reader on a 486DX-2 running Slackware Linux.
Q:What about a magstripe writer?
A: Soon my friends soon! Stripe Snoop is evolving into a suite of tools to capture, manage, and analyze card data. bitgen and mod10 make it very easy to modify existing card data, and make sure its valid. Writing it back to a card is the next logical step, and something that I will address soon. Stay tuned!
Q:Why did you release Stripe Snoop under the GPL?
A:
Well, its not because I like Richard Stallman, that's for sure. I don't
believe that all code should be Free Software,and think he is pretty much a
coding communist.
One of the reasons Stripe Snoop was created was the lack of
cheap or quality magstripe software, especially that would run on Linux. I have
worked very hard on Stripe Snoop, and the last thing I want are the very
companies that have expensive, crappy software from using my code and not
contributing code themselves.
In this regard the GPL provides the protections I
want, even if I disagree with most of the creator's politics.
Q:I work for a company. Would you be willing to license part of Stripe Snoop under a non-OSS license?
A:
Stripe Snoop is published under the GPL. Read the GNU General Public License in
detail
to understand exactly what that means if you plan to derive works from Stripe
Snoop.
If you are interested in incorporating some of Stripe Snoop's technology into a
product
and the GPL is not appropriate, non-OSS licenses of Stripe Snoop (in parts of
in whole)
can be purchased. I have licensed Stripe Snoop technology to companies for
inclusion
in commercial products before. Contract work to port all or parts of Stripe
Snoop to
a specific platform for your product is also an option.
Please feel free to Contact me at if you are
interested in
more details regarding contracting or licensing.
Q:How can I contribute to Stripe Snoop?
A:
Stripe Snoop always needs help in several areas!
Q:Do you accept donations? What do you do with any donations?
A:
Running Stripe Snoop is a blast. While I do volunteer my time for free, and
Source Forge supplies free space and bandwidth, Stripe Snoop has some real and
tangible costs.
Readers, wires, chips, parts, long distance phone calls to German Magstripe
manufacturers,
and the like do add up and comes straight out of my pocket.
Thus I have enabled donations for the Stripe Snoop Project. As it says under
the donation
page, I will use any/all donations to buy new equipment for Stripe Snoop and to
fund
research for new interfaces and equipment for Stripe Snoop. Only when these
these areas
are covered will I use *any* donations for personal use.
Please support the future development of Stripe Snoop, so it can support things
like USB readers,
POS keyboards, and even card writers!
You can make donations to Stripe Snoop through SourceForge here.
Q:The donation recipient is listed as "OSDN / VA Software." Is that you?
A:
That is the parent of SourceForge. When donating to Stripe Snoop, you are really donating to
SourceForge, who passes all but a small percentage of the donation on the the Stripe Snoop project.
SourceForge uses the percentage to continue supplying free web space, forums, mailing lists, CVS support,
and bandwidth to the OSS community.
You can learn more about SourceForge's donation system
here.
Q:I don't have a Paypal account. Can I still donate?
A:
I highly encourage everyone who would like to donate to Stripe Snoop to do so through Paypal. This gives
SourceForge a small percentage, which they certainly deserve for providing me web space, forums,
a CVS repository, and globs of bandwidth (which several Slashdottings has I'm sure stressed).
If there is no possible way for you to make a donation through Paypal, you can email me
at to discuss another way. I send part of your donation to SourceForge.
We need to make sure that SourceForge is properly supported for all their excellent service to the OSS
community.
Q:How do I report an unknown card?
A:
This is one of the easiest and more important ways to contribute to the Stripe Snoop project. Chances are
you are exposed to different card with magstripes that I have never even seen!
I have created a card form which will ask various question about the
card and its contents. Please try to answer as many question with the most detail you can provide.
The completed form should be emailed to .
Q:How do I report an unsupported reader?
A: While I am adding support for new readers all the time, it is possible that your reader is not supported. I have created a reader form which will ask various question about the reader. Please try to answer as many question with the most detail you can provide. The completed form should be emailed to .
Q:Where can I learn about how magstripes work?
A: The guide I used, and what is still one of the best magstripe resources is Count Zero's Card-O-Rama: Magnetic Stripe Technology and Beyond. Over 10 years old now, this is the De facto guide for hackers and hobbyists alike. While not actually containing any schematics on how to build your own reader, or interfacing existing reader to a PC, Count Zero covers all aspects of magstripe technology in a fun, easy to understand manner.
Q:What is the difference between "Hi-co" and "Lo-co" readers and cards?
A:
Basically, Hico and Loco are measures of how "strongly attached" the magnetic
particles on the magstripe are. You can think of it as a measure of how strong
of an outside magnetic field is needed to change/erase the magstripe. It is
*NOT* a measure of the magnetic field the card itself has. Hico and Loco cards
give off the exact same magnetic field. This is why readers cannot tell the
difference.
Most cards are Loco. Major credit cards are. This is why store will post things
at the register about leaving your credit card on the Anti-theft pad. Most
anti-theft devices work on magnetic fields, and that pad has a strong enough
field to erase a Loco card. Loco cards are more likely to be erased by mistake,
since the magnetic particles on the magstripe can easily be changed by an
outside force. Hico cards are for hostile environments, with large magnetic and
electrical fields. Think Assembly line, or mission critical government/military
applications where you *have* to have the card work.
Obviously, Loco readers are cheaper than Hico readers. This is because it
requires more "force" to align the magnetic particles on the Hico cards (and
thus why they are harder to erase by an outside force). Because of this, Hico
writers need more complex readers to generate these large fields to write the
card.
Please note while this is a good why to describe Hico and loco cards, I am not
properly using scientific terms like field and force. Checkout Wikipedia for
more info.
Q:Where can I order a TTL Magstripe reader?
A: You can get them on-line pretty easily. Digikey has a nice selection of readers Personally I have 2 readers, both from Omron's V3A Family of readers. I will try and post a larger list of on-line stores later. Until then. I recommend calling Omron and other OEMs and asking them for a list of distributors.
Q:Whats the difference between an Omron V3A amd V3B?
A:
Both the V3A and V3B family of readers are exactly the same physically. The
V3A family is white or cream colored, while the V3B family is black. Sometimes
the V3B family comes with a molex wires connected to all the pins of the
reader. This can be helpful when building a reader, but not needed.
V3B's tend to me more expensive, I guess because people like black.
Q:Why do some Omron reader names end with 'K'?
A: These readers have a cover on them, which hides the maghead and the F2F decoder chip and board. These tend to look more polished and complete. I have never purchased a reader that doesn't have a cover. Readers with covers don't usually cost any more than those without.
Q:Can I use a USB-to-game port adapter with Stripe Snoop?
A: No. The way Stripe Snoop currently accesses the game port hardware cannot access game ports on a USB device. While I am hopeful this can change, I have not figured out a way to read the game port in a way that would allow USB game port device fast enough under Windows for Stripe Snoop to function properly.
Q:Where can I buy a Serial reader?
A: Serial Readers are more expensive, and not as powerful as direct readers They can be bought on eBay for around $60, depending on capabilities.The key thing you want to look for with these readers are things like "No special software needed!" in the product description.
Q:Can I connect a TTL reader to the Serial port?
A: The short answer is no. Serial ports operate in a completely different fashion then parallel ports or game ports. The circuits used to interface a TTL reader to a parallel port or game port would have to be extensively modified to work with a serial port. This is not an area I am looking at right now, but something that I may revisit in the future
Q:Can I use a USB-to-Serial convert with Stripe Snoop
A: Yes you can. While this might require some extra configuration under Linux or Macs, it should work just fine.
Q:Will you support reader XXXX?
A: I will support as many readers as I possibly can. I have created a reader form which will ask various question about the reader. Please try to answer as many question with the most detail you can provide. The completed form should be emailed to .
Q:Where do I get the parts for the various circuits on this web page?
A:
I get my parts from lots of places. While Radioshack is a shell of what it once was (its more
of a glorified cell phone kiosk and battery shack), you can still purchase many of the parts
there. Their wire kit for breadboards is cheap and very useful. They sell DB-25 connectors,
7805 voltage regulators, 9V battery snaps, LEDs, switches, capacitors, and a nifty project box
with built-in circuit board. Sometimes they carry octal/hex buffer chips. They do not sell
the correct DB-15 connectors!. Radioshack sells DB-15HD connectors, where have 3
rows of 5 pins, and are used for VGA monitor connections.
For things like DB-15 connectors, buffer chips, TTL readers, you will need to purchase elsewhere.
I typically use one of the big Internet-based parts companies, like
Jameco, Digikey,
BGMicro, or All Electronics.
Q:What is a buffer chip and why do I need it?
A:
A buffer chip is kind of like a fuse box between your magstripe reader and the parallel port.
If you mis-wire your reader, wire a battery directly to the reader, drop your reader
into a pond while connected or somehow do a Very Bad Thing(tm), the buffer will get
fired and not your parallel port/motherboard/computer. The buffer chip is used with the parallel
port adapter because the adapter is very generic. It makes no assumptions about the type of reader
or device that is connected to it. Thus it needs to protect the computer from this strange device.
A buffer is not used with the El Cheapo parallel port adapter. This is because this adapter is
made specifically for the Omron V3A-4. Since I know the electrical characteristics of this reader,
and I only plan to use the device for the Omron reader, I don't need a buffer the inputs.
Q:What type of buffer chip do I use for the parallel port adapter?
A:
The parallel port adapter is very generic, and will convert all 4 input pins of the game port
into inputs on the parallel port. We only need to a buffer chip that has 4 inputs/outputs. Both
the 74541 Octal Buffer and the 74367 Hex buffer will work. I used an Octal buffer because its what
Jameco had at the time. Sometimes you can find these chips at Radioshack.
Note: Sometimes there will be letters in the chip name, usually between the 74 and the rest.
Parts numbers like 74H541 are common, and these letters don't really matter for our purposes.
Q:What kind of DB-15 connector do I need?
A:
You need to purchase a DB-15M connector if you are building a game port reader. The M
stands for male, which has pins instead of sockets (female). If you are building
a parallel port adapter, you will need a DB-15F connector, which does have sockets. Both DB-15M
and DB-15F have 2 rows of pins/sockets. The top row has 8, the bottom has 7.
Do not purchase a DB-15HD connector! These are for VGA monitors. You cannot purchase
the correct DB-15 connectors at your local Radioshack.
Q:What are the capacitor values needed for the 5V power supply?
A:
The parallel port adapter requires a 5V power supply to power the reader and the buffer chip.
We create this by using a 9V batter and a 7805 voltage regulator. Technically, you do not need
capacitors as shown. However the capacitors stabilize the 5V, making dying batteries work longer,
and allowing voltage picky readers to work.
Since we are dealing with digital instead of analog circuits, the exact value of these capacitors
doesn't really matter. Capacitors on the order of 1uF or 0.1uF should work just fine, though I
imagine larger ones would work as well.
Q:What is "Card Present," and should I use it?
A:
Yes! Card Present (CP) is an output of TTL readers that lets Stripe Snoop know
when a card is actually being
swiped. The original hardware designs for the game port reader didn't use CP,
and all version of Stripe Snoop
currently ignore it.
This was a major mistake. CP allows for much more accurate capturing of data
from direct readers. Stripe
Snoop 2.0 supports readers that have been wired with and without CP. If you are
building a reader, solder support for
CP now!
Q:How do I solder to the small pins on the Omron V3A/V3B readers?
Q:My TTL reader doesn't work! Whats wrong?
A:
It could be several possible problems. The first thing to do is make sure you
constructed the interface as described in the hardware section. Double check
the data sheet for the reader you purchased. Make sure the correct input and
outputs on the card reader, especially the DATA and CLK pins connect to the
proper pins on the game port connector. Make sure there isn't any solder
between
2 contacts, shorting the system. Take a LED and touch it to the pins for 5V and
GND on the game port connector you soldered on. Make sure it lights up when
plugged in (IE you are getting power).
The 2 most common problems are the reader is not being powered, or the wires
from the
TTL reader are not connected to the correct pins on the DB-15.
Q:But my wiring is correct! Whats wrong?
A:
No, it isn't. If you are getting no response from Stripe Snoop (and you have
configured the software properly!), then it
must be a hardware issue. It is common to solder wires from the TTL reader to
speaker or Cat-5 cable. Make sure that the
wires you solder to the TTL reader at one end are not getting crossed and thus
are not soldered to the correct pins at the
DB-15 end!
This is a very common problem! Trace each wire from the TTL reader to the DB-15
connector and make sure it is correct!
Q:Stripe Snoop returns all 1's or all 0's when I swipe in raw mode
A:
This is also a common problem. Most likely the CLK and DATA wires are shorted
together somehow. This means when ever the CLK is high,
the DATA line is high too, so Stripe Snoop reads all 1's (or all 0's if shorted
with GND) when you swipe a card.
Make sure your solder points for CLK and DATA are not touching. Make sure the
metal ends of wires at the DB-15 connector are not touching each other.
Q:Why doesn't Stripe Snoop respond when I swipe a card?
A: Assuming all your hardware is correct, you are trying to read a track that does not exist. If your reader design uses the Card Present line, this should not matter as Stripe Snoop can see that a card with no track was swiped. What happening is Stripe Snoop is just waiting for data that hasn't come yet, and may never come! The development version of Stripe Snoop implements a timeout function, so this will not happen. Until then, go ahead and press CTRL+C to break out of the program.
Q:Why does Stripe Snoop's window close after I swipe a card?
A:
Stripe Snoop is a command line program. When you double click on any command
line program in
any version of Windows, it will spawn a command line window, execute the
program, and close
the window when the program has finished. The window closes and you cannot see
Stripe Snoop's output.
Simply open a command prompt on your own (by selected "command prompt" from the
"Programs" under
the Start Menu, or typing "cmd" ("command" for Windows 95, 98, and ME) in the
"Run" option under
the Start Menu. This will spawn a window for you to run Stripe Snoop in. This
window will not
automatically close when Stripe Snoop exits.
Q:Will Stripe Snoop work on Windows 3.x?
A:
Stripe Snoop works on all versions of Windows from Windows 95 onward. Windows
3.x is a 16-bit operating
and is no longer supported in newer versions of Stripe Snoop. The last version
of Stripe Snoop to support
Windows 3.x and MS-DOS/DR-DOS/FreeDOS is Stripe Snoop 1.2. Its features are
quite primitive.
If you have older hardware running DOS or Windows 3.x, and you want to use the
latest version of Stripe Snoop, you might want to consider using Zipslack.
Q:What is this error about not finding Inpout32.dll?
A: Stripe Snoop cannot find Inpout32.dll, which is needs to access the raw ports under Windows. This is include in the ZIP file. Make sure Inpout32.dll is in the same directory with ss.exe, and that you are running Stripe Snoop from that directory.
A: You selected the wrong project configuration in Visual Studio. Under the "build" menu, there should be a option to "Set Active Configuration..." Under it you can pick a Debug build, or a Release Build. While I am by no means a VC++ expert, these are 2 different ways to build a project, each having different options about what gets linked into the final executable. The Debug option puts a lot of crap in that we don't want, producing an EXE on the order of 200K or so. The Project and Workspace files shipped with Stripe Snoop should have Release already set as the default, which produces a binary much smaller.
Q:Why is Stripe Snoop trying to run a Privileged Instruction?
A: You are trying to run an older version of Stripe Snoop compiled for Windows 95, 98, and ME on a Window NT, 2000, or XP machine. Upgrade to a newer version of Windows where there is only one program for all versions of Windows, or simply download the NT, 2000, and XP version of this older release of Stripe Snoop. What is this error about not finding Inpout32.dll?
Q:You want me to run this as root? Are you nuts?
A: Stripe Snoop only needs to be run as root if you have a hardware reader attached to it they you capture on. In fact, all testing and development of Stripe Snoop is currently done on a Linux system using Input mode, bitgen and mod10. Only if you need to use a reader (IE direct I/O) does the program need to be run as root, or with setuid to root.
Q:Why isn't the game port working?
A:
I am not a Linux guru by any measure, but I have gotten Stripe Snoop to work on
3 different Linux Systems
The first systems was a 486DX2-66 no sound card and a game port built into the
motherboard. Nothing appeared in
/proc/ioports about it. It just worked.
The second system was a dual Pentium MMX 200 system, with a ISA Creative lab
Awe64. Sndconfig got the sound card working,
but didn't activate the game port. You need to make sure that the modules for
the sound card and the game port are being loaded.
Check using lsmod
The final system had a Sound Blaster Live Value! These does not use the
standard 0x201 address for the game port. I used lspci to
learn what I/O addresses the game port used. Use the -P option with Stripe
Snoop 1.6 to access readers on ports other than 0x201.