Skip to content

Instantly share code, notes, and snippets.

@secrary
Created August 21, 2017 12:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save secrary/2a3dfac9fcfb4ae45985f818734b4958 to your computer and use it in GitHub Desktop.
Save secrary/2a3dfac9fcfb4ae45985f818734b4958 to your computer and use it in GitHub Desktop.
def get_serial_number(enc2):
serial__number = [0 for n in range(0x400)]
i = 0
j = 0
done_1 = False
done_2 = False
done_3 = False
while j < len(enc2):
if done_1 or done_2 or done_3:
break
for a in my_base64chars:
if done_2:
break
if done_1:
break
for b in my_base64chars:
if done_2:
done_1 = True
break
if enc2[j] == ((my_base64chars.find(a) << 2) & 0xFF) | ((my_base64chars.find(b) >> 4) & 0xFF):
serial__number[i] = a
if j + 1 >= len(enc2):
serial__number[i + 1] = b
done_1 = True
break
for c in my_base64chars:
if enc2[j + 1] == ((my_base64chars.find(b) << 4) & 0xF0) | (
(my_base64chars.find(c) >> 2) & 0xFF):
serial__number[i + 1] = b
if j + 2 >= len(enc2):
serial__number[i + 2] = c
done_2 = True
break
for d in my_base64chars:
if enc2[j + 2] == ((my_base64chars.find(c) << 6) & 0xC0) | (
my_base64chars.find(d) & 0xFF):
serial__number[i + 2] = c
serial__number[i + 3] = d
i += 4
j += 3
return bytearray(serial__number).strip(b'\x00').decode()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment