zer0pts 2021 - not beginners rev
2021. 3. 12. 05:28ㆍ0x07 CTF/[스스로 푼 것]
728x90
새벽에 잠이 안와서 최근 대회 문제 중 zer0pts의 문제를 풀어보기로 했다. 14명 밖에 풀지 못하여 꽤 어려울 거 같지만 도전!
오늘의 컨셉은 실시간으로 푸는 듯한 컨셉으로 진행한다. 며칠이 걸릴 수도 있다...
시작 시간 : 12 March 4:00 AM (SGT)
1. 프로그램 취지를 파악하라.
프로그램의 취지를 파악하기 좋은 방법 중 하나는 직접 실행해보는 것이다. 2번의 실행을 통해 고정 값이 3개임을 파악할 수 있다.
- 입력 값 한번 입력하는 구간 존재
- 입력 값을 통해 특정 연산을 취하는 구간 존재
2. 고정 된 3개의 값은 어디에?
상단의 동적분석에서 얻게 된 값이 어디에 있는지 파악해보면 좋을 거 같다는 생각을 할 수 있다.
0x5aaf63e5c1f262bf, 0xa967ff06da3b455c, 0xee8d95ecc2ae3151
그전에 Lucky ! 해당 바이너리는 non strip 상태이다. 입력함수에 브레이크 포인트를 쉽게 설치할 수 있다.
입력 값을 hello로 주었을 때 R13 레지스터에 hello의 시작주소가 들어가게 된다.
아래의 2개 사진은 무슨 값인지 잘 모르겠다.
잠깐? stack_shadow는 뭘까?
- 스택에 저장 된 반환주소가 변조되지 않도록 보호하는 것
위의 2개의 사진은
>>> hex(0x6a09e667f3bcc908^0xe23d6f05889479ca)
'0x883489627b28b0c2L' 아직 위에서 바라 봤던 고정 값이 아니다.
main 코드가 너무 긴 것 같으니 정적으로 쓱 훑어보면, ........
다른 거 할일이 있어 to be continue...
'0x07 CTF > [스스로 푼 것]' 카테고리의 다른 글
HacktheBox CTF coding problem (0) | 2021.04.24 |
---|---|
AeroCTF2021 Dummyper (0) | 2021.03.02 |
[REV] COMPEST - CreeptiCity (0) | 2020.09.12 |
HexionCTF XOR - Crypto (0) | 2020.04.18 |
ISITDTU CTF Reversing inter (0) | 2018.08.03 |