THC-Shagg 0.2.0 review
DownloadTHC-Shagg is a modular application to bruteforce check digit algorithms
|
|
THC-Shagg is a modular application to bruteforce check digit algorithms. THC-Shagg project can be used to gain information about serial numbers that use check digit algorithms.
Once THC-Shagg has analysed a set of serial numbers and found matching check digit algorithms, it is able to generate complete new serial numbers using a saved file containg the matched states.
This page demonstrates the use of THC-Shagg in "daily" life and lists some serial numbers, that have been successfully analysed using Shagg.
Development & Contributions
You've found some serial numbers and were able to analyse the check digit algorithms using Shagg. You've some new ideas, you know something about fresh or still un-implemented check digit algorithms. Contribute! And help us making THC Shagg more powerful. Feel free to drop an email to Plasmoid, plasmoid@thc.org.
If you are interested in joining THC, why not write some new classes for THC-Shagg or extend the current version to analyse Web session IDs or other serial numbers? The documented programming API to all classes and interfaces is available online. The source code for THC-Shagg is bundled with the current release, so that you can compile it yourself, if you want to.
How it works:
A check digit algorithm uses the digits of a serial number to construct a check digit, it is not necessary that the digits are numeric values, they can be extended to alpha-numeric values. THC-Shagg currently implements the following algorithms:
Full name Internal name
-------------------------------- ----------------
binary Modulus 7 DR Modulus 7
binary Modulus 9 DR Modulus 9
weighted Modulus 10 DR Modulus 10 Basic
weighted Modulus 10 Luhn Modulus 10 Luhn
weighted Modulus 10 IBM Modulus 10 CC
weighted Modulus 11 DSR Modulus 11
Future releases will implement more algorithms. To get a list of all available algorithms use the -A. For simplicity this version mixes binary and weighted algorithms, DR and DSR algorithms, future version of THC-Shagg may include separate options for binary, weighted, DR and DSR algorithms. As this is the first release, only the most common algorithms have been implemented.
For details on the concept of each algorithms consult the source code of THC-Shagg or browse the web, there are some good information covering these algorithms.
Most of the algorithms above operate using so called weights. Weights are just a sequence of numbers that are multiplied with the individual digits of the serial number to be checked. THC-Shagg generates all weights up to a specified length and checks the serial numbers against all of these weight using all algorithms.
Example: All weights up to length 3
1,2,3,4,5,6,7,8,9,
01,02,03,04,05,06,07,08,09,10,...99
001,002,003,004,005,006,007,...999
THC-Shagg ignores all weights that only consist of zeros because they result in fault-positives and are not used in check digit algorithms.
In order to find the position of a check digit, THC-Shagg splits the serial numbers into partitions. A partition has a head and a tail, these parts are ignored during analysis of the serial numbers. THC-Shagg generates all partitions up to a specified minimum length where length is the length of the part to be analyzed. The programs checks the serial number against these partitions using weights and algorithms.
THC-Shagg 0.2.0 keywords