Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 기계학습
- 파이썬
- BOJ
- The Loard of BOF
- c
- siss
- Python
- CSS
- hackctf
- 자료구조 복습
- c++
- 웹페이지 만들기
- HTML
- XSS Game
- Javascript
- lob
- C언어
- 드림핵
- SWEA
- Sookmyung Information Security Study
- BOJ Python
- 백준
- 숙명여자대학교 정보보안동아리
- 머신러닝
- 생활코딩
- hackerrank
- 풀이
- PHP 웹페이지 만들기
- WarGame
- 숙명여자대학교 정보보안 동아리
Archives
- Today
- Total
혜랑's STORY
[picoCTF] asm1 - Reverse Engineering 본문
source를 다운받아서 살펴보자.
asm1:
<+0>: push ebp
<+1>: mov ebp,esp
<+3>: cmp DWORD PTR [ebp+0x8],0x71c
<+10>: jg 0x512 <asm1+37>
<+12>: cmp DWORD PTR [ebp+0x8],0x6cf
<+19>: jne 0x50a <asm1+29>
<+21>: mov eax,DWORD PTR [ebp+0x8]
<+24>: add eax,0x3
<+27>: jmp 0x529 <asm1+60>
<+29>: mov eax,DWORD PTR [ebp+0x8]
<+32>: sub eax,0x3
<+35>: jmp 0x529 <asm1+60>
<+37>: cmp DWORD PTR [ebp+0x8],0x8be
<+44>: jne 0x523 <asm1+54>
<+46>: mov eax,DWORD PTR [ebp+0x8]
<+49>: sub eax,0x3
<+52>: jmp 0x529 <asm1+60>
<+54>: mov eax,DWORD PTR [ebp+0x8]
<+57>: add eax,0x3
<+60>: pop ebp
<+61>: ret
문제에서 0x8be를 넣었다. 차근차근 따라가며 flag를 찾아보자.
<+3>: cmp DWORD PTR [ebp+0x8],0x71c
스택의 첫 번째 값인 "0x8be"와 0x71c를 비교한다.
<+10>: jg 0x512 <asm1+37>
비교한 값의 왼쪽 값이 더 클 경우 <+37>로 이동한다.
0x8be와 0x71c 중 0x8be가 더 크다. 따라서 <+37>로 이동하여 이어가면 된다.
<+12>: cmp DWORD PTR [ebp+0x8],0x6cf
<+19>: jne 0x50a <asm1+29>
<+21>: mov eax,DWORD PTR [ebp+0x8]
<+24>: add eax,0x3
<+27>: jmp 0x529 <asm1+60>
<+29>: mov eax,DWORD PTR [ebp+0x8]
<+32>: sub eax,0x3
<+35>: jmp 0x529 <asm1+60>
<+37>: cmp DWORD PTR [ebp+0x8],0x8be
역시 0x8be와 0x8be를 비교한다.
<+44>: jne 0x523 <asm1+54>
비교한 값이 서로 다를 경우 <+54>로 점프한다.
현재는 같으므로 점프하지 않는다.
<+46>: mov eax,DWORD PTR [ebp+0x8]
eax에 0x8be를 넣는다.
<+49>: sub eax,0x3
eax값에서 0x3만큼 뺀다.
0x8be - 0x3 = 0x8bb
<+52>: jmp 0x529 <asm1+60>
<+60>으로 점프한다.
<+54>: mov eax,DWORD PTR [ebp+0x8]
<+57>: add eax,0x3
<+60>: pop ebp
eax를 반환한다.
즉, 0x8bb를 반환한다.
<+61>: ret
종료
문제를 해결할 수 있었다.
'2021 SISS 21기 활동 > 여름방학 CTF[연합]' 카테고리의 다른 글
[HackCTF] Basic_FSB - pwnable (0) | 2021.08.10 |
---|---|
[HackCTF] Basic_BOF #2 - pwnable (0) | 2021.08.10 |
[picoCTF] crackme.py - Reverse Engineering (0) | 2021.08.05 |
[picoCTF] Stonks - Binary Exploitation (0) | 2021.08.05 |
[picoCTF] Mind your Ps and Qs - Cryptography (0) | 2021.07.29 |