Wargame & CTF/picoCTF

[picoCTF][Reverse Engineering]asm1 문제 풀이

seomj 2020. 12. 17. 22:12

문제

 

풀이

 

문제에서 스택에 0x6fa 값을 넣었다.

 

<+3>: cmp    DWORD PTR [ebp+0x8],0x3a2

스택의 첫 번째 값인 0x6fa와 0x3a2를 비교


<+10>: jg     0x512 <asm1+37>

jg(Jump if greater) : 왼쪽 값이 크면 점프

 

-> 비교 결과 왼쪽 값이 더 크므로 37번째 줄로 이동

 

<+37>:cmp    DWORD PTR [ebp+0x8],0x6fa

스택의 첫 번째 값인 0x6fa와 0x6fa를 비교

 

<+44>: jne    0x523 <asm1+54>

jne(Jump if not equal) : 두 값이 다르면 점프

 

-> 비교 결과 두 값이 같으므로 아랫줄로 이동

 

<+46>: mov    eax,DWORD PTR [ebp+0x8]

스택의 첫 번째 값인 0x6fa를 eax에 복사


<+49>: sub    eax,0x12

eax에서 0x12를 뺀 값을 eax에 저장

 

<+52>: jmp    0x529 <asm1+60>

60번째 줄로 이동

 

<+60>: pop    ebp
<+61>: ret 

스택이 pop되고 eax가 반환

 

 

0x6e8