히공

hackingcamp22CTF - dvm-rev 본문

write up/hackingcamp22CTF

hackingcamp22CTF - dvm-rev

heegong 2021. 3. 20. 19:10
728x90

 

문제

 

 

 

 

 

 

 

 

dvm-rev

 

 

 

 

 

 

 

sub_14A3이 가장 중요한 함수다.

 

 

 

 

 

 

 

이러한 함수다.

 

 

ida 리모트 디버깅을 쓴다.

인자로는 opcode를 준다.

 

 

 

 

 

 

 

f9를 누른다.

 

 

 

 

 

 

 

jmp rax가 굉장히 중요하다.

 

 

 

 

 

 

 

 

아무거나 입력해준다.

 

 

 

 

 

 

 

 

 

call하는 부분으로 오게 된다.

 

 

 

 

 

 

 

 

안은 이러했다.

 

 

 

 

 

 

 

 

memcmp로 가는 것을 볼 수 있다.

unk_7F4ABDDDFF00 = memcmp

 

 

 

 

 

 

 

 

끝나고 rsi 주소로 가보면

여기 주소와 비교하는거다.

 

 

 

 

 

 

 

코드를 패치하여 검사를 통과하도록 만들었다.

총 3번 입력받는다.

 

 

opcode : S가 출력되면
입력을 받는다.

opcode : P가 출력되면
memcmp를 호출한다.

 

 

 

RAX값을 보니 8개를 입력받는 것을 알 수 있다. (read 함수 호출 후)

 

 

 

 

 

 

 

여기를 보면 sub_1100는 write함수로 이동하는 함수라고 알 수 있다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

여기 보이는

 

 

 

 

 

 

 

이 부분을 memcmp로 가게 하지 말고 write함수로 가게 만든다. 

 

 

 

 

 

 

 

 

 

jz를 jnz로 바꿔서 실패가 없도록 만든다.

 

 

pwntools를 이용해 브포를 돌리면 된다.

 

 

 

 

 

 

 

hxd로 바꿔줬다.

 

 

 

 

 

 

(wsl ubuntu 18.04 python 2.7 환경)

from pwn import *

memcmp_ls = [b"\\x9A\\x03\\x8A\\xF0\\x89\\xDC\\x25\\x93", b"\\xB2\\xCA\\x48\\xB2\\x86\\x91\\xE4\\xF9", b"\\x26\\x4F\\x11\\xD8\\x8F\\xA6\\x5F\\x6D"]

result = ''
for i in range(3):
    for j in range(8):
        for brute_force_c in range(0x7e+1):
            p = process(['dvm-rev_1_hx','opcode'])
            p.sendline(result+chr(brute_force_c))
            for k in range(i+1):
                p.recvuntil("[+] opcode : P\\n")
            
            recv_data = p.recv()
            p.close()
            
            if recv_data[j]==memcmp_ls[i][j]:
                result+=chr(brute_force_c)
                break
print(result)

 

 

 

 

 

HCAMP{34sYrEvPrObl3m:-)}

 

'write up > hackingcamp22CTF' 카테고리의 다른 글

hackingcamp22CTF - Opps Enc!  (0) 2021.03.20
hackingcamp22CTF - revtine  (0) 2021.03.20
hackingcamp22CTF - Demon Notepad  (0) 2021.03.20
hackingcamp22CTF - Do u know it?  (0) 2021.03.20
Comments