col.c 소스 코드의 중요한 부분은 위와 같음. check_password()함수의 반환값과 표시한 hashcode 값 0x21DD09EC와 같으면 flag를 출력해준다.
argv[1]로 전달한 20 byte 짜리 문자열을 전달하고 이를 int형 포인터 변수로 가리켜 res변수에 5번 더해준다.
명시적 형변환과 char형 포인터 변수와 int형 포인터 변수의 차이점만 알면 아주 쉽게 풀 수 있다.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
위와 같은 20 byte 배열을 int형 포인터 변수로 가리키게 되면...
|
|
|
|
|
이렇게 보이게 되것지... ip[0]부터 한칸씩이다. 익스 ㄱㄱ
간단하다. 걍 hashcode 나누기 5해서 더하며 끝... 나머지 있으므로 신경쓰면 됌..
flag 짜잔~~
'Wargame > Pwnable.kr' 카테고리의 다른 글
Pwnable.kr mistake-1pt (0) | 2017.04.13 |
---|---|
Pwnable.kr random-1pt (0) | 2017.04.13 |
Pwnable.kr flag-7pt (0) | 2017.04.12 |
Pwnable.kr bof-5pt (0) | 2017.04.12 |
Pwnable.kr fd-1pt (0) | 2017.04.11 |