소학회/리버싱

[CodeEngn]Basic RCE L04 문제풀이

도아돵 2023. 5. 16. 10:03

CodeEngn.com [코드엔진]


오늘 풀어볼 문제는 Basic RCE L04 ~~

;

 

먼저 파일을 다운로드 후 반디집을 통해 압축을 풀어준다

 

 

파일을 열어주니 약간 .... 흠.. 당황스럽다

왜냐면

위와 같은 화면처럼, 체감상 초단위로  '정상'이라는 메시지가 계속 출력되는 것을 확인할 수 있었다 ㅋㅋㅋㅋㅋㅋㅋ

 

흠 다른분들 풀이를 참고해보니 대부분이 올리디버거를 사용하셨길래,, 다운로드 받았다 

 

*올리디버거 : 디버깅 프로그램중 하나이며, 디스어셈블리와 디버그가 모두 가능한 툴이라 리버싱에 기본적으로 사용


 

+우와 다운로드하고 어떻게 설정하는지 몰라서 한참 헤맸다 ㅌㅎㅋㅋ.....

 

올리디버거 다운로드 참고링크!

L4DY_8UG :: 올리디버거(Ollydbg) 설치 및 사용법 (tistory.com)

ollydbg :: 01 설치 및 설정 :: 🏰 (tistory.com)

 


자 이제 문제에 다시 집중해야지..

올리디버거로 파일열었다!!!!!

음 ..

단축키를 정리하자면 다음과 같다.

  • F7 : 명령어를 한 줄 씩 실행시키는 단축키이며 CALL 명령어가 있을 때 함수 내부로 들어가서 명령어를 실행
  •  F8 : 명령어를 한 줄 씩 실행시키는 단축키이며 CALL 명령어가 있을 때 함수 내부로 들어가지 않고 함수를 실행
  •  F9 : 프로그램을 실행시키는 단축키
 

 

아 .. 막막하군

;

올리디버거를 살펴보니 자꾸만 call 어쩌구 옆에 Arg1이 반복되는 것을 확인할 수 있었다 .이게 뭘까 하면서 설마 아까 '정상'문자 출력되는 것과 관련이 있을까 싶어 한줄씩 단축키를 실행했다.

이런식으로 '디버깅 당함'이라는 문자가 출력되어 나온다

헉 뭘까 혼자서 뭔가 한단계 풀었다는 것이 사알짝 성취감이 들었다 ㅎ// 물론 아직 문제 정답은 모르지만 ..

 

 다른 분의 티스토리를 참고해도 이해가 가지않아 뇌가 멈춘듯하다 .. 내일 다시 건드려야겠다 ..

;

헉 일주일 후에 돌아왔다 ..ㅋㅋㅋㅋㅋㅋㅋ

오늘이 마감일이니 어서 풀어야지 ~~

;

글을 보니까 올리디버거를 이용하여 '디버깅 당함' 문자열이 출력된 것을 볼 수 있었다.

 

 

이 문제는 디버깅 탐지하는 함수가 무엇인지 알아내는 것이었고

IsDebuggerPresent를 지나고 나서 진행되었기 때문에 이것이 정답이다.

 

IsDebuggerPresent: Anti-Debugging(안티디버깅)기법의 대표적이며 이 함수는 디버깅을 당하면 1,당하지 않으면 0을 리턴함

*Anti-Debugging(안티디버깅):디버깅을 방해하는 기술

 

 


문제풀이보다 내 생각의 흐름이 더 많았던 글이였다..

다른 분의 티스토리를 참고하여도 왜 이런과정을 겪는지 혹은 왜 하는지 이해가 안가는 부분들이 꽤나 있었다.

문제풀이에 대한 지식은 방대하니 .. 이렇게 하나하나 풀면서 지식을 쌓아나갈테지만 푸는 문제마다 모두 모르는 개념들이니 막막하고 내 자신이 답답하게 느껴지는건 어쩔 수 없는 거같다

그래도 문제해결하느라 수고했다ㅎㅎ!! 

 

다음 문제풀이도 가보자고~~

'소학회 > 리버싱' 카테고리의 다른 글

[CodeEngn]Basic RCE L05 문제풀이  (0) 2023.07.25
[SuNiNaTaS] 09번 문제풀이  (0) 2023.07.11
[CodeEngn]Basic RCE L08  (0) 2023.05.29
[CodeEngn]Basic RCE L03 문제풀이  (0) 2023.05.02
[CodeEngn]Basic RCE L02문제풀이  (0) 2023.04.04