Rating: 3.0
In the line:
`noobda = bin(int(my_hexdata, scale))[2:].zfill(num_of_bits)`
noobda being the key for the xor, we know it's using `bin` so the key consists of only 1's and 0's
we can manually bruteforce because in xor the key is used for each character so we can test for each character if 1 or 0 is more accurate.
Example of what I did:
```
from pwn import xor
res = b64decode("U1FEQEdeS1JDSEBEXlZDUEFYSG5ZQ29TVVBFRFlXRFxvUUJFTA==")
```
![](https://cdn.discordapp.com/attachments/705488827837579305/718575236198432878/unknown.png)
You keep doing this until you get the flag:
```
xor(res, b"1000000111001111101100010100011000011")
bytearray(b'batpwn{cryptography_is_beautiful_art}')
```