Moduloviny II.

Petr Snajdr snajdr na pvt.net
Pondělí Květen 4 19:19:09 CEST 1998


Jaromir Koutek wrote:

> > Dalsi vec je pouziti instrukce "call". Napr. takto:
> > 299:       e8 fc ff ff ff  call   29a <DevIoctl+7a>
> > Kam ten call bude smerovat?

> To je neuplne disassemblovany - musi se to udelat pres:
> objdump --disassemble --reloc
> Pak z toho vyleze neco jako
> 299:       e8 fc ff ff ff  call   29a <DevIoctl+7a>
>                             29a nejaka_divna_fce

No i pak to vypada takto:  

 296:       55              pushl  %ebp
 297:       6a 01           pushl  $0x1
 299:       e8 fc ff ff ff  call   29a <DevIoctl+7a>
                29a: R_386_PC32 verify_area
 29e:       89 c1           movl   %eax,%ecx
 2a0:       83 c4 0c        addl   $0xc,%esp


No zmena tu je, ze bych z toho byl ted moudrejsi se 
rici neda :-). Mam 2 vysvetleni:

1) Ta instrukce smeruje sama na sebe 
(s posunem o 1B). Asi nesmysl :-)

2) ma to neco spolecneho s funkci:
int verify_area(int type, const void *  addr, unsigned long size)
v linux/mm/memory.c :-))

Pokud je to 2), zacinam to pomalu chapat :-)


S pozdravem
    Petr Snajdr


Další informace o konferenci Linux