문제 What does asm1(0xcd) return?
함수 asm1(0xcd)를 호출하였을때 리턴 값은 무엇인가?(파라미터 0xcd)
-----------------------------------------------------------------------------------------------------------------------------------
.intel_syntax noprefix
.bits 32
.global asm1
asm1:
push ebp
mov ebp,esp //프레임 생성
cmp DWORD PTR [ebp+0x8],0xde //거짓 0
jg part_a //실행 안됨
cmp DWORD PTR [ebp+0x8],0x8
jne part_b //같지 않으면 part_b로 점프(jump if not equal) //실행됨
mov eax,DWORD PTR [ebp+0x8]
add eax,0x3
jmp part_d
part_a:
cmp DWORD PTR [ebp+0x8],0x4e
jne part_c
mov eax,DWORD PTR [ebp+0x8]
sub eax,0x3
jmp part_d
part_b:
mov eax,DWORD PTR [ebp+0x8]
sub eax,0x3 //cd-3
jmp part_d //part_d로 점프
cmp DWORD PTR [ebp+0x8],0xee
jne part_c
mov eax,DWORD PTR [ebp+0x8]
sub eax,0x3
jmp part_d
part_c:
mov eax,DWORD PTR [ebp+0x8]
add eax,0x3
part_d:
pop ebp //스택프레임 해제 asm1종료
ret //eax == 0xca
-----------------------------------------------------------------------------------------------------------------------------------
보통 EAX레지스터를 사용하여 리턴값을 전달한다.
리턴값 == EAX == 0xca
'문제' 카테고리의 다른 글
suninatas web challenge 2 (0) | 2021.04.01 |
---|---|
suninatas web challenge 1 (0) | 2021.04.01 |
CodeEngn #1 (0) | 2020.03.11 |
picoCTF 2018 assembly-2 풀이 (0) | 2019.07.17 |
picoCTF 2018 assembly-0 풀이 (0) | 2019.05.20 |