Stripe Snoop – Decoding the Magnet Strips (Source Code Included)

I wrote a program after all. After looking through a couple of cards, I realized that it might take forever to decode them by hand. I spent a few hours writing four programs in C++. I’ve only tried these in Windows, but I’m sure that they can also be compiled nicely in Linux.

I am going to try my best to explain this. You’ll need to download the zipped files here–>StripeSnoopDecoder.zip

I used Dev-C++ to compile mine. Either that for Windows (or any other compiler) or g++ (or the like) for Linux.

I keep my Omron reader head in the top position (track 3). Most cards that I have do not use track three, so I must use a shim to get to track one. The shim is about 0.265″.  To read track two I use a 0.135″ shim. Track three just slides through as normal. You also need to make sure that you slide your card through the reader in the correct direction. My program will not work backwards.

  • Step 1: Swipe the card using Stripe Snoop’s raw mode. Now look for the first ’1′. If the first 5 bits are ’11010′, use the 5-bit ascii file folder. (Most of my first tracks were five bits, but if you have ’1010001′ you’ll need to use the 7-bit ascii file folder.) Most of the cards that I have swiped used odd-parity ascii with either five or seven bits. Five bits are usually used for numbers only while seven bits contain messages. With a little practice you’ll be able to figure out which one it is, and you’ll also be able to use this to know if your data is legit.
    Stripe Snoop screen shot (simulated of course) 
  • Step 2: Copy the bit stream from the terminal and paste it into the “raw.txt” file in the folder that corresponds to the ascii type. Save the file and then close it.
    Pasting raw data into raw.txt and making sure it is one continuous stream 
  • Step 3: Double click the “spacedelimit” program. You probably will not see anything happen. It all happens behind the scenes. The delimit program finds the first ’1′ and then inserts spaces to separate each ascii character.
    Double click the space delimiter program 
  • Step 4: Open either “raw5.txt” or “raw7.txt” depending on which program you are using. Be sure that you have odd parity (an odd number of  ’1′s). If you do, then you have done well on the first steps. If not, try it in the other program file or return to step 1 and verify that the bit stream is good. If you feel that the raw, delimited data is good, proceed to step 5.
    Check to make sure this file is good
  • Step 5: Double click the “stripedecode” program in that folder. Nothing should happen. You might see a black screen flash. Everything happens behind the scenes. After the program executes, the decoded data should be saved in a file named either “decoded5.txt” or “decoded7.txt” depending on which folder you used.
    Double click the decoding program
  • Step 6: Open your “decoded” text file. You should see single characters separated by spaces. You’ll probably recognize the information that you see. If you don’t think that it worked, start back at step 1.
    This is how my example should look once decoded 
Be sure not to change the “searchterms” file. Do check it to be sure that there is only one character set per line. If it isn’t correct, open it with “wordpad” and save it. That should fix it. Linux shouldn’t have any problems.
This is how searchterms#.txt should look
While I wrote the program, I don’t know how well I explained it. If you run into issues please email me, and I’ll try to make this page explain it better. My email should be at the bottom of most pages. I had to disable comments because of spam.
I would also like to put some more screen shots on here, but I need to find some cards with no personal data on them. My birthday is coming up. Maybe I’ll get some Wal-Mart gift cards!

Amex Gift Card – text files
Track one – Raw data -> AmexGiftCardTrack1raw.txt

Track two – Raw data -> AmexGiftCardTrack2raw.txt

This entry was posted in Electronics, Programming and tagged , by robbie. Bookmark the permalink.

About robbie

I am an electronics enthusiest and a ham radio operator (W1RCP). I like to play with electronics. It's fun and educational. I looked forward to working in the engineering field in the future. I have a BS in Electronics Engineering Technology from DeVry University. I also have an Associate's degree in Marketing Management from Moultrie Tech, and a diploma in Electronics from MTC.

Comments are closed.