pwnable-col
char은 1byte, int는 4byte입니다.
aaaabbbbccccddddeeee를 아규먼트로 주고 실행하면 ip[0]=aaaa로 61616161이 되고
ip[1]=bbbb로 62626262가 되는식으로 코드가 진행됩니다.
따라서 아규먼트 20byte를 4byte씩 hex값으로 5번 더한 것이 저 hashcode의 변수 값이 되어야 합니다.
hash collision은 인터넷에 겁색해보면 자세히 나옵니다. 간단히 말하면 hash값이 같은 또 다른 수 가있으면 hash collision이라 합니다.
문제에 md5가 있길래 저 hashcode값을 문자열로 바꿔 md5 해시값을 얻은 값과 같은 문자열을 찾아야 하는줄 알고 엄청 시간을 써서 암호화하고 별짓을 다하다 쉽게 생각하기로 하고 5번을 더하니 5로 나누었고 나머지가 4가 생기더군요, 즉 hashcode= x+x+x+x+x+4였습니다. x는 직접 구해보세요(계산기 실행시키면 나와요) 그래서 그 값을 hex로 바꾸어 인자로 넣어주었습니다.
왜 20개를 너었는데 안되지 하고 한시간을 고민했는데 /c 로 맨 마지막을 썻더군요. 결국 찾아서 인증했더니 답이였습니다.
이 문제는 답이 많은 문제라고 생각합니다. 저랑 다르게 인자를 넣어 성공한 분들도 많았습니다.
0 개의 댓글