diff --git a/README.md b/README.md index eb497cb..ba5f11b 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,8 @@ **Extras** - Program Blacklist: If there are specific programs you neve use (cmd, powershell). Consider interactions with them as highly suspecious and take action based on the protection policy. - + - Support for AutoType software (eg. KeePass, LastPass, Breevy) +

Setup

**Regular users**: - Choose and download one of the two options that best suits you: @@ -33,6 +34,7 @@ **Advanced Users** - Keep Reading... + - Feel Free to contact me, add issues, fork, and get involved with this project :). Together we can make a stronger tool!

Requirements

diff --git a/duckhunt.conf b/duckhunt.conf index d08c0fb..a56d870 100644 --- a/duckhunt.conf +++ b/duckhunt.conf @@ -19,4 +19,5 @@ blacklist = "Command Prompt, Windows PowerShell" # List of Blacklisted Progr threshold = 30 # Speed Threshold between keystrokes in Milliseconds (Default: ~30 Miliseconds) | Anything faster than this is suspicious. size = 25 # Size of array that holds the history of keystroke speeds (Default: 25 Keystokes) randdrop = 6 # How often should one drop a letter in Sneaky mode (Default: 6) -filename = "log.txt" # Log Filename \ No newline at end of file +filename = "log.txt" # Log Filename +allow_auto_type_software = True #Doesn't block software such as KeyPass or LastPass which inject keystrokes through software. (Default: True) \ No newline at end of file diff --git a/duckhunt.py b/duckhunt.py index 357e13c..9b180ef 100644 --- a/duckhunt.py +++ b/duckhunt.py @@ -39,6 +39,7 @@ size = duckhunt.size # Size of history array policy = duckhunt.policy.lower() # Designate Policy Type password = duckhunt.password # Password used in Paranoid Mode +allow_auto_type_software = duckhunt.allow_auto_type_software #Allow AutoType Software (eg. KeyPass or LastPass) ################################################################################ pcounter = 0 # Password Counter (If using password) speed = 0 # Current Average Keystroke Speed @@ -74,6 +75,7 @@ def caught(event): print "Quack! Quack! -- Time to go Duckhunting!" intrusion = True; + #Paranoid Policy if (policy == "paranoid"): win32ui.MessageBox("Someone might be trying to inject keystrokes into your computer.\nPlease check your ports or any strange programs running.\nEnter your Password to unlock keyboard.", "KeyInjection Detected",4096) # MB_SYSTEMMODAL = 4096 -- Always on top. @@ -106,8 +108,14 @@ def KeyStroke(event): global speed, prevTime, i, history, intrusion,blacklist print event.Key; - - + print event.Message; + print "Injected",event.Injected; + + if (event.Injected != 0 and allow_auto_type_software): + print "Injected by Software" + return True; + + #If an intrusion was detected and we are password protecting #Then lockdown any keystroke and until password is entered if (policy == "paranoid" and intrusion):