작동하지 이용한다. 내가 취약한 커널 모듈의 버퍼 오버 플로우하려고하는 경우에는이 잘 작동하지 않습니다. 다음은 내가하는 일입니다.버퍼 오버 플로우는 내가 과거에 사용자 수준의 프로세스에 대한 버퍼 오버 플로우 공격을 수행 한 커널 모듈
파일로 열어 읽고 쓸 수있는 취약한 커널 모듈이 있습니다. 쓰기 작업은 경계 검사없이 수행됩니다. 그래서 쓰기 작업을하고 버퍼 오버 플로우 내 쉘 코드가있는 환경 변수의 주소로 복귀 주소를 덮어 씁니다. 그러나 뭔가 잘못되고 있습니다. 커널이 충돌하고 재부팅 한 후에/var/log/messages를 열었고 eip가 내가 겹쳐 쓴 주소를 정확하게 가리키고 있음을 발견했습니다. 하지만 여전히 "가상 주소에서 커널 널 포인터 역 참조를 처리 할 수 없습니다"라는 메시지가 나타납니다. 이것이 일어나는 이유는 무엇입니까? 컨트롤이 덮어 쓰여진 반송 주소로 리디렉션되지 않는 이유는 무엇입니까?
참고 : 나는 exec-shield 및 ASLR 기능을 해제 한 상태에서 redhat enterprise linux에서 실행했습니다. 그것은 사용자 공간 상이한 구성 (예를 들어, 다른 페이징 테이블, CPU 권한 비트 등)가 특권 모드에서 실행되기 때문에
security.stackexchange.com에 더 적합 할 수도 있습니다. – bstpierre
@bstpierre 그것을 인식하지 못했습니다 .. 감사합니다. –