Hackvent_2018/Day 19/decode.py
Roman Hergenreder 6df7db7cb7 Whatver
2018-12-20 14:52:00 +01:00

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