[pwnable.kr] collision
2020.05.05
pwnable.kr collision 시작! col.c 파일을 읽어보자. 24 번째 줄의 if 문을 보면 hashcode 와 check_password( argv[1] ) 의 값이 같으면 flag 를 출력해주는 것을 알 수 있다. 그리고 19 번째 줄의 if 문을 보면 argv[1] 은 20 byte 이어야 한다. check_password() 함수를 보면 입력받은 argv[1] 입력값을 int 인 4 byte 씩 5번으로 나눈 뒤 더해서 리턴해주고 있다. 즉, 입력한 값을 4 byte 씩 5등분하여 더한 값이 0x21DD09EC 이어야 한다. 0x21DD09EC 이 정확히 5등분 되지 않기 때문에 적당히 나누면 될 것 같다. 그래서 다음과 같이 나눌 수 있다. 0x01010101 * 4 + 0x1DD9..