목록전체 글 (48)
rsp-∞
pwndbg> disassemble phase_1 Dump of assembler code for function phase_1: 0x0000000000400ee0 : sub rsp,0x8 0x0000000000400ee4 : mov esi,0x402400 0x0000000000400ee9 : call 0x401338 0x0000000000400eee : test eax,eax 0x0000000000400ef0 : je 0x400ef7 0x0000000000400ef2 : call 0x40143a 0x0000000000400ef7 : add rsp,0x8 0x0000000000400efb : ret phase_1을 디스어셈블한다. 코드를 들여다보지 않고 그냥 run하면 입력값으로 무얼 넣어야 할지 전혀 ..

Q1. 다음 어셈블리 코드를 실행했을 때 출력되는 결과로 올바른 것은? [Code] main: push rbp mov rbp, rsp mov esi, 0xf mov rdi, 0x400500 call 0x400497 mov eax, 0x0 pop rbp ret write_n: push rbp mov rbp, rsp mov QWORD PTR [rbp-0x8],rdi mov DWORD PTR [rbp-0xc],esi xor rdx, rdx mov edx, DWORD PTR [rbp-0xc] mov rsi,QWORD PTR [rbp-0x8] mov rdi, 0x1 mov rax, 0x1 syscall pop rbp ret ================================== [Memory] 0x4005..

Q1. end로 점프하면 프로그램이 종료된다고 가정하자. 프로그램이 종료됐을 때, 0x400000 부터 0x400019까지의 데이터를 대응되는 아스키 문자로 변환하면 어느 문자열이 나오는가? [Register] rcx = 0 rdx = 0 rsi = 0x400000 ======================= [Memory] 0x400000 | 0x67 0x55 0x5c 0x53 0x5f 0x5d 0x55 0x10 0x400008 | 0x44 0x5f 0x10 0x51 0x43 0x43 0x55 0x5d 0x400010 | 0x52 0x5c 0x49 0x10 0x47 0x5f 0x42 0x5c 0x400018 | 0x54 0x11 0x00 0x00 0x00 0x00 0x00 0x00 ============..