From e1eb374cfe4550189b157227c0aa55df96e1a199 Mon Sep 17 00:00:00 2001 From: Roman Hergenreder Date: Fri, 20 Dec 2019 01:02:00 +0100 Subject: [PATCH] Day 20 solved --- Day 20/decode.py | 19 +++++++++++++++++++ Day 20/game | Bin 0 -> 6306 bytes 2 files changed, 19 insertions(+) create mode 100644 Day 20/decode.py create mode 100755 Day 20/game diff --git a/Day 20/decode.py b/Day 20/decode.py new file mode 100644 index 0000000..0051da4 --- /dev/null +++ b/Day 20/decode.py @@ -0,0 +1,19 @@ + +byte_300 = [0xCE, 0x55, 0x95, 0x4E, 0x38, 0x0C5, 0x89, 0x0A5, 0x1B, 0x6F, 0x5E, 0x25, 0x0D2, 0x1D, 0x2A, 0x2B, 0x5E, 0x7B, 0x39, 0x14, 0x8E, 0x0D0, 0x0F0, 0x0F8, 0x0F8, 0x0A5, 0x00] + +with open("PS4UPDATE.PUP", "rb") as f: + + v29 = byte_300.copy() + v14 = 4919; + + while True: + f.seek(v14) + input = bytes(f.read(27)) + for i in range(27): + v29[i] = (v29[i] ^ input[i]) + + v14 += 4919 + if v14 == 24201480: # 4920 times + break + + print("".join(chr(x) for x in v29)) diff --git a/Day 20/game b/Day 20/game new file mode 100755 index 0000000000000000000000000000000000000000..1d6a036975ae198fbe032ccc6ee75d10a7e9696b GIT binary patch literal 6306 zcmeHLUu;{|89zz9wu5akiy0lLkVU18dvEeTyO~i-U(Z<1LID;r^dp9a`Q=JGW8nZ}@h|fJR{ZH^ z>4zivtdX_p{NON4S0mGvir<)>dz^G-r@@mDgf`k$jKSV;Pu$6Mqr2*-Q~DgjAbOXe z`^j~jZo{A9AlV!A=stw*Nw;pmxiHxaY+~%!Zk-bCwHqW|2)buHx?aVt3q$uOkFL*S zFAm*Fk8UvPwwHiz*{zF3J?lra{^ijP z#oYFO1Knk}u2=E+_bhZ*J-S}cx~HIH$a!iq4|@AO`?3n%bspWI$G_L03%Pais3T$M zelJ0Ht4G)C(R~Qr9Uh%C0m)tfH5qg3`n>TCL3g)D7jqN{*$YEA=F+MAQY+VLJHJ8Y zKfbtAt-Y>JoyjE4x7B^>{c1*?oJbzObR~K0GW!B!wHu*wT$78S85>pBMwP0vrd&|2 zCYN^HLaJbLaSM$lmnOqO)m$~tC71fPgHWp4(y8!Mr1=L8ZU%oBdI@t~sesw7qz7yhohQ#RWobjONWDXE7py} zsajB5%!fB=i{Bx8YUlGerE2FeS*gM!161nxYP(v?u<@bK7yc=o-SIevl8Xl13ZAHT zo=9O$+8HC9PA+{JW32PG1TN2q+SDgQ852-QElIY``tmx|AxM4sB3lp^f&H-b)=jOIB0IKHHS~ zVcWuKVanS5e0UfE{&Phy<_ojgM_x*Vdl>EUHX$mUON57m?YJf$LlLeFQT7CraB$D^ z1}t2Fc30iEtCTC;%{7v2;|}7(#g;xVO9DHNvr95qW5c8`qQ*?q_E zy_s)z4@BaTD7W(e>;Gy8dSG}6zW}39+-V^?oah%|yKueRLK$315nu;#rK2RkN|O7z zL{9^K*BX5Z*PRx61y?@zHHqE_8pbccKEhSC(5JZ4iUAf!#g16$E+8BW;54973rzuW zdljHDi#sa0-%4}}hpGMr7ZLdpgk5k33QKz{sN>~ z=seK4g>Yee@q<~kdnHOsbe}}ulW0PsNr^HN-7nETi5`%Mj(@(|_a%BrB6=$D(E}1u z>^L_i(ZdpDC7QNSq%bq915x|D#@HimbJ>|Sr!_)w`M-S zDm0-Mnzw}pkDI1;J{6i9T4-+Qz#!UJ@oVPKcA=r?N;Azaq3LX)c|d5s(n3=b8hV~L zTkC|-e5r-zcS1uiZ_VtS78-g%Zl-xzXy|RPnPy#RCK^A!9mN(KOqP4R^ zMb{72yZGDADn>asH{YPZ%$H}1MnO`Tm76V9bV*>=c%pA?rkJ&!1;j&B*0cGBMBGJ} zV|C0*6=xbQVpa)nn~qs?c*2x&4T|5z7Ka@g{kDf0bucqnNSm3Kmbjh!9Gd;;@&De0 zj~+c*hmo>gm^aE1ye03|jfqn3kZz1v8z8hU0X`J`r;e10MLlQu4|2QiF%d)Gg_1_8 zSaDC_0d?znOx>)AtBV%Fb+IzQE}nZ;E#mY~W#BAl! zIk$Z|s+F?&2_suJ#!LAHyvew%P%ucbl7q#42Cc9<+)pFMrnr|6HmcC@!%$d0ec2LR+QiTL7&p#=pj}l?X=b;%r*e zKF0w+I{2AEi6(QSL5ZYj5RGh*XAPg`O=Op#9)C{D!1HcB;=I=gwHOsKmZP$0B~y>8 zn843{dEUtbgb&LA3bplYkzz;4xI)HC%(oq|C^9?Qh>o3|;9+r4w&R%x)*d0j&@^Y% b?NTwsv#XKvknoW39hY5qgzRUFE&TrhP5vxn literal 0 HcmV?d00001