import hashlib
MASK32 = 0xFFFFFFFF
MASK64 = 0xFFFFFFFFFFFFFFFF
INITIAL_STATE = 0xC0FFEE1234ABCDEF
ALPHABET = "ABCDEFGHJKLMNPQRSTUVWXYZ23456789"
def rotl32(value, shift):
shift %= 32
return ((value << shift) | (value >> (32 - shift))) & MASK32
def rotl64(value, shift):
shift %= 64
return ((value << shift) | (value >> (64 - shift))) & MASK64
def generated_mix(value):
result = value
for i in range(40):
result ^= (i * 1234567) & MASK32
result = rotl32(result, i % 11)
result = (result * 5 + 17) & MASK32
return result
def mix_input_byte(value):
result = value
for _ in range(120):
result = ((result * 7 + 3) ^ (result >> 1))
return result
def mix_low_byte(value):
result = value
for i in range(80):
result ^= i * 99991
result = rotl32(result, 3)
return result
def mix_low_word(value):
result = value
for i in range(100):
result ^= i * 17
result = (result * 13 + 19) & MASK32
return result
def compute_digest(username):
state = INITIAL_STATE
for index, byte in enumerate(username.encode()):
state ^= byte << (index % 13)
state = (state * 25214903917 + 11) & MASK64
state = rotl64(state, 11)
state ^= mix_input_byte(byte)
state &= MASK64
state ^= mix_low_byte(state & 0xFF)
state &= MASK64
state ^= mix_low_word(state & 0xFFFF)
state &= MASK64
# The original payload dynamically generated 60 functions with the same
# body. The first 10 were called here with the same byte input, so their
# XOR effect cancels out completely.
message = username[::-1].encode() + state.to_bytes(8, "little")
return hashlib.sha256(message).digest()
def encode_key(digest):
output = []
for index in range(16):
value = digest[index] ^ digest[index + 16]
value = ((value << 5) | (value >> 3)) & 0xFF
value ^= index * 17
value = (value * 3) & 0xFF
value ^= value >> 2
for _ in range(10):
value ^= generated_mix(value) & 0xFF
output.append(ALPHABET[value % len(ALPHABET)])
return "".join(output)
def generate_key(username):
return encode_key(compute_digest(username))
def dummy_delay():
total = 0
for i in range(300):
for j in range(5):
total ^= i * j + 123
return total
def main():
username = input("username: ")
key = input("key: ")
dummy_delay()
if key == generate_key(username):
print("workkkkk")
return
print("nope nope nope")
if __name__ == "__main__":
main()