-
Notifications
You must be signed in to change notification settings - Fork 96
Open
Labels
@ThinerDAS
Description
Original author of the CTF challenge is believed to be @hzqmwne
def sat(x: str): """0CTF 2021 lalamblambdadambda pseudo code, all rights belong to original author of challenge""" buf = bytes.fromhex(s[:16]) S0 = [] for i in range(8): for j in range(8): S0.append(((lambda b:lambda a:a),(lambda b:lambda a:b))[1&(buf[i]>>j)]) S1 = [True,False] f1 = (lambda c:lambda b:lambda a:c(b)(a)) f5 = (lambda c:lambda b:lambda a:f1(a)(c)(b)) f6 = (lambda b:lambda a:f5(b)(a)) f7 = (lambda d:lambda c:lambda b:lambda a:f5(f5(d)(c))(f5(b)(a))) f8 = (lambda d:lambda c:lambda b:lambda a:f5(f6(d)(c))(f6(b)(a))) f9 = (lambda h:lambda g:lambda f:lambda e:lambda d:lambda c:lambda b:lambda a:f5(f8(h)(g)(f)(e))(f8(d)(c)(b)(a))) f12 = (lambda b:lambda a:a) f13 = (lambda a:f12) f15 = f5(f5(f5(f5(f5(f12)(f12))(f5(f12)(f12)))(f5(f5(f12)(f12))(f5(f12)(f12))))(f5(f5(f5(f12)(f12))(f5(f12)(f12)))(f5(f5(f12)(f12))(f5(f12)(f12)))))(f5(f5(f5(f5(f12)(f12))(f5(f12)(f12)))(f5(f5(f12)(f12))(f5(f12)(f12))))(f5(f5(f5(f12)(f12))(f5(f12)(f12)))(f5(f5(f12)(f12))(f5(f12)(f12))))) f16 = f5(f15) f28 = ( (lambda b:lambda a: b ( b ( b ( b ( b ( b ( b ( b ( b ( b ( b ( b ( b ( b ( b ( b ( b ( b ( b ( b ( b ( b ( b ( b ( b ( b ( b(b(b(b(b(b(a)))))) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) f30 = (lambda b:lambda a:b(a)(b)) f33 = (lambda b:lambda a:b(b)(a)) f41 = (lambda b:lambda a:b) f42 = (lambda a:a) f43 = (lambda c:(lambda a:c(a(a)))((lambda b:c((lambda a:b(b)(a)))))) f2 = (lambda e:lambda d:lambda c:e((lambda b:lambda a:a(b(d))))((lambda a:c))(f42)) f3 = (lambda a:a(f13)(f41)) f10 = (lambda a:a(f12)) f11 = (lambda a:a(f41)) f17 = f7(f9(f12)(f12)(f41)(f41)(f12)(f12)(f12)(f12))(f9(f12)(f41)(f41)(f12)(f41)(f41)(f41)(f12))(f9(f12)(f12)(f41)(f41)(f12)(f41)(f12)(f41))(f9(f41)(f12)(f12)(f41)(f12)(f12)(f12)(f41)) f18 = f7(f9(f12)(f41)(f41)(f12)(f12)(f12)(f12)(f41))(f9(f41)(f12)(f41)(f12)(f12)(f12)(f12)(f41))(f9(f12)(f12)(f41)(f12)(f12)(f41)(f41)(f12))(f9(f12)(f41)(f41)(f41)(f41)(f41)(f41)(f41)) f19 = f7(f9(f41)(f12)(f12)(f12)(f12)(f41)(f41)(f12))(f9(f41)(f41)(f41)(f41)(f12)(f12)(f41)(f12))(f9(f41)(f41)(f12)(f12)(f41)(f41)(f12)(f41))(f9(f12)(f41)(f41)(f12)(f12)(f41)(f12)(f12)) f20 = f7(f9(f41)(f12)(f12)(f12)(f41)(f41)(f41)(f12))(f9(f12)(f41)(f12)(f41)(f41)(f41)(f41)(f41))(f9(f12)(f41)(f41)(f12)(f12)(f12)(f12)(f12))(f9(f41)(f12)(f12)(f41)(f41)(f12)(f12)(f12)) f21 = f7(f9(f41)(f12)(f12)(f41)(f41)(f41)(f41)(f12))(f9(f12)(f12)(f41)(f41)(f12)(f41)(f41)(f41))(f9(f12)(f41)(f41)(f41)(f41)(f12)(f12)(f41))(f9(f41)(f12)(f41)(f41)(f41)(f12)(f12)(f41)) f22 = f7(f9(f41)(f41)(f12)(f41)(f41)(f41)(f41)(f41))(f9(f41)(f12)(f12)(f41)(f41)(f12)(f41)(f41))(f9(f12)(f12)(f12)(f12)(f41)(f41)(f41)(f41))(f9(f41)(f41)(f12)(f41)(f12)(f12)(f12)(f12)) f23 = f7(f9(f41)(f41)(f41)(f41)(f12)(f12)(f12)(f12))(f9(f41)(f41)(f12)(f12)(f41)(f41)(f12)(f12))(f9(f12)(f12)(f12)(f12)(f12)(f41)(f12)(f12))(f9(f41)(f41)(f12)(f41)(f12)(f41)(f12)(f12)) f29 = (lambda a:f41) f32 = (lambda a:a(f12)(f41)) f34 = (lambda b:lambda a:f33(f30(f32(b))(a))(f30(b)(f32(a)))) f35 = (lambda b:lambda a:f34(b)(a)) f36 = (lambda f:lambda e:lambda d:lambda c:(lambda b:(lambda a:f5(f11(a))(f5(f10(a))(f10(b))))(f(e(f41))(d(f41))(f11(b))))(f(e(f12))(d(f12))(c))) f37 = (lambda e:lambda d:lambda c:(lambda b:(lambda a:f5(f11(a))(f5(f10(a))(f10(b))))(e(d(f41))(f11(b))))(e(d(f12))(c))) f38 = (lambda e:lambda d:lambda c:(lambda b:(lambda a:f5(f11(a))(f5(f10(b))(f10(a))))(e(d(f12))(f11(b))))(e(d(f41))(c))) f39 = (lambda c:lambda b:lambda a:f30(c(b(f41))(a(f41)))(c(b(f12))(a(f12)))) f40 = (lambda c:lambda b:lambda a:f5(c(b(f41))(a(f41)))(c(b(f12))(a(f12)))) f0 = (lambda c:lambda b:lambda a:f5(f33(f30(c)(b))(f30(f34(c)(b))(a)))(f34(f34(c)(b))(a))) f14 = ( (lambda b:lambda a: f10(f36(f36(f36(f36(f36(f0)))))(b)(a)(f12)) ) ) f25 = ( (lambda a: f10(f37(f37(f37(f37(f37(f6)))))(a)(f12)) ) ) f26 = ( (lambda a: f10(f38(f38(f38(f38(f38(f6)))))(a)(f12)) ) ) f27 = f40(f40(f40(f40(f40(f35))))) f31 = (lambda b:lambda a:f33(f30(b)(a))(f30(f32(b))(f32(a)))) f24 = f39(f39(f39(f39(f39(f31))))) f4 = (lambda a:f30(f24(f11(a))(f22))(f24(f10(a))(f17))) answer = ( (lambda v50:lambda v49:lambda v48:lambda v47:lambda v46:lambda v45:lambda v44:lambda v43:lambda v42:lambda v41:lambda v40:lambda v39:lambda v38:lambda v37:lambda v36:lambda v35:lambda v34:lambda v33:lambda v32:lambda v31:lambda v30:lambda v29:lambda v28:lambda v27:lambda v26:lambda v25:lambda v24:lambda v23:lambda v22:lambda v21:lambda v20:lambda v19:lambda v18:lambda v17:lambda v16:lambda v15:lambda v14:lambda v13:lambda v12:lambda v11:lambda v10:lambda v9:lambda v8:lambda v7:lambda v6:lambda v5:lambda v4:lambda v3:lambda v2:lambda v1:lambda v0:lambda z:lambda y:lambda x:lambda w:lambda v:lambda u:lambda t:lambda s:lambda r:lambda q:lambda p:lambda o:lambda n: f4 ( (lambda m:lambda l: f10 ( f43 ( (lambda k:lambda j:lambda i: f3(j)(i) ( (lambda h: k(f2(j)) ( (lambda g: (lambda f: (lambda e: (lambda d: (lambda c: (lambda b: (lambda a:f5(c)(f5(b)(a))) ( f14(d) ( f27 ( f27(f14(f25(f25(f25(f25(b)))))(f23))(f14(b)(c)) ) ( f14(f26(f26(f26(f26(f26(b))))))(f18) ) ) ) ) ( f14(e) ( f27 ( f27(f14(f25(f25(f25(f25(d)))))(f19))(f14(d)(c)) ) ( f14(f26(f26(f26(f26(f26(d))))))(f20) ) ) ) ) (f14(f)(f21)) ) (f10(f10(g))) ) (f11(f10(g))) ) (f11(g)) ) (i) ) (h) ) ) ) ) (f28)(f16(f5(m)(l))) ) ) (f7(f9(v19)(v20)(v21)(v22)(v23)(v24)(v25)(v26))(f9(v27)(v28)(v29)(v30)(v31)(v32)(v33)(v34))(f9(v35)(v36)(v37)(v38)(v39)(v40)(v41)(v42))(f9(v43)(v44)(v45)(v46)(v47)(v48)(v49)(v50)))(f7(f9(n)(o)(p)(q)(r)(s)(t)(u))(f9(v)(w)(x)(y)(z)(v0)(v1)(v2))(f9(v3)(v4)(v5)(v6)(v7)(v8)(v9)(v10))(f9(v11)(v12)(v13)(v14)(v15)(v16)(v17)(v18))) ) ) (S0[0])(S0[1])(S0[2])(S0[3])(S0[4])(S0[5])(S0[6])(S0[7])(S0[8])(S0[9])(S0[10])(S0[11])(S0[12])(S0[13])(S0[14])(S0[15])(S0[16])(S0[17])(S0[18])(S0[19])(S0[20])(S0[21])(S0[22])(S0[23])(S0[24])(S0[25])(S0[26])(S0[27])(S0[28])(S0[29])(S0[30])(S0[31])(S0[32])(S0[33])(S0[34])(S0[35])(S0[36])(S0[37])(S0[38])(S0[39])(S0[40])(S0[41])(S0[42])(S0[43])(S0[44])(S0[45])(S0[46])(S0[47])(S0[48])(S0[49])(S0[50])(S0[51])(S0[52])(S0[53])(S0[54])(S0[55])(S0[56])(S0[57])(S0[58])(S0[59])(S0[60])(S0[61])(S0[62])(S0[63])(S1[0])(S1[1]) ) return answer
Solvers, post your solutions in the comments using the following formatting:
Reveal solution
def sol(): return 'fe54620f00feb0ad'