Whatver
This commit is contained in:
75
Day 19/decode.py
Normal file
75
Day 19/decode.py
Normal 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
63
Day 19/decode_new.py
Normal 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
|
||||
BIN
Day 19/ida-20181219-110218-51.dmp
Normal file
BIN
Day 19/ida-20181219-110218-51.dmp
Normal file
Binary file not shown.
BIN
Day 19/ida-20181219-112445-57.dmp
Normal file
BIN
Day 19/ida-20181219-112445-57.dmp
Normal file
Binary file not shown.
BIN
Day 19/promo.id0
Normal file
BIN
Day 19/promo.id0
Normal file
Binary file not shown.
BIN
Day 19/promo.id1
Normal file
BIN
Day 19/promo.id1
Normal file
Binary file not shown.
2488
Day 19/promo.js
Normal file
2488
Day 19/promo.js
Normal file
File diff suppressed because it is too large
Load Diff
BIN
Day 19/promo.nam
Normal file
BIN
Day 19/promo.nam
Normal file
Binary file not shown.
BIN
Day 19/promo.til
Normal file
BIN
Day 19/promo.til
Normal file
Binary file not shown.
BIN
Day 19/promo.wasm
Normal file
BIN
Day 19/promo.wasm
Normal file
Binary file not shown.
BIN
Day 19/promo_new.wasm
Normal file
BIN
Day 19/promo_new.wasm
Normal file
Binary file not shown.
5
Day 19/test.cpp
Normal file
5
Day 19/test.cpp
Normal file
@@ -0,0 +1,5 @@
|
||||
int main() {
|
||||
unsigned int i = 10;
|
||||
unsigned int *par0 = &i;
|
||||
int r3 = (int)par0;
|
||||
}
|
||||
Reference in New Issue
Block a user