Hi,<br>Thank all of you for helping me with problem!<br>I don&#39;t want to modify my kernel source so I am trying to learn to use LSM security hook even though it seems that it couldn&#39;t hook all the system calls, I think it should be enough for me.<br>

Thanks again!<br><br><br><br><div class="gmail_quote">On Wed, Nov 23, 2011 at 8:02 PM, rohan puri <span dir="ltr">&lt;<a href="mailto:rohan.puri15@gmail.com">rohan.puri15@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<br><br><div class="gmail_quote"><div><div class="h5">On Wed, Nov 23, 2011 at 3:57 PM, Alexandru Juncu <span dir="ltr">&lt;<a href="mailto:alex.juncu@rosedu.org" target="_blank">alex.juncu@rosedu.org</a>&gt;</span> wrote:<br>

</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">
<div>On Wed, Nov 23, 2011 at 12:10 PM, Daniel Baluta &lt;<a href="mailto:daniel.baluta@gmail.com" target="_blank">daniel.baluta@gmail.com</a>&gt; wrote:<br>
&gt; On Wed, Nov 23, 2011 at 11:22 AM, Alexandru Juncu &lt;<a href="mailto:alex.juncu@rosedu.org" target="_blank">alex.juncu@rosedu.org</a>&gt; wrote:<br>
&gt;&gt; On Wed, Nov 23, 2011 at 10:40 AM, Geraint Yang &lt;<a href="mailto:geraint0923@gmail.com" target="_blank">geraint0923@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt; Hello everyone,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I am going to hook a system call like &#39;read&#39; or &#39;send&#39; by modifying the<br>
&gt;&gt;&gt; sys_call_table, but it seems that the sys_call_table is in read only page,<br>
&gt;&gt;&gt; how can I set modify the sys_call_table ? Or if there any method that I can<br>
&gt;&gt;&gt; use to hook a system call in module without modify the kernel source?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Thanks!<br>
&gt;&gt;<br>
&gt;&gt; On a 2.6.35 kernel, it worked for me just by changing an entry in the<br>
&gt;&gt; sys_call_table, within a kernel module.  Something like this:<br>
&gt;<br>
&gt; Alex,<br>
&gt; I am pretty sure that you are using a hacked version of 2.6.35.<br>
&gt;<br>
&gt; Geraint,<br>
&gt; In order to be able to hook a syscall you must do the following:<br>
&gt;<br>
&gt; 1. export syscall_table in arch/x86/kernel/i386_ksyms_32.c<br>
&gt;<br>
&gt; extern void* sys_call_table[];<br>
&gt; EXPORT_SYMBOL(sys_call_table);<br>
&gt;<br>
&gt; 2. make sys_call_table writebale. In arch/x86/kernel/entry_32.S<br>
&gt; you must have:<br>
&gt;<br>
&gt; .section .data,&quot;a&quot;<br>
&gt; #include &quot;syscall_table_32.S&quot;<br>
&gt;<br>
&gt; thanks,<br>
&gt; Daniel.<br>
&gt;<br>
<br>
</div>Ah, Daniel is right... I forgot about that part...<br>
</div></div><div><div></div><div><br><div class="im">
_______________________________________________<br>
Kernelnewbies mailing list<br>
<a href="mailto:Kernelnewbies@kernelnewbies.org" target="_blank">Kernelnewbies@kernelnewbies.org</a><br>
<a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" target="_blank">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br>
</div></div></div></blockquote></div><br><div>You can get the address of the sys_call_table from the /proc/kallsyms and regarding the read-only section of the this symbol you can re-map the addresses by making use of vmap api in kernel. This will avoid the need for the compilation of the kernel. But I would not recommend you to do this. Their is LSM framework specifically available for this try to see if you can make use of that.</div>


<div><br></div><div>Regards,</div><span class="HOEnZb"><font color="#888888"><div>Rohan Puri</div>
</font></span></blockquote></div><br><br clear="all"><br>-- <br><div style="text-align:left">Geraint Yang <br>Tsinghua University Department of Computer Science and Technology</div>
<div><br></div><br>