for( ptr = (unsigned long)_read_lock;

                ptr < (unsigned long)&init_mm ; ptr += sizeof(void *))

        {

                p = (unsigned long *)ptr;

                if ( p[6] == (unsigned long) sys_close)

                {

                        return (void**)p;

                }

        }

기존 sys_call_table 의 위치를 찾기위해 공개심볼을 이용하는 방법중

2.6.32-41 generic 에서 "init_mm" [~~~~~} undefined 라는 경고에 봉착했고..

insmod로 모듈을 로드가 제대로 되지 않았다.. ㅠ

위의 init_mm 대신 init_task.active_mm 을 이용해보자.

        for( ptr = (unsigned long)_read_lock;

                ptr < (unsigned long)&init_task.active_mm ; ptr += sizeof(void *))

        {

                p = (unsigned long *)ptr;

                if ( p[6] == (unsigned long) sys_close)

                {

                        return (void**)p;

                }

        }

블로그 이미지

kuku_dass

,