LINUX.ORG.RU

Поиск адреса system_call_table

 


0

1

Разбираю вот этот пример http://www.opennet.ru/base/dev/intercept_lnx.txt.html пункт 5. Выполняя вот это вот шаманство

# gdb -q /usr/src/linux-3.3.8-gentoo/vmlinux
Reading symbols from /usr/src/linux-3.3.8-gentoo/vmlinux...(no debugging symbols found)...done.
(gdb) disas system_call
Получаю совсем не то, что в примере, а вот это
No function contains specified address.
В чем дело, куда подевалась функция? У генты своя атмосфера? PS 3.3.8-gentoo

★★★
Ответ на: комментарий от ziemin

нет

Reading symbols from /usr/src/linux-3.7.4-pf/vmlinux...(no debugging symbols found)...done.
(gdb) disas system_call
Dump of assembler code for function system_call:
   0xc135caf4 <+0>:	lea    0x0(%esi),%esi
   0xc135caf7 <+3>:	push   %eax
   0xc135caf8 <+4>:	cld    
   0xc135caf9 <+5>:	push   $0x0
   0xc135cafb <+7>:	push   %fs
   0xc135cafd <+9>:	push   %es
   0xc135cafe <+10>:	push   %ds
   0xc135caff <+11>:	push   %eax
   0xc135cb00 <+12>:	push   %ebp
   0xc135cb01 <+13>:	push   %edi
   0xc135cb02 <+14>:	push   %esi
   0xc135cb03 <+15>:	push   %edx
   0xc135cb04 <+16>:	push   %ecx
   0xc135cb05 <+17>:	push   %ebx
   0xc135cb06 <+18>:	mov    $0x7b,%edx
   0xc135cb0b <+23>:	mov    %edx,%ds
   0xc135cb0d <+25>:	mov    %edx,%es
   0xc135cb0f <+27>:	mov    $0xd8,%edx
   0xc135cb14 <+32>:	mov    %edx,%fs
   0xc135cb16 <+34>:	mov    $0xffffe000,%ebp
   0xc135cb1b <+39>:	and    %esp,%ebp
   0xc135cb1d <+41>:	testl  $0x100801d1,0x8(%ebp)
   0xc135cb24 <+48>:	jne    0xc135cc00 <syscall_trace_entry>
   0xc135cb2a <+54>:	cmp    $0x15e,%eax
   0xc135cb2f <+59>:	jae    0xc135cc4c <syscall_badsys>
   0xc135cb35 <+65>:	call   *-0x3ec9fe40(,%eax,4)
   0xc135cb3c <+72>:	mov    %eax,0x18(%esp)
   0xc135cb40 <+0>:	cli    
   0xc135cb41 <+1>:	mov    0x8(%ebp),%ecx
   0xc135cb44 <+4>:	test   $0x1008feff,%ecx
   0xc135cb4a <+10>:	jne    0xc135cc20 <syscall_exit_work>
   0xc135cb50 <+0>:	mov    0x38(%esp),%eax
   0xc135cb54 <+4>:	mov    0x40(%esp),%ah
   0xc135cb58 <+8>:	mov    0x34(%esp),%al
   0xc135cb5c <+12>:	and    $0x20403,%eax
   0xc135cb61 <+17>:	cmp    $0x403,%eax
   0xc135cb66 <+22>:	je     0xc135cb77 <ldt_ss>
   0xc135cb68 <+0>:	pop    %ebx
   0xc135cb69 <+1>:	pop    %ecx
   0xc135cb6a <+2>:	pop    %edx
   0xc135cb6b <+3>:	pop    %esi
   0xc135cb6c <+4>:	pop    %edi
   0xc135cb6d <+5>:	pop    %ebp
   0xc135cb6e <+6>:	pop    %eax
   0xc135cb6f <+7>:	pop    %ds
   0xc135cb70 <+8>:	pop    %es
   0xc135cb71 <+9>:	pop    %fs
   0xc135cb73 <+11>:	add    $0x8,%esp
   0xc135cb76 <+0>:	iret   
   0xc135cb77 <+0>:	lar    0x40(%esp),%eax
   0xc135cb7c <+5>:	jne    0xc135cb68 <restore_nocheck>
   0xc135cb7e <+7>:	test   $0x400000,%eax
   0xc135cb83 <+12>:	jne    0xc135cb68 <restore_nocheck>
   0xc135cb85 <+14>:	mov    %esp,%edx
   0xc135cb87 <+16>:	mov    0x3c(%esp),%eax
   0xc135cb8b <+20>:	mov    %dx,%ax
   0xc135cb8e <+23>:	sub    %eax,%edx
   0xc135cb90 <+25>:	shr    $0x10,%edx
   0xc135cb93 <+28>:	mov    %dl,%fs:0xc148f0d4
   0xc135cb9a <+35>:	mov    %dh,%fs:0xc148f0d7
   0xc135cba1 <+42>:	push   $0xd0
   0xc135cba6 <+47>:	push   %eax
   0xc135cba7 <+48>:	cli    
   0xc135cba8 <+49>:	lss    (%esp),%esp
   0xc135cbac <+53>:	jmp    0xc135cb68 <restore_nocheck>
End of assembler dump.

megabaks ★★★★
()
Ответ на: комментарий от LIKAN

После стрипа перестаёт работать дизас.

$ gdb a.out 
GNU gdb (GDB) 7.4.1-debian
Copyright (C) 2012 Free Software Foundation, Inc.
...
This GDB was configured as "x86_64-linux-gnu".
...
Reading symbols from /home/serge/tmp/a.out...(no debugging symbols found)...done.
(gdb) disas testfunc 
Dump of assembler code for function testfunc:
   0x00000000004004ac <+0>:     push   %rbp
   0x00000000004004ad <+1>:     mov    %rsp,%rbp
   0x00000000004004b0 <+4>:     mov    $0x6,%eax
   0x00000000004004b5 <+9>:     pop    %rbp
   0x00000000004004b6 <+10>:    retq   
End of assembler dump.
(gdb) quit

$ strip a.out 

$ gdb a.out 
...
Reading symbols from /home/serge/tmp/a.out...(no debugging symbols found)...done.
(gdb) disas testfunc
No symbol table is loaded.  Use the "file" command.
(gdb) 

ziemin ★★
()
Ответ на: комментарий от AptGet

Угу, так тоже работает. Может все-таки я каких то use-ов не дописал?

LIKAN ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.