호그와트

드림핵 rev-basic-4

영웅*^%&$ 2022. 1. 25. 13:45
728x90

파이썬은 정말 신기한 언어다

보고 또 볼수록 정말 놀라운 점이 많다

우선 비트연산을 이렇게 깔끔하게 할 수 있다

import string

raw =(0x24,0x27,0x13,0xc6,0xc6,0x13,0x16,0xe6,0x47,0xf5,0x26,0x96,0x47,0xf5,0x46,0x27,0x13,0x26,0x26,0xc6,0x56,0xf5,0xc3,0xc3,0xf5,0xe3,0xe3)

for ch in raw:

for i in string.printable:

if ((16*ord(i))&0xf0 | ord(i)>>4 ) == ch:

print(i, end='')

break

블로그에 올려놓으니까 가독성이 많이 떨어지긴 한다

rev-basic-4를 보면 기본적으로 검증 함수가

((16*ord(i))&0xf0 | ord(i)>>4 )가 주어진 바이트와 일치하는지 여부임을 알 수 있다

그걸 그대로 긁어서 주어져있는 바이트와 비교만 해도 flag가 나온다

728x90

'호그와트' 카테고리의 다른 글

드림핵 rev-basic-2  (0) 2022.01.25
드림핵 rev-basic-3  (0) 2022.01.25
드림핵 csrf-1  (0) 2022.01.22
드림핵 xss-1  (0) 2022.01.22
드림핵 xss-2  (0) 2022.01.22