Red Hat 8.0(Psyche) 모듈 프로그래밍에서 sys_call_table 사용?
글쓴이: maneul / 작성시간: 토, 2003/11/29 - 9:45오전
Red Hat 8.0에서 모듈 프로그래밍을 하고 있습니다.
커널 버전은 2.4.18-14인 거 같습니다.
system call wrapping을 하려고 하는데요,
책에 나오는
#include <sys/syscall.h>
을 넣으면 없는 파일이라고 하면서 컴파일이 안됩니다.
그래서 대신
#include <linux/syscall.h>
을 넣어서 사용하니까 컴파일이 되길래 성공한 줄 알았는데요,
insmod를 하니까
unresolved symbol sys_call_table
메시지가 뜹니다.
뭐가 잘못된 거인지를 잘 모르겠습니다.
아시는 분들 제발 가르쳐주시길 바랍니다.
Forums:
redhat 8.0 이후 배포본에서는 커널에 sys_call_table
redhat 8.0 이후 배포본에서는 커널에 sys_call_table 이 EXPORT 되어 있지 않더군요.. 따라서 커널 모듈에서 sys_call_table 을 사용할 수 없습니다.
이유는 잘 모르겠지만.... 대부분의 커널 백도어 lkm 들이 sys_call_table 을 사용하기 때문에 원천적으로 막을려고 그런것이 아닐까???? 추측......
sys_call_table 을 직접 export 시킨후에 커널을 재컴파일 하거나 (한 줄 만 추가하면 됩니다)... 아니면... 직접 sys_call_table 주소값을 사용하면...
될 것 입니다...
from saibi
[quote="new5244"]redhat 8.0 이후 배포본에서는 커널
new5244님 말씀대로입니다. 저 같은 경우는 SYMBOL table을 읽어서 sys_call_table 주소를 모듈을 올릴 때 자동적으로 올라가게 해서 처리했습니다. 잘 되더군요. 고운 하루되세요.
=========================
CharSyam ^^ --- 고운 하루
=========================
질문
저...
sys_call_table 을 직접 export 시킨후에 커널을 재컴파일
한다는건 알겠는데요,
SYMBOL table을 읽어서 sys_call_table 주소를 모듈을 올릴 때 자동적으로 올라가게 한다는건
어떻게 하는거지요?
좀 설명해 주시면 안될까요?
개념없는 초딩들은 좋은 말로 할때 DC나 웃대가서 놀아라. 응?
Re: 질문
cat /proc/ksym 이던가 하면 sys_call_table 의 주소가 있습니다.
이걸 모듈 Load 시에 파라매터로 넘겨주고 그 모듈에서는 이걸 사용하는
것입니다. 그럼 고운 하루되시길...
=========================
CharSyam ^^ --- 고운 하루
=========================
objdump -t vmlinux 혹은 cat System.map 으로
objdump -t vmlinux 혹은 cat System.map 으로 알아낼 수 있습니다.
from saibi
댓글 달기