2015-01-16 9 views
0

리눅스 커널에서 __do_page_fault() 메소드를 가로 채려고합니다. kp.addrdo_page_fault를 가로채는 Kprobe 메커니즘

kp.addr = (kprobe_opcode_t *) kallsyms_lookup_name("__do_page_fault"); 

를 형성 kprobes 레지스터의 법선 방향, 즉 작동되지 않는다. 이 작업을 수행하는 적절한 방법은 무엇입니까?

편집 : do_page_fault를 차단하는 다른 방법도 나를 위해 작동합니다.

+0

"작동하지 않음"이란 의미를 지정하십시오. 오류가 있습니까? 다른 것? – ptd

+0

insmod에서 "오류 : 모듈을 삽입 할 수 없습니다. : 잘못된 매개 변수" – user1344

+0

질문을 편집하여 전체 모듈을 붙여 넣으십시오. –

답변

1

이 오류는 일반적으로 GPL 라이센스가 모듈에서 사용되지 않을 때 발생합니다. 모듈에 다음 줄을 추가하면이 오류가 제거됩니다.

MODULE_LICENSE("GPL"); 
MODULE_LICENSE("GPL v2"); 
+0

글쎄, 최근 커널에서 (적어도) 찾고 있습니다. 4.4.0-rc6 소스), __do_page_fault 루틴은 NOKPROBE_SYMBOL (__ do_page_fault)로 표시됩니다. 매크로를 함수 정의의 끝에 추가하십시오. /sys/kernel/debug/kprobes/blacklist가 블랙리스트에 있음을 확인합니다. 그래서 궁금 해서요, 어떻게 작동합니까 ?? – kaiwan