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?
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?
Why yes, yes you did. I wrote both articles. The 2600 article provides a little
information and theory about magstripes, and is available for free download in
developer's documents. The Make article offers a much more detailed
explanation on how to construct the readers, and includes several detailed
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?
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?
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?
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
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?
Stripe Snoop is published under the GPL. Read the GNU General Public License in
to understand exactly what that means if you plan to derive works from Stripe
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?
Stripe Snoop always needs help in several areas!
Q:Do you accept donations? What do you do with any donations?
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
Readers, wires, chips, parts, long distance phone calls to German Magstripe
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
page, I will use any/all donations to buy new equipment for Stripe Snoop and to
research for new interfaces and equipment for Stripe Snoop. Only when these
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?
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?
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?
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?
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
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?
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?
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 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?
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?
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?
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?
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?
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
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?
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
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
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?
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?
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
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?
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.