/bin/level7을 실행하면 패스워드를 요청하는데 힌트는 저렇게 주어져 있다 일단 실행해보자
무작정 패스워드를 입력하라 한다 일단 아무거나 넣자
읭? 에러가 뜬다 /bin/wrong.txt가 없다 한다
처음엔 이게 맞는줄 알았다 혹시나 해서 해커스쿨에 들어갔는데 다음과 같은 내용이 출력됐다
이게 뭘까 힌트를 다시보니 2진수를 10진수로 바꿀수 있는가? 이다
“_”를 0으로 “-“를 1로 변환해 보면
0110 1101 0110 0001 0111 0100 0110 0101 이 나온다 이것을 다시 10진수로 바꾸면
6 D 6 1 7 4 6 5 가 나온다
일단 답에 넣어보자
답이 틀리고 아까와 같은 2진수가 출력된다
뭘까? 그러다 문득 하나가 스쳐 지나간다
이것을 두 자씩 나눠서 보면?
6D 61 74 65 아스키문자가 아닐까?
아스키 문자로 변환해보면
mate가 된다.
이것을 답에 넣어보자
다음 레벨의 패스워드가 나왔다
/bin/level7을 리버싱해보자
Level7의 권한에선 리버싱이 되지 않는다
Level8에서 리버싱을 해봤다
먼저 64바이트의 동적할당이 이뤄지고 printf문을 하나 출력한다
그리고 fget(stdin, 64) 가 실행된다 그리고 strncmp로 문자열을 비교한다 비교한 문자열과 같지않으면 아래 0x80484cd로 이동하여 system(“cat /bin/wrong.txt”)를 수행한다
Phantom@TeamH4C