From: JinShan Xiong <jinshan.xiong@gmail.com>
To: linux-ia64@vger.kernel.org
Subject: Re: About intercepting linux system call
Date: Fri, 28 Jan 2005 04:05:43 +0000 [thread overview]
Message-ID: <b3b26beb050127200512f148d6@mail.gmail.com> (raw)
In-Reply-To: <b3b26beb05012620543066d40@mail.gmail.com>
Hi David,
Thanks for your help. I can intercept the time function now.
But the kernel crashed when I tried to de-install the module. I
declared the old_time as:
static unsigned long old_time;
and in init_module:
old_time = sys_call_table[__NR_gettimeofday - 1024];
....
and then in cleanup_module:
sys_call_table[__NR_gettimeofday - 1024] = old_time.
Why can't it work?
And I tried to declare the old_time as a function pointer and restore
the syscall entry like:
sys_call_table[__NR_gettimeofday - 1024] = ((struct fptr *)&old_time)->ip;
it can't work too.
Regards,
JinShan
On Thu, 27 Jan 2005 18:10:36 -0800, David Mosberger
<davidm@napali.hpl.hp.com> wrote:
> >>>>> On Fri, 28 Jan 2005 10:04:33 +0800, JinShan Xiong <jinshan.xiong@gmail.com> said:
>
> JinShan> Hi David, I don't know how to use the stub code, I have
> JinShan> tried to copy it to overload sys_gettimeofday(), like this,
>
> JinShan> memcpy(sys_call_table[__NR_gettimeofday - 1024],
> JinShan> new_time_stub, 32),
>
> JinShan> it crashed the kenrel also.
>
> JinShan> Please help me!
>
> sys_call_table[__NR_gettimeofday - 1024] would have to be set to the
> entry-point of new_time_stub. If you declare new_time_stub as a
> function, you'd have to do this like so:
>
> extern void new_time_stub (whatever...);
> struct fptr { void *ip, void *gp };
>
> sys_call_table[__NR_gettimeofday - 1024] > ((struct fptr *) &new_time_stub)->ip;
>
> --david
>
>
prev parent reply other threads:[~2005-01-28 4:05 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-01-27 4:54 About intercepting linux system call JinShan Xiong
2005-01-27 5:27 ` Randy.Dunlap
2005-01-27 5:32 ` David Mosberger
2005-01-27 7:17 ` JinShan Xiong
2005-01-27 12:29 ` JinShan Xiong
2005-01-28 2:04 ` JinShan Xiong
2005-01-28 2:10 ` David Mosberger
2005-01-28 4:05 ` JinShan Xiong [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=b3b26beb050127200512f148d6@mail.gmail.com \
--to=jinshan.xiong@gmail.com \
--cc=linux-ia64@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.