def calibrate(self):
"""Detect keylogger file lines format.
"""
term_settings = termios.tcgetattr(sys.stdin)
tty.setraw(sys.stdin)
with open(self.filepath, 'r') as keylog:
keylog.seek(0, 2)
print(config.TERM.clear + '[1/3] Press <Enter>', end='')
sys.stdin.read(1)
print(config.TERM.clear + '[2/3] Press <Ctrl>+R', end='')
sys.stdin.read(1)
termios.tcsetattr(sys.stdin, termios.TCSADRAIN, term_settings)
print(config.TERM.clear + '[3/3] Calibration done')
time.sleep(2)
line = keylog.readlines()[-1].upper()
pattern = r'(<(%s)>)R' % '|'.join(MODIFIERS)
try:
config.CONFIG['chars_skip'] = re.search(pattern, line).start()
except AttributeError:
logger.error('Cannot detect key logger line format. ' +
"Check '%s' content." % self.filepath)
exit(1)
pattern = r'(<(%s)>)R<\2>' % '|'.join(MODIFIERS)
config.CONFIG['format_closing'] = re.search(pattern, line) is not None
config.save()
评论列表
文章目录