76 lines
1.9 KiB
Python
76 lines
1.9 KiB
Python
#!/usr/bin/python
|
|
|
|
# document
|
|
# .querySelector('.validate')
|
|
# .addEventListener(
|
|
# 'click',
|
|
# function() {
|
|
# var promoCode = document
|
|
# .getElementById('promoCode').value;
|
|
# var strptr = Module._malloc(promoCode.length + 2);
|
|
# Module.writeAsciiToMemory(promoCode, strptr, false);
|
|
#
|
|
# var retstrptr = Module.ccall('checkPromoCode',
|
|
# 'number', [ 'number' ], [ strptr ]);
|
|
#
|
|
# var retstr = Pointer_stringify(retstrptr);
|
|
# document.getElementById("flag").innerHTML = "<h2>Your flag is</h2><p>"
|
|
# + retstr + "</p>";
|
|
# });
|
|
#
|
|
|
|
# var promoCode = document.getElementById('promoCode').value;
|
|
# var retstrptr = Module.ccall('checkPromoCode', 'number', [ 'number' ], [ strptr ]);
|
|
# var retstr = Pointer_stringify(retstrptr);
|
|
|
|
# promoCode = ""
|
|
# strptr = [0 for i in range(len(promoCode) + 2)]
|
|
# retstr = hex(strptr)
|
|
#
|
|
#
|
|
# if strptr & 3 == 0:
|
|
# r2 = trptr
|
|
# else
|
|
|
|
def ascii(h):
|
|
return ''.join([chr(int(h[i:i+2], 16)) for i in range(0,len(h),2)])
|
|
|
|
# def f32(ptr):
|
|
|
|
|
|
|
|
gvar_400 = 'F0BC51F36874F2C1' # 8 Bytes
|
|
gvar_408 = 'E357D1A08AAB8700' # 8 Bytes
|
|
gvar_410 = '2FEB8572F31271DE' # 8 Bytes
|
|
gvar_418 = 'ABABA787' # 6 Bytes
|
|
gvar_41C = '74FF' # 2 Bytes
|
|
|
|
gvars = [gvar_400, gvar_408, gvar_410, gvar_418, gvar_41C]
|
|
r11 = ''.join(gvars)
|
|
r11 = [int(r11[i:i+2], 16) for i in range(0, len(r11), 2)] # 30 Bytes
|
|
r22 = [0 for i in range(15)] # 15 Bytes
|
|
r33 = "HV18-TRYH-ARDE-RTRY_HARD_ER!!"
|
|
|
|
input = [0 for i in range(15)] # ???
|
|
r44 = 0
|
|
r55 = 165
|
|
|
|
for r59 in range(15):
|
|
r60 = input[r59] * r55 + 1337
|
|
r44 = input[r59] + r44 + r60
|
|
r61 = r60 % 255
|
|
r22[r59] = r61
|
|
r55 = r61
|
|
|
|
print(r44)
|
|
|
|
result = []
|
|
for i in range(30):
|
|
var142 = r11[i]
|
|
var153 = r22[i%15]
|
|
result.append(chr(var142 ^ var153))
|
|
|
|
print(''.join(result))
|
|
|
|
# F0 ^ r55 = 48
|