커널 부분에서 3단계까지는 .0과 .1단계의 풀이 방법에 큰 차이가 없으므로 .0단계의 풀이만 작성한다.

vm connect로 연결을 한다. 처음에 이거 몰라서 시작을 못했다...

dmesg로 커널 기록을 보면 /proc/pwncollege로 입력 출력을 한다.

ida로 babykernel_level1.0.ko를 보면 device_write 함수가 다음과 같다.
입력값이 fkhtrspiouaqujje와 비교하고 있다.
그러면 echo로 입력을 줘보고 출력해보자
echo -n "fkhtrspiouaqujje" > /proc/pwncollege
cat/proc/pwncollege

플레그가 나온다.

/proc/pwncollege로 입력 출력하는 것은 같다.
ida로 babykernel_level2.0.ko를 보면

사실상 1단계랑 차이가 없어보인다.

하지만 input/output 에러가 난다.
이떄 dmesg를 다시 해보면

플레그가 있다.

올바른 값을 넣으면 win 함수가 실행된다.

write에서 값을 알 수 있다.

win 함수를 보면 root권한을 주는 코드이다.

입력을 주고 dmesg를 보면

root가 되었다고 한다.
그러면 flag를 cat로 보면 된다.
