Find the answer to your Linux question:
Page 2 of 5 FirstFirst 1 2 3 4 5 LastLast
Results 11 to 20 of 50
[ 3700.990900] sy3: module license 'unspecified' taints kernel. Did you ever had a look about how modules should look like? Furthermore your code is... well Code: /* YOUR INCLUDES GO ...
Enjoy an ad free experience by logging in. Not a member yet? Register.
  1. #11
    Just Joined!
    Join Date
    Jan 2010
    Posts
    13

    [ 3700.990900] sy3: module license 'unspecified' taints kernel.

    Did you ever had a look about how modules should look like?
    Furthermore your code is... well

    Code:
    /* YOUR INCLUDES GO HERE */
     
    MODULE_LICENSE("GPL");
    MODULE_AUTHOR("NAME");
    
    
    
    void** sys_call_table = (void**)0xc0577150; 
    
    static int __init readlog_init(void) 
    { 
    
    	return 0; 
    } 
    
    static void __exit readlog_exit(void)
    { 
    	// clear stuff up
    }
    
    
    
    module_init(readlog_init);
    module_exit(readlog_exit);

  2. #12
    Linux Enthusiast gerard4143's Avatar
    Join Date
    Dec 2007
    Location
    Canada, Prince Edward Island
    Posts
    714
    This is really rough..a hack that will work on an 32 bit intel chip(less than 4G of memory). The addresses for sys_call_table and __NR_sync are hard coded so if you want this to work on your machine you'll have to lookup/replace the values from your own systemmap and unistd.h.

    Note: I'm going to look at this code tonight and clean it up a little(probably a lot) and then repost it.

    Code:
    #include <linux/kernel.h>
    #include <linux/module.h>
    #include <linux/unistd.h>
    #include <linux/sched.h>
    #include <asm/uaccess.h>
    
    void** sys_call_table = (void**)0xc0631560;
    
    asmlinkage void (*original_call)(void);
    
    asmlinkage void our_sys_sync(void)
    {
    	printk("Oh yeah syncing from my kernel func!\n");
    	original_call();
    }
    
    
    void *origaddr = 0;
    void *cr3orig = 0;
    
    static unsigned int workcr3 = 0;
    static unsigned int workaddr = 0;
    static void **defaddr = 0;
    static void *dirpage = 0, *mdpage = 0;
    static unsigned int dirrw, mdrw;
    
    void setit(void)
    {
    	workcr3 = (unsigned int)cr3orig;
    	workcr3 += 0xc0000000;
    	workcr3 &= 0xfffff000;
    	workaddr = (unsigned int)origaddr;
    	workaddr = ((workaddr>>22) * 4);
    	workaddr = workaddr + workcr3;
    	defaddr = (void**)workaddr;
    	dirpage = *defaddr;
    
    	workcr3 = (unsigned int)dirpage;
    	workcr3 &= 0xfffff000;
    	workcr3 += 0x67;
    	*defaddr = (void*)workcr3;
    	dirpage = *defaddr;
    
    	workcr3 = (unsigned int)dirpage;
    	dirrw = (workcr3 & 0x2);
    	workcr3 += 0xc0000000;
    	workcr3 &= 0xfffff000;
    	workaddr = (unsigned int)origaddr;
    	workaddr &= 0x003ff000;
    	workaddr = ((workaddr>>12) * 4);
    	workaddr = workaddr + workcr3;
    	defaddr = (void**)workaddr;
    	mdpage = *defaddr;
    	
    	workcr3 = (unsigned int)mdpage;
    	workcr3 &= 0xfffff000;
    	workcr3 += 0x67;
    	*defaddr = (void*)workcr3;
    	mdpage = *defaddr;
    	mdrw = (workcr3 & 0x2);
    }
    
    void *myvoid;
    
    int init_module()
    {
    	myvoid = sys_call_table[__NR_sync];
    
    	//////////////////////////////////////
    	////////////$0xc06315f0 = 0xc0631560 + (36 * 4);
    	////////////numbers from /proc/kallsyms and __NR_sync
    	////////////////////////////////////
    
    	__asm__ __volatile__	(
    				"pushl	%ebx\n\t"
    				"pushl	%eax\n\t"
    				"movl	$0xc06315f0, %ebx\n\t"
    				"movl	%ebx, origaddr\n\t"
    				"movl	%cr3, %eax\n\t"
    				"movl	%eax, cr3orig\n\t"
    				"call	setit\n\t"
    				"popl	%eax\n\t"
    				"popl	%ebx\n\t"
    				);
    	
    	printk("__NR_sync->%d\n", __NR_sync);
    	printk("myvoid->%p\n", myvoid);
    	original_call = sys_call_table[__NR_sync];
    	sys_call_table[__NR_sync] = our_sys_sync;
    	return 0;
    }
    
    void cleanup_module()
    {
    	__asm__ __volatile__ 	(
    				"pushl	%ebx\n\t"
    				"pushl	%eax\n\t"
    				"movl	$0xc06315f0, %ebx\n\t"
    				"movl	%ebx, origaddr\n\t"
    				"movl	%cr3, %eax\n\t"
    				"movl	%eax, cr3orig\n\t"
    				"call	setit\n\t"
    				"popl	%eax\n\t"
    				"popl	%ebx\n\t"
    				);
    	sys_call_table[__NR_sync] = original_call;
    	printk("setting everything back....we're out of here!\n");
    }
    Like I said rough
    Make mine Arch Linux

  3. #13
    Just Joined!
    Join Date
    Jan 2010
    Posts
    13
    Thanks a lot for your help!

    I will have a look at your code and try to understand it
    I guess there will be questions

  4. #14
    Linux Enthusiast gerard4143's Avatar
    Join Date
    Dec 2007
    Location
    Canada, Prince Edward Island
    Posts
    714
    Some how I was able to whip this up in record time and it works on an Intel/AMD 32 bit chip with less than 4G memory and kernel version 2.6.27.37

    Code:
    #include <linux/kernel.h>
    #include <linux/module.h>
    #include <linux/unistd.h>
    
    void **sys_call_table = (void**)0xc0389a60;
    
    asmlinkage void (*original_call)(void);
    
    asmlinkage void our_sys_call(void)
    {
    	printk("This from our sync call!\n");
    	original_call();
    }
    
    void *origaddr = (void*)0;
    void *origcr3 = (void*)0;
    void *direntry = (void*)0;
    void *mdentry = (void*)0;
    
    void myfunc(void)
    {
    	__asm__ __volatile__
    	(
    	 	"pushl	%eax\n\t"
    	       	"pushl	%ebx\n\t"
    		"movl	%cr3, %eax\n\t"
    		"movl	%eax, origcr3\n\t"
    		"andl	$0xfffff000, %eax\n\t"
    		"addl	$0xc0000000, %eax\n\t"
    		"movl	origaddr, %ebx\n\t"
    		"shrl	$22, %ebx\n\t"
    		"sall	$2, %ebx\n\t"
    		"addl	%ebx, %eax\n\t"
    		"movl	(%eax), %eax\n\t"
    		"movl	%eax, direntry\n\t"
    		"andl	$0xfffff000, %eax\n\t"
    		"addl	$0xc0000000, %eax\n\t"
    		"movl	origaddr, %ebx\n\t"
    		"andl	$0x003ff000, %ebx\n\t"
    		"shrl	$12, %ebx\n\t"
    		"sall	$2, %ebx\n\t"
    		"addl	%ebx, %eax\n\t"
    		"movl	%eax, %ebx\n\t"
    		"movl	(%eax), %eax\n\t"
    		"andl	$0xfffff000, %eax\n\t"
    		"addl	$0x67, %eax\n\t"
    		"movl	%eax, (%ebx)\n\t"
    		"movl	%eax, mdentry\n\t"
    		"popl	%ebx\n\t"
    		"popl	%eax\n\t"	
    	);
    	printk("origaddr->0x%p\n", origaddr);
    	printk("origcr3-->0x%p\n", origcr3);
    	printk("direntry->0x%p\n", direntry);
    	printk("mdentry-->0x%p\n", mdentry);
    }
    
    int init_module()
    {
    	original_call = sys_call_table[__NR_sync];	
    	origaddr = &sys_call_table[__NR_sync];
    	sys_call_table[__NR_sync] = our_sys_call;
    	myfunc();
    
    	return 0;
    }
    
    void cleanup_module()
    {
    	sys_call_table[__NR_sync] = original_call;
    	printk("setting everything back...we're out of here!\n");
    }
    Like I said I whipped this up in record time but it appears to work over here...Have fun with it
    Last edited by gerard4143; 01-10-2010 at 09:01 PM.
    Make mine Arch Linux

  5. #15
    Just Joined!
    Join Date
    Jan 2010
    Posts
    13
    You are awesome!
    Thanks a lot!
    I will try it as soon as I find the time

    Would you mind explaining the assembler instructions to me, for it has been ages since I coded assembler

    by the way I found a minute to test it and i get:
    alexander@osiris:~/Desktop/testing$ dmesg
    [91614.522311] BUG: unable to handle kernel paging request at c05771e0
    [91614.522319] IP: [<e07db110>] init_module+0x20/0x40 [damn2]
    [91614.522327] *pde = 1e22f063 *pte = 00577161
    [91614.522332] Oops: 0003 [#3] SMP
    [91614.522336] last sysfs file: /sys/devices/LNXSYSTM:00/device:00/PNP0C0A:00/power_supply/BAT0/voltage_now
    [91614.522340] Modules linked in: damn2(P+) damn22(P+) damn(P+) ufs qnx4 hfsplus hfs minix ntfs msdos jfs xfs exportfs reiserfs nls_iso8859_1 nls_cp437 vfat fat usb_storage arc4 lib80211_crypt_wep cbc aes_i586 aes_generic ecb binfmt_misc ppdev vboxnetflt vboxnetadp vboxdrv snd_hda_codec_realtek snd_hda_intel snd_hda_codec snd_hwdep snd_pcm_oss snd_mixer_oss snd_pcm snd_seq_dummy snd_seq_oss snd_seq_midi snd_rawmidi snd_seq_midi_event dm_crypt snd_seq pcmcia snd_timer snd_seq_device iptable_filter ipw2200 snd ip_tables tifm_sd libipw yenta_socket tifm_7xx1 soundcore joydev rsrc_nonstatic lib80211 x_tables nvidia(P) tifm_core snd_page_alloc sony_laptop pcmcia_core psmouse serio_raw lp parport ohci1394 ieee1394 e100 mii video output intel_agp agpgart
    [91614.522411]
    [91614.522415] Pid: 29974, comm: insmod Tainted: P D (2.6.31-14-generic #48-Ubuntu) VGN-FS115M
    [91614.522419] EIP: 0060:[<e07db110>] EFLAGS: 00210246 CPU: 0
    [91614.522424] EIP is at init_module+0x20/0x40 [damn2]
    [91614.522427] EAX: c0577150 EBX: fffffffc ECX: c0207400 EDX: c05771e0
    [91614.522430] ESI: e07db4c0 EDI: 00000000 EBP: c9711f5c ESP: c9711f5c
    [91614.522433] DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
    [91614.522437] Process insmod (pid: 29974, ti=c9710000 task=c0960c90 task.ti=c9710000)
    [91614.522440] Stack:
    [91614.522442] c9711f88 c010112c e07db4c0 c0750a50 fffffffc e07db4c0 0024fff4 e07db0f0
    [91614.522450] <0> fffffffc e07db4c0 0024fff4 c9711fac c0173751 c5ce6c78 c0960c90 c5ce6c40
    [91614.522458] <0> 00000004 084af018 084af018 00004000 c9710000 c010336c 084af018 00000c09
    [91614.522467] Call Trace:
    [91614.522474] [<c010112c>] ? do_one_initcall+0x2c/0x190
    [91614.522480] [<e07db0f0>] ? init_module+0x0/0x40 [damn2]
    [91614.522486] [<c0173751>] ? sys_init_module+0xb1/0x1f0
    [91614.522491] [<c010336c>] ? syscall_call+0x7/0xb
    [91614.522493] Code: df c9 c3 90 8d b4 26 00 00 00 00 a1 b4 b4 7d e0 55 89 e5 8b 88 90 00 00 00 8d 90 90 00 00 00 89 15 1c b6 7d e0 89 0d 2c b6 7d e0 <c7> 80 90 00 00 00 30 b1 7d e0 e8 11 ff ff ff 31 c0 5d c3 8d b6
    [91614.522537] EIP: [<e07db110>] init_module+0x20/0x40 [damn2] SS:ESP 0068:c9711f5c
    [91614.522543] CR2: 00000000c05771e0
    [91614.522548] ---[ end trace 1192dc2e53bb49f0 ]---
    Of course I changed the sys_call_table adress to mine.
    I am running:

    alexander@osiris:~/Desktop/testing$ uname -a
    Linux osiris 2.6.31-14-generic #48-Ubuntu SMP Fri Oct 16 14:04:26 UTC 2009 i686 GNU/Linux

  6. #16
    Linux Enthusiast gerard4143's Avatar
    Join Date
    Dec 2007
    Location
    Canada, Prince Edward Island
    Posts
    714
    It could be that the kernel has changed between:

    Linux localhost 2.6.27.37-desktop-1mnb #1 SMP Tue Oct 13 13:33:31 EDT 2009 i686 Pentium II (Klamath) GNU/Linux

    and your's

    Linux osiris 2.6.31-14-generic #48-Ubuntu SMP Fri Oct 16 14:04:26 UTC 2009 i686 GNU/Linux

    Or you may be using the wrong sys_call_table address did you use the value in /proc/kallsyms

    Also this one line speaks volumes -
    [91614.522311] BUG : unable to handle kernel paging request at c05771e0

    Also - are you running Linux as the main OS or are you running it via say Virtual Box?
    Last edited by gerard4143; 01-10-2010 at 08:29 PM.
    Make mine Arch Linux

  7. #17
    Linux Enthusiast gerard4143's Avatar
    Join Date
    Dec 2007
    Location
    Canada, Prince Edward Island
    Posts
    714
    I tried loading this module via Virtual Box via Slackware 12.2 and you know what...It worked. Here's a screenshot you can see the uname -r near the bottom

    http://img705.imageshack.us/img705/4...reenshotro.png

    So this will work on both Mandriva 2009.0 and Slackware 12.2 running Intel/AMD 32 bit kernels 2.6.27.x. and less than 4G of RAM.

    Just tried the module on a Mandriva 2009.1 kernel 2.6.29.1-desktop586-4mnb and it worked fine.
    Last edited by gerard4143; 01-11-2010 at 01:33 AM.
    Make mine Arch Linux

  8. #18
    Just Joined!
    Join Date
    Jan 2010
    Posts
    23
    And my code and results:


    Code:
    #include <linux/kernel.h>
    #include <linux/module.h>
    #include <linux/unistd.h>
    
    void **sys_call_table = (void**)0xc0577150;
    
    asmlinkage void (*original_call)(void);
    
    asmlinkage void our_sys_call(void)
    {
    	printk("************This from our sync call*************!\n");
    	original_call();
    }
    
    void *origaddr = (void*)0;
    void *origcr3 = (void*)0;
    void *direntry = (void*)0;
    void *mdentry = (void*)0;
    
    void myfunc(void)
    {
    	__asm__ __volatile__
    	(
    	 	"pushl	%eax\n\t"
    	       	"pushl	%ebx\n\t"
    		"movl	%cr3, %eax\n\t"
    		"movl	%eax, origcr3\n\t"
    		"andl	$0xfffff000, %eax\n\t"
    		"addl	$0xc0000000, %eax\n\t"
    		"movl	origaddr, %ebx\n\t"
    		"shrl	$22, %ebx\n\t"
    		"sall	$2, %ebx\n\t"
    		"addl	%ebx, %eax\n\t"
    		"movl	(%eax), %eax\n\t"
    		"movl	%eax, direntry\n\t"
    		"andl	$0xfffff000, %eax\n\t"
    		"addl	$0xc0000000, %eax\n\t"
    		"movl	origaddr, %ebx\n\t"
    		"andl	$0x003ff000, %ebx\n\t"
    		"shrl	$12, %ebx\n\t"
    		"sall	$2, %ebx\n\t"
    		"addl	%ebx, %eax\n\t"
    		"movl	%eax, %ebx\n\t"
    		"movl	(%eax), %eax\n\t"
    		"andl	$0xfffff000, %eax\n\t"
    		"addl	$0x67, %eax\n\t"
    		"movl	%eax, (%ebx)\n\t"
    		"movl	%eax, mdentry\n\t"
    		"popl	%ebx\n\t"
    		"popl	%eax\n\t"	
    	);
    	printk("origaddr->0x%p\n", origaddr);
    	printk("origcr3-->0x%p\n", origcr3);
    	printk("direntry->0x%p\n", direntry);
    	printk("mdentry-->0x%p\n", mdentry);
    }
    
    int init_module()
    {
    	original_call = sys_call_table[__NR_sync];	
    	origaddr = &sys_call_table[__NR_sync];
    	sys_call_table[__NR_sync] = our_sys_call;
    	myfunc();
    
    	return 0;
    }
    
    void cleanup_module()
    {
    	sys_call_table[__NR_sync] = original_call;
    	printk("setting everything back...we're out of here!\n");
    }



    and results(dmesg) and it is killed after insmod.

    Code:
    [ 2240.469943] BUG: unable to handle kernel paging request at c05771e0
    [ 2240.469943] IP: [<f2853110>] init_module+0x20/0x40 [sy3]
    [ 2240.469943] *pde = 3037f063 *pte = 00577161 
    [ 2240.469943] Oops: 0003 [#1] SMP 
    [ 2240.469943] last sysfs file: /sys/devices/virtual/block/ram9/uevent
    [ 2240.469943] Modules linked in: sy3(P+) binfmt_misc vmblock vsock vmmemctl vmhgfs pvscsi acpiphp snd_ens1371 gameport snd_ac97_codec ac97_bus snd_pcm_oss iptable_filter ip_tables x_tables snd_mixer_oss snd_pcm snd_seq_dummy snd_seq_oss shpchp ppdev parport_pc psmouse vmci snd_seq_midi snd_rawmidi i2c_piix4 lp snd_seq_midi_event serio_raw snd_seq snd_timer snd_seq_device snd soundcore snd_page_alloc parport floppy pcnet32 vmxnet mii mptspi mptscsih mptbase scsi_transport_spi intel_agp agpgart [last unloaded: sy3]
    [ 2240.469943] 
    [ 2240.469943] Pid: 3113, comm: insmod Tainted: P           (2.6.31-14-generic #48-Ubuntu) VMware Virtual Platform
    [ 2240.469943] EIP: 0060:[<f2853110>] EFLAGS: 00010246 CPU: 1
    [ 2240.469943] EIP is at init_module+0x20/0x40 [sy3]
    [ 2240.469943] EAX: c0577150 EBX: fffffffc ECX: c0207400 EDX: c05771e0
    [ 2240.469943] ESI: f28534e0 EDI: 00000000 EBP: f0c11f5c ESP: f0c11f5c
    [ 2240.469943]  DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
    [ 2240.469943] Process insmod (pid: 3113, ti=f0c10000 task=f01e25b0 task.ti=f0c10000)
    [ 2240.469943] Stack:
    [ 2240.469943]  f0c11f88 c010112c f28534e0 c0750a50 fffffffc f28534e0 00c2aff4 f28530f0
    [ 2240.469943] <0> fffffffc f28534e0 00c2aff4 f0c11fac c0173751 efcd98b8 f01e25b0 efcd9880
    [ 2240.469943] <0> 00000004 09727018 09727018 00004000 f0c10000 c010336c 09727018 00000c25
    [ 2240.469943] Call Trace:
    [ 2240.469943]  [<c010112c>] ? do_one_initcall+0x2c/0x190
    [ 2240.469943]  [<f28530f0>] ? init_module+0x0/0x40 [sy3]
    [ 2240.469943]  [<c0173751>] ? sys_init_module+0xb1/0x1f0
    [ 2240.469943]  [<c010336c>] ? syscall_call+0x7/0xb
    [ 2240.469943] Code: cd c9 c3 90 8d b4 26 00 00 00 00 a1 cc 34 85 f2 55 89 e5 8b 88 90 00 00 00 8d 90 90 00 00 00 89 15 3c 36 85 f2 89 0d 4c 36 85 f2 <c7> 80 90 00 00 00 30 31 85 f2 e8 11 ff ff ff 31 c0 5d c3 8d b6 
    [ 2240.469943] EIP: [<f2853110>] init_module+0x20/0x40 [sy3] SS:ESP 0068:f0c11f5c
    [ 2240.469943] CR2: 00000000c05771e0
    [ 2240.469943] ---[ end trace ef8558978e8f11a4 ]---
    This is before insmod my module:

    baron@baron:~$ cat /proc/kallsyms | grep sys_call_table
    c0577150 R sys_call_table

    This is after insmod my module

    baron@baron:~$ cat /proc/kallsyms | grep sys_call_table
    c0577150 R sys_call_table
    f28534cc d sys_call_table [sy3]
    baron@baron:~$


    (sy3 is the module's name)
    The system is Ubuntu 9.10 with kernel 2.6.31-14-generic(default) on vmware on Windows 7.

  9. #19
    Linux Enthusiast gerard4143's Avatar
    Join Date
    Dec 2007
    Location
    Canada, Prince Edward Island
    Posts
    714
    I don't know what to tell you, because I installed Mandriva 2010 32 bit via Virtual Box and look at the results - the kernel is 2.6.31.6-desktop-1mnb - it worked perfectly

    http://img37.imageshack.us/img37/1144/screenshotzfb.png

    All I can say is both your kernel page faults occur at the same address - are you running the same machines?
    Make mine Arch Linux

  10. #20
    Just Joined!
    Join Date
    Jan 2010
    Posts
    23
    No, I don't even know him : reason of the same adress is possibly because of same os and same kernel.

    sys_call_table[__NR_sync] = our_sys_call;
    this part gives us error.
    I don't understand, but there are people that get the same error on the internet.

    But whatever I am downloading mandriva 2010 and all I'll do are these:

    Quote Originally Posted by gerard4143 View Post
    Some how I was able to whip this up in record time and it works on an Intel/AMD 32 bit chip with less than 4G memory and kernel version 2.6.27.37

    Code:
    #include <linux/kernel.h>
    #include <linux/module.h>
    #include <linux/unistd.h>
    
    void **sys_call_table = (void**)0xc0389a60;
    
    asmlinkage void (*original_call)(void);
    
    asmlinkage void our_sys_call(void)
    {
    	printk("This from our sync call!\n");
    	original_call();
    }
    
    void *origaddr = (void*)0;
    void *origcr3 = (void*)0;
    void *direntry = (void*)0;
    void *mdentry = (void*)0;
    
    void myfunc(void)
    {
    	__asm__ __volatile__
    	(
    	 	"pushl	%eax\n\t"
    	       	"pushl	%ebx\n\t"
    		"movl	%cr3, %eax\n\t"
    		"movl	%eax, origcr3\n\t"
    		"andl	$0xfffff000, %eax\n\t"
    		"addl	$0xc0000000, %eax\n\t"
    		"movl	origaddr, %ebx\n\t"
    		"shrl	$22, %ebx\n\t"
    		"sall	$2, %ebx\n\t"
    		"addl	%ebx, %eax\n\t"
    		"movl	(%eax), %eax\n\t"
    		"movl	%eax, direntry\n\t"
    		"andl	$0xfffff000, %eax\n\t"
    		"addl	$0xc0000000, %eax\n\t"
    		"movl	origaddr, %ebx\n\t"
    		"andl	$0x003ff000, %ebx\n\t"
    		"shrl	$12, %ebx\n\t"
    		"sall	$2, %ebx\n\t"
    		"addl	%ebx, %eax\n\t"
    		"movl	%eax, %ebx\n\t"
    		"movl	(%eax), %eax\n\t"
    		"andl	$0xfffff000, %eax\n\t"
    		"addl	$0x67, %eax\n\t"
    		"movl	%eax, (%ebx)\n\t"
    		"movl	%eax, mdentry\n\t"
    		"popl	%ebx\n\t"
    		"popl	%eax\n\t"	
    	);
    	printk("origaddr->0x%p\n", origaddr);
    	printk("origcr3-->0x%p\n", origcr3);
    	printk("direntry->0x%p\n", direntry);
    	printk("mdentry-->0x%p\n", mdentry);
    }
    
    int init_module()
    {
    	original_call = sys_call_table[__NR_sync];	
    	origaddr = &sys_call_table[__NR_sync];
    	sys_call_table[__NR_sync] = our_sys_call;
    	myfunc();
    
    	return 0;
    }
    
    void cleanup_module()
    {
    	sys_call_table[__NR_sync] = original_call;
    	printk("setting everything back...we're out of here!\n");
    }
    Like I said I whipped this up in record time but it appears to work over here...Have fun with it
    I'll use this code and just change the adress of sys_call_table

    baron@baron:~$ cat /proc/kallsyms | grep sys_call_table
    c0577150 R sys_call_table

    so my adress is c0577150 and I'll write this

    void **sys_call_table = (void**)0xc0577150;

    and make and insmod it. When I try, I'll write the result here. Thanks very much to you. It' means a lot to me.

Page 2 of 5 FirstFirst 1 2 3 4 5 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •