본문 바로가기

Reversing/드림핵

드림핵 리버싱 rev-basic-4 writeup

반응형

드림핵 리버싱 rev-basic-4 writeup

 

 

5번 째 줄을 통해 0x1C니까 length가 28 이라는 것을 알아냈다. 이후 연산식은 7번 줄에 나와있다.

 

 

byte_140003000을 확인해보니 우리가 비교할 값이 나와있었다.

 

 

근데 아무리 exploit을 짜도 글자가 깨져서 다시 확인해보니 연산 하나가 빠져있었다. 그래서 and ecx, 0F0h 만 추가해서 exploit을 했다.

 

 

 

byte_140003000 = [0x24, 0x27, 0x13, 0xC6, 0xC6, 0x13, 0x16, 0xE6, 0x47, 0xF5,
                0x26, 0x96, 0x47, 0xF5, 0x46, 0x27, 0x13, 0x26, 0x26, 0xC6,
                0x56, 0x0F5, 0xC3, 0xC3, 0xF5, 0xE3, 0xE3]

flag = ''

for i in range (0,27):
    flag += chr((16 * byte_140003000[i]) & (0xF0) | (byte_140003000[i] >> 4))
    print(flag)

DH{Br1ll1ant_bit_dr1bble_<<_>>}

728x90