63c4ee1a33c5d43ab4ecf49a
This commit is contained in:
parent
7e44f7db9b
commit
e127de4587
59
skibur-just-in-time/skibur-just-in-time.py
Executable file
59
skibur-just-in-time/skibur-just-in-time.py
Executable file
@ -0,0 +1,59 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
# Link: https://crackmes.one/crackme/63c4ee1a33c5d43ab4ecf49a
|
||||
|
||||
# Conditions that must be fulfilled for the key to be valid:
|
||||
# key[0] == '%'
|
||||
# key[1] << t == 200
|
||||
# key[2] << t == 212
|
||||
# key[3] == 'k'
|
||||
# key[4] << t == 80
|
||||
# key[5] & 1073741823 == 57
|
||||
# key[6] == '^'
|
||||
# key[7] << t == 246
|
||||
# key[8] & 1073741823 == 46
|
||||
# key[9] == 'f'
|
||||
# key[10] << t == 128
|
||||
# key[11] & 1073741823 == 49
|
||||
# key[12] == 'F'
|
||||
# key[13] << t == 104
|
||||
# (t = (localtime() % 10) % 3) => t either 0, 1, or 2
|
||||
|
||||
# After these conditions are met the printable string (either "Incorrect password." or
|
||||
# "Correct password. Congratulation!") is decoded by shifting each of the string's
|
||||
# character's value to the right by one and subtracting 5 from that.
|
||||
|
||||
|
||||
from string import ascii_letters, digits, punctuation
|
||||
import itertools
|
||||
|
||||
key = ["%", "", "", "k", "", "", "^", "", "", "f", "", "", "F", ""]
|
||||
|
||||
for c in itertools.chain(*[ascii_letters, digits, punctuation]):
|
||||
shift = ord(c) << 1
|
||||
|
||||
match shift:
|
||||
case 200:
|
||||
key[1] = c
|
||||
case 212:
|
||||
key[2] = c
|
||||
case 80:
|
||||
key[4] = c
|
||||
case 246:
|
||||
key[7] = c
|
||||
case 128:
|
||||
key[10] = c
|
||||
case 104:
|
||||
key[13] = c
|
||||
|
||||
band = ord(c) & 0x3FFFFFFF
|
||||
|
||||
match band:
|
||||
case 57:
|
||||
key[5] = c
|
||||
case 46:
|
||||
key[8] = c
|
||||
case 49:
|
||||
key[11] = c
|
||||
|
||||
print(f"{''.join(key)}")
|
Loading…
Reference in New Issue
Block a user