일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- docker
- spring Batch
- programmers
- Batch
- kotest
- gcp cloud build
- 웹보안
- Baekjoon
- 네트워크
- 보안
- 웹해킹
- 회고
- 파이썬
- 시스템 해킹
- sequelize
- 리버싱
- 프로그래머스
- pwnable.xyz
- webhacking.kr
- 사이버보안
- gcp
- gcp ci/cd
- node.js
- cloud run
- nodejs
- hackctf
- 포너블
- 백준
- 스프링 배치
- Python
uju's Tech
[HackCTF]reversing_Handray 본문
<본 포스팅은 공부목적으로 작성되었습니다. 혹시 틀린 부분이 있거나 문제가 되는 부분이 있다면 답글 달아주세요!
writeup이므로 편하게 작성하였습니다!>
먼저 실행 파일을 다운 받자..!
우분투에서 먼저 파일 포맷을 확인해보자!
파일 확인
elf 64bit 실행파일임을 확인했다.
실행을 위해 777권한 부여!!
이제 실행해 보자
실행!
근데 ... flag를 뛰어넘었습니다 라는 문구가 나오면서 끝난다..
그렇다면 ida로 파일을 살펴보자..!!
ida
음 flag is %s 를 보면 string값을 가져와서 출력하는 것을 알 수있다.
그 string을 받아오는 곳이 loc_400544이다. 이 부분을 중심으로 살펴보자..!
함수를 보면 string과 array라는 2개의 배열이 있고 2개의 배열에 값을 더해준다,,string과 arryay를 더블 클릭해보니
data영역
뿅 하고 데이터 저장되어 있는 부분이 나온다,, 위의 사진은 array!
위의 사진은 string..!
여기서 정리를 해보면
필자는 arrar의 경우 ida를 보면서 하나하나 다 작성해 주었다,,(노가다..ㅠㅠ) (다른 방법으로 array를 얻는 방법이 있다면 댓글 부탁드립니다.!)
string은 파이썬으로 코드를 구현하여 구했다.
string배열 hex로 구하기
위의 코드를 통해 string배열을 구해주었다.
string은 33글자 array의 경우 31글자로 main의 코드를 보면 31까지만 대입을 해우저 string의 마지막 2글자는 그대로 출력된다!!!!
답 구하는 코드를 작성해보자~~!
flag는 공개하지 않겠습니다!!
<다른 풀이도 보고싶다면!!>
https://universe-sy.tistory.com/27
'Security > HackCTF' 카테고리의 다른 글
[HackCTF]reversing_strncmp (0) | 2020.06.13 |
---|---|
[HackCTF]reversing_Handray_쉬운 풀이 version (0) | 2020.06.13 |