코드엔진 Basic RCE L04
Posted by bonggang | 2020. 3. 12. 17:45
문제
https://codeengn.com/challenges/
문제풀이
이번에도 먼저 실행부터 해본다. 특별한 기능은 보이지 않고 디버깅 당함이라는 글씨가 반복해서 뜨는 것을 확인할 수 있다.
L03처럼 사용하는 함수 목록부터 확인해보겠다.
이번에도 함수 목록에서 수상해 보이는 함수명을 찾았다.
IsDebuggerPresent라니 누가봐도 디버거 프로그램을 탐지하는 기능을 가지고 있을 것 같다.
더블 클릭해서 함수를 자세히 살펴보자!
먼저 IsDebuggerPresent 함수에서 F8 키를 눌러 Step over를 해봤는데 디버깅 당함이 나오지 않는다.
정작 디버깅 당함은 call 04.408190 이후 디버깅 당함이 표시된다.
push에 있는 주소를 따라가니 디버깅 당함이라는 글자가 보인다.
그리고 난 뒤 다시 끝난 것을 확인해보니
이 구문이 반복된다.
이 부분을 확인해보면
1. 1초 쉰다.
2. call 함수 실행
3. IsDebuggerPresent 디버그 모드인지 확인
4. call 함수 실행
5. "정상" 혹은 "디버깅 당함" 문자열 받아옴
6. 문자열을 콘솔 창에 출력
으로 추측.
EAX 값을 0으로 바꿔주면 정상으로 표시된다.
이 문제의 정답은 IsDebuggerPresnet다.
'Security > Reversing' 카테고리의 다른 글
코드엔진 Basic RCE L06 (0) | 2020.03.13 |
---|---|
코드엔진 Basic RCE L05 (0) | 2020.03.12 |
코드엔진 Basic RCE L03 (0) | 2020.03.12 |
Reversing Study - day 7 (0) | 2020.03.12 |
Reversing Study - day 6(PE File) (0) | 2020.03.12 |
Reversing Study - day 5(함수 호출 규약) (0) | 2020.03.12 |
Reversing Study - day 4 (0) | 2019.11.28 |
Reversing Study - day 3(스택 프레임) (0) | 2019.11.27 |