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
- 밑바닥부터시작하는딥러닝
- 신경망파이썬
- 활성화함수파이썬
- 파이썬신경망
- 신경망구현
- 달고나bof
- 딥러닝
- C알고리즘
- 알고리즘
- 머신러닝
- c언어
- 인공지능
- BOF
- 8086CPU레지스터
- 백준알고리즘
- 스트림암호
- FTZlevel10
- C언어알고리즘
- 정보보안
- 신경망
- 보안
- 버퍼오버플로우
- C언어 알고리즘
- 딥러닝파이썬
- 소프트맥스함수
- 신경망 학습
- 항등함수
- 파이썬
- 백준
Archives
- Today
- Total
HeeJ's
Basic RCE L16 :: CodeEngn/Basic RCE 본문
문제:
16번 문제도 15번과 동일하게 Serial을 찾는 문제로,
일단 실행시켜보았다.
이런 실행 창을 얻을 수 있었고,
바로 Ollydbg로 분석해보았다.
분기문을 찾기 위해
성공과 실패를 가르는 String을 찾아주었고,
" Good Job! "이라는 문자열을 더블 클릭해 들어가주었다.
위 쪽으로 보다 보면,
CMP구문을 찾을 수 있었고
이 부분에 bp를 걸어준 다음 실행시켜보았다.
CMP 구문에서
EAX와 DOWRD PTR SS:[EBP-3C]를 비교해주는 것을 확인하고
(EBP에서 3C를 뺀 메모리 주소에 저장된 값)
값을 입력해주었더니
EAX에는 내가 입력해 준 값이 들어있는걸 확인할 수 있었고,
EBP는 0070FF28이라는 것을 알 수 있다.
여기서 3C를 빼주면
00 70 FE EC 주소의 4byte를 EAX와 비교해야하는 것을 알 수 있다.
이 메모리 주소의 값을 확인하기 위해
메모리 어드레스를 확인해주면
0070FEEC의 dump 값들을 볼 수 있고,
이는 리틀 엔디안방식으로 읽어주어야 하기 때문에
E4 C6 0D 97임을 알 수 있다.
이를 10진수로 바꿔주면
10진수로 된 값을 얻을 수 있고,
파일을 실행시켜 Serial에 이 값을 넣어주면
답을 찾을 수 있다.
'<CTF> > <CodeEngn>' 카테고리의 다른 글
BasicRCE L02 :: CodeEngn/BasicRCE (0) | 2021.04.26 |
---|---|
Basic RCE L01 :: CodeEngn/BasicRCE (0) | 2021.03.29 |
Basic RCE L18 :: CodeEngn/Basic RCE (0) | 2020.06.07 |
Basic RCE L11 :: CodeEngn/BasicRCE (0) | 2020.06.06 |
Basic RCE L15 :: CodeEngn/BasicRCE (0) | 2020.06.05 |