Rating:

See here : [https://berryberry.hatenablog.jp/](https://berryberry.hatenablog.jp/entry/2022/03/27/092652)

Two files containing the 32 bytes of data and one python file for encoding below were given.
The Python script is on my blog.

![](https://cdn-ak.f.st-hatena.com/images/fotolife/B/Berrys/20220327/20220327090213.png)

We know the value of S[0] is "LINECTF{", so we can calculate a simultaneous equation for every 8 bytes in hexadecimal.
This text file is a summary of what went on in my head.

```
share1[ 0: 8] 25243e2a31202715
share1[ 8:16] 0000000000000000
share1[16:24] 2b0719073a0d2c2f
share1[24:32] 0214251c09404813

share4[ 0: 8] 1d08081b2d1d1231
share4[ 8:16] 0331361e3319061c
share4[16:24] 0607001b3a0f311f
share4[24:32] 3933342926756706

xor(r[0], s[0], r[0], s[3]) = xor(s[0], s[3]) = 382c36311c3d3524
xor(r[1], s[2], r[1] ) = !!!!!
xor(r[2], s[1], r[2], s[3]) = xor(s[1], s[3]) = 2d00191c00021d30
xor(r[3], s[0], r[3], s[2]) = xor(s[0], s[2]) = 3b2711352f352f15

r[0] = xor(r[0], s[3]) ^ s[3]
r[1] = xor(r[1], s[2]) ^ s[2]
r[2] = xor(r[2], s[1]) ^ s[1]
r[3] = xor(r[3], s[0]) ^ s[0]

s[0] = 4c494e454354467b = LINECTF{
s[1] = 596561685f6b6e6f
s[2] = 776e5f706c61696e
s[3] = 746578745f69735f

r[0] = 696d706f7274616e
r[1] = 745f696e5f786f72
r[2] = 5f62617365645f70
r[3] = 757a7a6c6521217d

```

Join R to S, and Convert to a string from hexadecimal. Finally, we can get the FLAG.

![](https://cdn-ak.f.st-hatena.com/images/fotolife/B/Berrys/20220327/20220327092158.png)

You can solve this using z3-solver of course.