Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from math import floor, ceil, log, exp
- from string import digits, ascii_letters
- from sys import stdout
- dxdiag = [2526304,442413,77476,6455302,4318205,1063,1932310,338391,34669,6455302,2209435,6942,929,4318205,338391,1292598,4937507,338391,5645626,1130470,929,338391,505862,756216,67758,5645626,338391,4937507,5645626,59260,1292598,34669,988677,338391,578411,1130470,929,578411,1689944,10377,4318205,338391,756216,7381098,10377,4318205]
- charsets = digits + ascii_letters + '_'
- def get_const(val, start):
- counter = 1.0
- divisor = 1.0 + start
- while True:
- result = floor(exp(counter * 13 / divisor))
- if result == val:
- return (chr(int(counter)), divisor)
- elif result > val:
- divisor += 1
- counter = 1.0
- counter += 1
- def transform_char(val, konst):
- return chr(int(ceil(log(val * 1.0) * konst / 13)))
- def main():
- konst = 0
- iter = 1
- result_arr = []
- while True:
- result_arr = []
- char, konst = get_const(dxdiag[0], konst)
- print("Iteration %d: Using const %d" % (iter, konst))
- if char in charsets:
- result_arr = map(lambda x: transform_char(x, konst), dxdiag)
- print result_arr
- result_arr = filter(lambda c: c in charsets, result_arr)
- if len(result_arr) == len(dxdiag):
- flag = ''.join(result_arr)
- print("Flag is: %s" % (flag))
- break
- iter += 1
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement