---
# System prepended metadata

title: LICENSE (TFCCTF) write up

---

# LICENSE
![image](https://hackmd.io/_uploads/H1kM1ToK0.png)
ta thấy rằng để có flag thì phải qua được 2 hàm `sub_1209` và `sub_1345` , src phải có 17 ký tự

![image](https://hackmd.io/_uploads/BJCOyaoFR.png)

Tại `sub_1209`

![image](https://hackmd.io/_uploads/Hk3KyasYC.png)

hàm `sub_1209` dùng để kiểm tra 8 ký tự đầu
## Script1:
```python=
def inputt(target):
    decimal_values = []
    for i in range(8):
        v1 = i % 3
        transformed_char = ord(target[i]) ^ 0x33
        if v1 == 2:
            input_char = transformed_char + 37
        elif v1 == 1:
            input_char = transformed_char - 16
        else:  # v1 == 0
            input_char = transformed_char ^ 0x5A
        decimal_values.append(input_char)
    return decimal_values


target = "Xsl3BDxP"
decimal_values = inputt(target)

print(decimal_values)

```
![image](https://hackmd.io/_uploads/HkeFw-aoYR.png)

Tại `sub_1345`
![image](https://hackmd.io/_uploads/ByaXWpsKA.png)
## Script2:
```python=
s = ""
n = "mzXaPLzR"
for i in range(8):
    a = ""
    for j in range(32, 127):
        if chr(j).islower():
            a = chr((j - 92) % 26 + 97)
        elif chr(j).isupper():
            a = chr((j - 48) % 26 + 65)
        if a == n[i]:
            s += chr(j)
            break
print(s)
```
![image](https://hackmd.io/_uploads/rk7s-TjFC.png)

ký tự giữa sẽ là '-'

![image](https://hackmd.io/_uploads/SyZAZaoKR.png)

vì 8 ký tự đầu khi nhập tay sẽ bị lỗi format nên phải dùng pwntools
## Script:
```python=
from pwn import *

p = remote("challs.tfcctf.com", 30257)
part1 = [49, 48, 132, 90, 97, 156, 17, 83]
s1 = b''.join(bytes([x]) for x in part1)
s2 = b"huGvYUuA"
mid = b'-'
print(len(s1+mid+s2))
p.sendline(s1 + mid + s2)
p.interactive() 
```
![image](https://hackmd.io/_uploads/S10LGpiFR.png)

flag: `TFCCTF{ac1da9096a8ad2fcb839565621bf09e892a470a6a7a0498b6259e09525096b9d}`