This commit is contained in:
Roman Hergenreder
2018-12-20 14:52:00 +01:00
parent cd683fdf17
commit 6df7db7cb7
75 changed files with 5302 additions and 156 deletions

75
Day 19/decode.py Normal file
View File

@@ -0,0 +1,75 @@
#!/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

63
Day 19/decode_new.py Normal file
View File

@@ -0,0 +1,63 @@
#!/usr/bin/python
gvar_400 = "217A1F180C53651F" # 8 Bytes
gvar_408 = "3D597206213A4104" # 8 Bytes
gvar_410 = "695676183C433A2B" # 8 Bytes
gvar_418 = "41360D" # 3 Bytes
gvar_41C = "745C00" # 3 Bytes
gvar_420 = "690000000D" # 5 Bytes
gvar_428 = "6E00000038" # 5 Bytes
gvar_430 = "370000006F" # 5 Bytes
gvar_438 = "290000006B" # 5 Bytes
gvar_440 = "3600000008" # 5 Bytes
gvar_448 = "1C00000023" # 5 Bytes
gvar_450 = "6F0000006E" # 5 Bytes
gvar_458 = "2E00000000" # 1 Byte
def memcpy(dest, src, offset, len):
for i in range(len):
dest[offset + i] = src[i]
# r22 = char[32]
# r22[0:7] = gvar_400
# r22[8:15] = gvar_408
# r22[16:23] = gvar_410
# r22[24:27] = gvar_418
# r22[28:31] = gvar_41C
# r33 = char[20]
# r33[0:4] = gvar_420
# r33[5:9] = gvar_428
# r33[10:14] = gvar_430
# r33[15:19] = gvar_438
# r33[8:12] = gvar_440
# r33[10:14] = gvar_448
# r33[12:16] = gvar_450
# r33[14:18] = gvar_458
# r42 = "HV18-TRYH-ARDE-RTRY_HARD_ER!!"
r22 = ["0" for i in range(32)]
r33 = ["0" for i in range(20)]
r42 = "HV18-TRYH-ARDE-RTRY_HARD_ER!!"
input = 0
memcpy(r22, gvar_400, 0, 8)
memcpy(r22, gvar_408, 8, 8)
memcpy(r22, gvar_410, 16, 8)
memcpy(r22, gvar_418, 24, 4)
memcpy(r22, gvar_41C, 28, 4)
memcpy(r33, gvar_400, 0, 5)
memcpy(r33, gvar_428, 5, 5)
memcpy(r33, gvar_430, 10, 5)
memcpy(r33, gvar_438, 15, 5)
memcpy(r33, gvar_440, 8, 5)
memcpy(r33, gvar_448, 10, 5)
memcpy(r33, gvar_450, 12, 5)
memcpy(r33, gvar_458, 14, 5)
r3 = 0
for r43 in range(0, 15):
if

View File

Binary file not shown.

View File

Binary file not shown.

BIN
Day 19/promo.id0 Normal file
View File

Binary file not shown.

BIN
Day 19/promo.id1 Normal file
View File

Binary file not shown.

2488
Day 19/promo.js Normal file
View File

File diff suppressed because it is too large Load Diff

BIN
Day 19/promo.nam Normal file
View File

Binary file not shown.

BIN
Day 19/promo.til Normal file
View File

Binary file not shown.

BIN
Day 19/promo.wasm Normal file
View File

Binary file not shown.

BIN
Day 19/promo_new.wasm Normal file
View File

Binary file not shown.

5
Day 19/test.cpp Normal file
View File

@@ -0,0 +1,5 @@
int main() {
unsigned int i = 10;
unsigned int *par0 = &i;
int r3 = (int)par0;
}