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):