본문 바로가기
Pwnable/Bandit

[Bandit Level 8 -> 9] sort, uniq 명령어 사용하기

by secumark 2021. 6. 9.
728x90

* 전에 정리해놓은것들 한꺼번에 올림.

 

 

 

 

 

data.txt 파일 내에 오직 한 줄만? 있는 내용이 있다.

 

 

 

도움되는 자료는 Piping and Redirection.. 여기서 참고해도 되는데 sort, uniq 사용법만 알아도 충분히 풀 수 있다.

 

 

 

파이프는 아마 grep 명령어에서 자주 사용되는 | 이 기호를 말하는 것 같다.

 

cat data.txt | grep word

 

 

이런식으로 쓰이는데, data.txt에 있는 내용중에 word라는 문자열이 들어가면 출력해주는 것이다.

 

 

근데 이것만 보면 해결이 안되니까 가장 중요한 명령어 sort와 uniq의 정의를 알아보자.

 

 

sort 명령어는 말 그대로 정렬을 해주는 명령언데, 디폴트 값은 오름차 순으로 정렬하도록 되어있다.

내림차로 정리하려면 -r 명령어를 사용하면 된다.

 

uniq 명령어는 중복되는 내용이 있으면 하나만 남기고 모두 제거해서 출력한다. 그런데 그 중복된 내용 행이 서로 붙어있을 때만 인식이 가능하고, 분산되어 있을 땐 모르기 때문에 sort랑 같이 쓰일 때가 많다고 한다. (sort로 정렬 후 중복되는 내용 삭제) 설명만들으면 어려운데 직접 해보면 깔끔하게 잘 정리되어 나와서 굉장히 신기했다.

 

 

이 명령어들을 활용해보라고 했으니 일단 sort 명령어부터 사용해봤다.

 

 

sort data.txt

 

 

 

앞서 공부했던 것처럼 오름차순으로 정렬해주는데, 중복되는 내용이 여러개 출력되고 있는걸 확인할 수 있다. 

 

 

그리고 uniq 명령어 중에서는 -c 옵션이 같은 라인이 몇 번 나오는지 보여준다고 하길래 sort로 먼저 정렬을 해주고, 그 다음 uniq -c까지 함께 적용해봤다.

 

 

 

 

 

 

 

같은 값들이 모두 10번씩 반복되고 있다는 것을 알 수 있다.

 

 

 

 

 

그 중에서 딱 한 줄만 출력되는 값이 있는데 바로 이 값이 비밀번호가 되는거다!!

 

 

 

만약 sort 정렬을 먼저 해주지 않고, uniq -c만 하게 되면 

 

 

 

 

이렇게 모든 값들이 중복되는게 없는 것처럼 나온다.

위 아래로 붙어있는 경우에만 검사를 하기 때문!

sort를 꼭 먼저 사용해주기.

 

 

 

Level 8 클리어!

 

728x90

댓글