본문 바로가기

Reverse Engineering/Reversing CTF

[AmateursCTF] cplusplus

24.11.07(목) 1차 풀이

참고) 확장자명을 직접 쓰면 열릴수도있다.

 

cplusplus인거 보니까 C++ 파일인것같다.

 

 

리눅스에서 readelf -a 파일명을 입력해주면 elf파일의 정보를 볼 수 있다

 

참고: 

https://jalni-like-journey.tistory.com/entry/%EC%8B%9C%EC%8A%A4%ED%85%9C-105-%EC%8B%A4%ED%96%89%ED%8C%8C%EC%9D%BC%EC%9D%98-%EC%A2%85%EB%A5%98-PE%ED%8C%8C%EC%9D%BC-ELF%ED%8C%8C%EC%9D%BC%EB%A5%BC-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B3%A0-gdb-pwndbg-%ED%94%8C%EB%9F%AC%EA%B7%B8%EC%9D%B8-%EC%84%A4%EC%B9%98%ED%95%B4%EB%B3%B4%EC%9E%90

 

[ 시스템 105 ] 실행파일의 종류 (PE파일, ELF파일)를 알아보고 gdb, pwndbg 플러그인 설치해보자

1. 실행 파일의 종류 1.1 PE파일 ( Window ) 내용 PE(Portable Executable) 파일은 윈도우 운영체제에서 실행 가능한 파일 포맷입니다. 이 파일 포맷은 코드, 데이터, 리소스 및 메타데이터를 담고 있으며, 실

jalni-like-journey.tistory.com

 

이후 칼리 리눅스 설치를 진행하였다.

 

칼리 리눅스 설치 후 gcc(오픈 소스 컴파일러 컬렉션) 설치를 진행하였다.


24.11.12(목) 2차 풀이

1) GNU 디버거 사용

 

https://dining-developer.tistory.com/13

 

2) No debugging symbols found 문제 해결

https://stackoverflow.com/questions/5244509/no-debugging-symbols-found-when-using-gdb

 

no debugging symbols found when using gdb

GNU gdb Fedora (6.8-37.el5) Kernal 2.6.18-164.el5 I am trying to debug my application. However, everytime I pass the binary to the gdb it says: (no debugging symbols found) Here is the file ...

stackoverflow.com

질문 1에서 물어보신 "No Debugging Symbol found"는 말 그대로 디버깅을 위한 심볼이 없었다는 얘기입니다. 전처리를 끝낸 파일에는 순수한 C 코드가 있겠지요? 그 함수들 대부분은 '호출'의 형태로 점프 어드레스를 컴파일러로부터 (베이스 주소의 상대주소로) 할당받게 될 것입니다. 어셈블러로 들어가기 이전에 그 주소 부분을 '심볼'로 지정하게 되는데, '디버깅'을 위한 심볼로 각 함수의 호출 주소를 지정하지 않았다는 뜻이지요.

https://chaneyoon.tistory.com/m/291

 

심볼 없을 때 gdb 디버깅

가끔씩 포너블 문제를 풀다보면 이상하게 Break Point가 걸리지 않는 경우가 있다. 대표적으로 'ropasaurusrex' 문제가 있다. 이런 문제를 디버깅하려고 할 때는 다음과 같은 화면이 뜬다. ch4n3@ip-172-31-0-

blog.ch4n3.kr

 

심볼이 없는 이유는 Ubuntu 버전 파일을 Kali로 디버깅하려고 해서로 추측된다.

 


24.11.14(목) 3차 풀이

https://github.com/les-amateurs/AmateursCTF-Public/tree/main/2024/rev/cplusplus

 

AmateursCTF-Public/2024/rev/cplusplus at main · les-amateurs/AmateursCTF-Public

Contribute to les-amateurs/AmateursCTF-Public development by creating an account on GitHub.

github.com

라이트업을 확인하고자 했으나 없었다.

따라서 solve.py를 살펴보았다.

 

디버깅을 해보진 못했지만... 칼리 리눅스 사용법을 익힐 수 있었고 우분투 리눅스 세팅을 해놓았다.

gcc를 사용하여 디버깅을 하는 방법을 좀 익혀보았으니 다음에는 리버싱 문제를 적극적으로 풀어보고 싶다.

'Reverse Engineering > Reversing CTF' 카테고리의 다른 글

[cornCTF 2025] flags checker  (0) 2025.06.27
[picoCTF] WinAntiDbg0x200  (0) 2025.05.15
[picoCTF] WinAntiDbg0x100  (0) 2025.04.29
[Block CTF] Nothin But Stringz (미해결)  (0) 2024.11.30
[OpenECSC] fsvm  (0) 2024.11.20