* RSA and the mysterious hash function is implemented* We can encrypt any data and get its hash* We can get hash of the result of the decryption of any data* $N,e$ is known. $N$: 1024bit, $e=65537$* The hash function is as follows:
```python    def _hash(self, m):        """ DIY Hash Function """        H = 0xcafebabe        M = m        # Stage 1        while M > 0:            H = (((H << 5) + H) + (M & 0xFFFFFFFF)) & 0xFFFFFFFF            M >>= 32        # Stage 2        M = H        while M > 0:            H = ((M & 0xFF) + (H << 6) + (H << 16) - H) & 0xFFFFFFFF            M >>= 8        # Stage 3        H = H | 1 if m & 1 else H & 0xfffffffe        return H```
### Solution
* The hash funciton is somewhat tricky, but the awful thing is that they repaint the LSB of the hash value with the one of the input $m$.* So we can know the LSB of the result of decryption of any data.  * **LSB Decryption Oracle Attack** can be applied
`zer0pts{n3v3r_r3v34l_7h3_LSB}`
{%gist hakatashi/0c30ac59b88927a452903f94d5a6f490 %}
I connect on the server 1024 times and worried if I may be banned :)