
접속을 해서 file들을 확인하니 col, col.c, flag 파일이 있다.
hackctf에서 본 적이 있는 유형이다.
argv[1]으로 인자를 받아 check_password()의 인자로 넘겨주는데, check_password()의 반환값과 hashcode 값이 동일할 경우 flag 파일을 볼 수 있다.
check_password()의 경우 받은 인자를 int형 포인터로 형변환해 for 문을 돌려준다.
for 문을 돌리면서 4바이트씩 참조를 해 res에 값을 누적시키고 마지막에 res를 반환한다.
그리고 반환된 res와 hashcode 값(0x21DD09EC)과 동일하면 된다.
그렇기에 hashcode 값을 5로 나눠주고 그 값을 5개 붙이면 될 듯하다.
그런데 hashcode 값이 딱 나누어 떨어지지 않고 나머지가 4라서, 마지막 값에 4를 더해주면 될 것이다.
따라서 다음과 같은 형태가 될 것이다.
(0x6C5CEC8)*4 + 0x6C5CECC
'Wargame > Pwnable.kr' 카테고리의 다른 글
[Pwnable.kr] 6번 random (0) | 2021.04.08 |
---|---|
[Pwnable.kr] 5번 passcode (0) | 2021.04.08 |
[Pwnable.kr] 4번 flag (0) | 2021.04.08 |
[Pwnable.kr] 3번 bof (0) | 2021.04.01 |
[Pwnable.kr] 1번 fd (0) | 2021.04.01 |