목록System (72)
y0u_bat
[Pwnable.kr] collision - 3pt 풀이 check_password() 함수의 인자는 포인터로 받는다. 즉 주소인 4바이트로 나눠서 받는다. argv[1]가 무조건 20바이트여야 된다. check_password(argv[1])와 hashcode와 동일하게 맞쳐주면 플래그가 출력된다. check_password함수는 4바이트로 나눠서 받기 때문에 hashcode를 5로 나눠보았다. 저렇게 나오는것을 알 수 있다. 한번 다시 5로 곱해 보았다. 원본값에서 -4된 값이 나오는걸 볼 수 있다.왜 그런건지는 모르겠지만 그렇게 나왔다. check_password함수에서 4바이트로 나눠서 받고 그것을 res에 다 더하기 때문에,hash값을 5로 나눈뒤 그 값인 0x6c5cec8을 4번 0x6c5ce..
[Pwnable.kr] fd - 1pt 풀이 리눅스 파일디스크럽터에 대해 아냐고 물어본다. 파일 디스크럽터에 대한 문제 인가보다. 파일 디스크럽터에 대해 알아야된다.http://y0ubat.tistory.com/31 - 설명 접속해서 fd.c 를 보았다. 우선 argv[1] 에 입력을 해야되고,read(fd,buf,32); 에 의해 buf에 32글자까지 입력가능하다. 만약에 buf가 LETMEWIN 이면 flag을 읽고 아니면 file IO에 대해 배우라는 문장이 뜨고 종료한다. int fd = atoi(argv[1]) -0x1234; 여기서 atoi라는 함수가 나온다.http://y0ubat.tistory.com/30 - 설명 파일 디스크럽터0 stdin - 입력1 stdout - 출력2 stderr ..