Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

dz̸LinuxµÄ¿ÉÖ´ÐÐÎļþ¸ñʽELF

 ÏÖ´úLinux²ÉÓÃELF×öΪÆä¿ÉÁ¬½ÓºÍ¿ÉÖ´ÐÐÎļþµÄ¸ñʽ£¬Òò´ËELF¸ñʽҲÏòÎÒÃÇ͸³öÁËÒ»µãLinuxºËÄÚµÄÇé¾°£¬¾ÍÏñϷ̨άĻÁôϵÄÒ»ÌõδÀ­Ñϵķ졣PCÊÀ½ç32ÈÔÊÇÖ÷Á÷£¬µ«64λµÄ½Å²½È´ÒÑÈç´ËµÄ±Æ½ü¡£±¾ÎÄ×ÅÖؽ²Êö32λELFµÄͬʱ¸½´øÁË64λµÄÐÅÏ¢£¬ÕâÁ½ÖÖ¸ñʽÈç´ËÀ×ͬ£¬ÒÔÖÂÓÚ³õ´Î½Ó´¥ELFµÄ¶ÁÕß²»±Ø¼æ¹Ë×óÓÒ¡£Èç¹ûÄã¶ÔWindows±È½ÏÊìϤ£¬±¾ÎÄ»¹½«Ê±Ê±°ÑÄã´ø»Øµ½PEÖУ¬ÔÚËüÃǵÄÏàËÆÖ®´¦ÉÔ×ö±È½Ï¡£ELFÎļþÒÔ“ELFÍ·”¿ªÊ¼£¬ºóÃæ¿ÉÑ¡ÔñµÄ¸úËæ×ųÌÐòÍ·ºÍ½ÚÍ·¡£µØÀíѧÓõȸßÏßÓëµÈÎÂÏß·Ö±ðչʾͬһµØÇøµÄµØÊƺÍÆøºò£¬³ÌÐòÍ·ºÍ½ÚÍ·Ôò·Ö±ð´Ó¼ÓÔØÓëÁ¬½Ó½Ç¶ÈÀ´ÃèÊöEFLÎļþµÄ×éÖ¯·½Ê½¡£ÏÂÃæÎÒÃǽøÈëÕýÎÄ¡£
Ò»¡¢ELFÍ·
    ELFÍ·Ò²½ÐELFÎļþÍ·£¬ËüλÓÚÎļþÖÐ×ʼµÄµØ·½¡£ÎÒÓÃϵͳµÄÊÇFedora Core 2£¬ËüÔÚelf.hÎļþÖÐͬʱ¸ø³öÁËELFÍ·ÔÚ32λϵͳºÍ64λϵͳϵĽṹ£¬ÎÒÃÇÏÈÀ´¿´Ò»Ï£º
typedef struct
{
unsigned char e_ident[EI_NIDENT];
Elf32_Half e_type;
Elf32_Half e_machine;
Elf32_Word e_version;
Elf32_Addr e_entry;
Elf32_Off e_phoff;
Elf32_Off e_shoff;
Elf32_Word e_flags;
Elf32_Half e_ehsize;
Elf32_Half e_phentsize;
Elf32_Half e_phnum;
Elf32_Half e_shentsize;
Elf32_Half e_shnum;
Elf32_Half e_shstrndx;
} Elf32_Ehdr;
typedef struct
{
unsigned char e_ident[EI_NIDENT];
Elf64_Half e_type;
Elf64_Half e_machine;
Elf64_Word e_version;
Elf64_Addr e_entry;
Elf64_Off e_phoff;
Elf64_Off e_shoff;
Elf64_Word e_flags;
Elf64_Half e_ehsize;
Elf64_Half e_phentsize;
Elf64_Half e_phnum;
Elf64_Half e_shentsize;
Elf64_Half e_shnum;
Elf64_Half e_shstrndx;
} Elf64_Ehdr;
    elf.hÖйØÓÚELF¸ñʽËùÓнṹ¸ø³öµÄ¶¨Ò壬Æä³ÉÔ±×ֶεÄÀàÐÍÉùÃû¶¼ÊÇCÓïÑÔ»ù±¾ÀàÐ͵ıðÃû£¬²»»áÔÙǶÌ׽ṹ¡£¿ÉÒÔ¿´³ö32λϵͳºÍ64λϵͳÏÂELFÍ·µÄ½á¹¹»ù±¾Ïàͬ£¬²»Í¬µÄÊÇÁ½ÖֽṹÖеÄij¸ö³ÉÔ±×Ö¶ÎÕ¼ÓÃ×Ö½Ú¸öÊýÓÐËù±ä»¯¡£±ÈÈçe_entryÓÉ32λÏÂÕ¼4¸ö×Ö½ÚµÄElf32_Addr±äΪ64λÏÂÕ¼8¸ö×Ö½ÚµÄElf64_Addr£¬ÕâÊÇÒòΪÁ½ÖÖϵͳÏÂCPUÑ°Ö·ÄÜÁ¦²»Í¬Ôì³ÉµÄ¡£Í¬ÀíÎļþÆ«ÒÆÒ²´Ó4×Ö½ÚµÄElf32_Off±äΪ8×Ö½ÚµÄElf64_Off¡£ÓÐЩ³ÉÔ±×Ö¶ÎËäÈ»ÀàÐÍÉùÃû´ÓElf32_XXXX±ä³ÉÁËElf64_XXXX£¬¸ÃÓòËùÕ¼µÄ×Ö½Ú¸öÊý²¢Î´¸Ä±ä¡£ÈçElf32_HalfºÍElf64_Half¶¼Õ¼Á½¸ö×Ö½Ú£¬Elf32_Word¡¢Elf3


Ïà¹ØÎĵµ£º

[תÌû]LinuxÇý¶¯¿ª·¢Ñ§Ï°µÄһЩ±ØÒª²½Öè

 1. ѧ»áд¼òµ¥µÄmakefile
2. ±àһЩӦÓÃ
³ÌÐò
£¬¿ÉÒÔÓÃmakefileÅÜÆðÀ´
3. ѧ»áдÇý¶¯
µÄmakefile
4. дһ¼òµ¥charÇý¶¯£¬makefile±àÒëͨ¹ý£¬¿ÉÒÔinsmod£¬ lsmod£¬ rmmod. ÔÚÇý¶¯µÄinitº¯ÊýÀï´òÓ¡hello world£¬insmodºóÓ¦¸ÃÄܹ»Í¨¹ýdmesg¿´µ½Êä³ö
¡£
5. дһÍêÕûÇý¶¯£¬ ¼ÓÉÏread£¬ write£¬ ioctl£¬ pollingµÈ¸ ......

ÍêÈ«¶¨ÖƸöÐÔ»¯linux°²×°½çÃæ

×î½ü¶¨ÖÆÁËÒ»¸öubuntuµÄ°²×°½çÃæ,¸Ð¾õ±È½ÏÓÐÒâ˼,дÉÏÀ´,ÓÐÐËȤµÄÅóÓÑ¿ÉÒÔʵ¼ùÒ»ÏÂ...
ÏȽéÉÜÒ»ÏÂgrubºÍisolinux,ÒÔ¼°Ò»Ð©¿ª»úÒýµ¼³ÌÐò...
1)BIOS:basic input output system,Ò»°ãµÄÇé¿öÏÂÊǹé½áÓÚfirmwareÕâÒ»ÀàµÄ.ÕâÀïÊÇΪÁËÁ¬½Óͨ˳,¾Í¼òµ¥µÄ˵һÏÂbios.BIOSÊÇÓû§ÔÚ°´ÏµçÔ´µÄÄÇÒ»¿Ì,¸ºÔðºÍÓ²¼þ¹µÍ¨²¢³ÊÏÖµ½Óû§ÃæÇ°µ ......

LinuxÄÚºËÒÔ¼°Çý¶¯¼¼Êõ—¼òµ¥

ÎÞÂÛÊÇVC»¹ÊÇVB£¬»¹ÊÇC#£¬»¹ÊÇJSP PHPµÈµÈÓïÑÔ£¬ÔÚѧϰËûÃÇ֮ǰ×ÜÊÇÏÈÀ´Ò»¸öHELLO
WORLDµÄÀý×Ó£¬Õâ¸öºÃÏñ³ÉÁËÎÒÃdzÌÐòÈëÃŵıؾ­Ö®Â·¡£ËùÒÔÔÚÇý¶¯³ÌÐòµÄѧϰÉÏ£¬Ò²Àë²»¿ªÕâ¸ö²½Öè¡£µ«ÊÇÇý¶¯³ÌÐòµÄ¿ª·¢ÊÇÔËÐÐÔÚÄں˿ռäµÄ£¬¶øÓ¦ÓóÌÐò
ÊÇÔËÐÐÔÚÓû§¿Õ¼äµÄ£¬ËùÒÔÇý¶¯³ÌÐòµÄ¿ª·¢ºÐµ÷ÊÔºÍÓ¦ÓóÌÐòµÄ¿ª·¢¶¼ÓкܴóµÄÇø±ð¡£¶ÔÓÚÕ ......

ÈçºÎʵÏÖLinuxÎı¾Ä£Ê½ÏÂ×Ô¶¯¹ÒÔعâÇý

ÈçºÎʵÏÖLinuxÎı¾Ä£Ê½ÏÂ×Ô¶¯¹ÒÔعâÇý
http://blog.csdn.net/yzlworld/archive/2009/06/29/4307476.aspx
mountÊÇÓÃÀ´¹ÒÔØÎļþϵͳµÄ£¬¿ÉÒÔÔÚÆô¶¯µÄʱºò¹ÒÔØÒ²¿ÉÒÔÔÚÆô¶¯ºó¹ÒÔØ¡£ÔÚÆô¶¯ºó¹ÒÔØ¿ÉÒÔʹÓÃmountÃüÁîʵÏÖ£¬ÒªÊµÏÖÆô¶¯Ê±×Ô¶¯¹ÒÔØÉ豸ÔòÐèÆô¶¯autofs·þÎñ¾ÍÌṩÕâÖÖ¹¦ÄÜ¡£¸Ã¹¦ÄܾÍÏñwindowsÖеĹâÇý×Ô¶¯´ò¿ª¹¦ÄÜ£¬Ä ......

º¯ÊýÖ¸Õë&»Øµ÷º¯Êý&linuxÖеÄsignalº¯Êý


1.
int (*func)();º¯ÊýÖ¸Õ룬ָÏòµÄº¯ÊýΪ¿Õ²ÎÊý£¬·µ»ØÕûÐÍ£»
2.
»Øµ÷º¯ÊýÊÇÒ»¸ö³ÌÐòÔ±²»ÄÜÏÔʽµ÷Óõĺ¯Êý£»Í¨¹ý½«»Øµ÷º¯ÊýµÄµØÖ·´«¸ø±»µ÷ÓÃÕß´Ó¶øʵÏÖµ÷Óá£
»Øµ÷º¯ÊýÊÇÒ»¸öͨ¹ýº¯ÊýÖ¸Õëµ÷Óõĺ¯Êý¡£Èç¹ûÄã°Ñº¯ÊýµÄÖ¸Õ루µØÖ·£©×÷Ϊ²ÎÊý´«µÝ¸øÁíÒ»¸öº¯Êý£¬µ±Õâ¸öÖ¸Õë±»ÓÃΪµ÷ÓÃËüËùÖ¸ÏòµÄº¯Êýʱ£¬ÎÒÃǾÍ˵ÕâÊǻص÷º¯ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ