본문 바로가기
STUDY/Dreamhack

[rev] ez_rev

by CH@3M 2024. 4. 22.

level 2. ez_rev

https://dreamhack.io/wargame/challenges/1168

 

ez_rev

함수가 너무 많아요...! 해결해주세요!

dreamhack.io

 

IDA로 main을 보니, 문자열을 받아와 연산을 하고 그 값이 특정 값이면 Correct로 간다. 처음에 입력되는 값이 flag인 것 같고, 역연산을 하면 될 것 같다.

함수 이름으로 어떤 연산을 하는지 대충 예측이 가능해 보였다. 함수를 하나하나 보면 연산이 너무 복잡하게 되어있어서, bp를 걸고 동적디버깅을 해보았다

IDA에서 본 qksrkqs 와 XOR 연산하는 것으로 보인다

이걸 토대로.. 여러 시도를 통해 코드로 만들어내서, 역연산한다!!!

xor_key = "qksrkqs"

string = "|l|GHyRrsfwxmsIrietznhIhj"

def shift_right(a):
    return a[-3:]+a[0:-3]

def shift_left(b):
    return b[3:]+b[0:3]

def xor(x,y):
    res = ""
    for i in range(len(x)):
        res += chr(ord(x[i])^ord(y[i%len(y)]))
    return res

plain = shift_left(string)
plain = xor(plain, xor_key)
plain = shift_right(plain)
plain = xor(plain, xor_key)
plain = shift_left(plain)

print(plain)
반응형

'STUDY > Dreamhack' 카테고리의 다른 글

[WEB] DOM XSS  (0) 2024.07.09
[WEB] Switching Command  (0) 2024.06.23
[rev] Summer Fan (level2)  (0) 2024.06.15
[web] Dream Gallery (level2)  (1) 2024.06.14
[pwn] mmapped  (0) 2024.04.22