This project involves developing a kernel driver application to monitor the keystrokes typed on a PC (in any application) and apply decision rules to the key sequences for output to another program.
The general requirements are:
- Works on any Windows XP, Vista or Windows 7 machine
- Works with anti-virus/anti-spyware software installed (assume user or administrator will configure anti-virus/spyware software as needed)
- Captures identification information from PC (username, MAC address, or IP address)
- Collects keystrokes for processing according to specified rules (defined below)
- Processes keystrokes collected based on these rules
- Passes information to another program or device based on events that are derived from the rules
- Does not store the keystrokes typed except under specified rules
The program will keep track of up to 20 "monitoring threads" of key strokes, focused primarily on number keys. Each thread will start with one of 4 specific numbers and monitor up to the next 19 keys to see if the numbers fit a specific pattern. The keystrokes will be adjusted for corrections (for example, a backspace) so that the numbers being matched to the pattern are the keys the user intends to type. (For example, "34[backspace]56" = "356".
The threads will overlap. So, for example, if the numbers that start a thread are 1, 2 or 3, the following string contains 4 threads:
1435462564176887645 (the 1, 3, 2 and 1 each start a new thread).
These threads will be monitored until one of several conditions are reached:
1) the number count reaches 20
2) there are two or more alpha characters ("a", "b", "C", etc.) typed
3) a time duration is reached (for example, 30 seconds since the start of that thread)
4) the pattern is matched (Luhn algorithm - [url removed, login to view])
When the pattern is matched, the program sends the identity of the PC along with the time of the pattern matching and the values that match to another program.
Deliverables include the source code. Preferred languages are C and C++. You are welcome to use an open source key logger to start with as long as you identify the source so we can verify the license requirements.
The description above has some small details changed for security purposes. The actual details of the project will be provided once the project is awarded.
Once completed the code will also be modified to include other number patterns. The developer should structure the code to accommodate this and may be selected to adapt the program for this purpose in another project.
We will require an NDA as a condition of being awarded this bid.
Project is listed as "small project" so you can bid as low as you like, but bid what you think it will require.
9 freelancers are bidding on average $1783 for this job
You are basically asking us to write you a virus, which is not an easy task as it can be detected and reported to Kaspersky Labs. Nonetheless it can be done.