본문 바로가기

분류 전체보기264

[CTF] DIMICTF 2020 writeup 보호되어 있는 글 입니다. 2020. 9. 26.
[Linux] Pwntools gdb.attach() 하는법. python 익스코드를 작성한 뒤, gdb 를 attach 해 코드를 디버깅하고싶을때, gdb.attach() 를 사용합니다. from pwn import * r=process("./program") payload='~~~~~' ###attach### gdb.attach(r) pause() ###attach### r.sendline(payload) r.interactive() payload 를 보내는 부분 전에 (종료되기때문) gdb.attach(r) ; pause() 이렇게 코드를 삽입해줍니다. # gdb.attach(r) 이 안먹힐때는 수동으로할 수 있습니다. [ 수동버전 ] gdb.attach(r) 은 쓰지않고, pause() 만 작성합니다. 코드를 실행시킨 뒤, 오른쪽 위에 process id 를.. 2020. 9. 17.
[HackCTF] (Pwnable) World Best Encryption Tool 실행시키면 $rbp-0x80 에 입력을 받고 암호화 해서 출력한다. (딱봐도 28 이랑 XOR 연산) 57글자부터 canary값으로 추정되는값이 leak 된다. Analyze undefined8 main(void) { int iVar1; long in_FS_OFFSET; uint local_90; char local_8c [4]; byte local_88 [64]; char local_48 [56]; long local_10; local_10 = *(long *)(in_FS_OFFSET + 0x28); setvbuf(stdout,(char *)0x0,2,0); do { puts("Your text)"); __isoc99_scanf(&DAT_00400913,local_88); local_90 = 0; wh.. 2020. 9. 17.
[HackCTF] (Pwnable) Register 풀이 Main 함수다. 5초뒤에 alarm signal (14) 를 보낸다. main 에서 호출하는 build 함수인데, alarm signal(14) 에 대한 핸들러를 설정하고, 루프문에서 get_obj 함수로 obj 부터 obj+48 까지 입력을 받는다. vaildate_syscall_obj() 함수를 호출해서, 리턴값이 0 이면, alarm signal(14) 을 보내서, alarm handler (syscall) 을 호출해준다. alarm signal(14) 에 대한 handler 이 호출하는 함수이다. 인자로는 전역변수 obj 의 offset 을 주고, obj ~ obj + 48 까지 순서대로 rax, rdi, rsi, rdx, rcx, r8, r9 에 넣고 , syscall 을 해준다. obj(ra.. 2020. 9. 10.