linuxÖÐELF¼ÓÔØ¹ý³Ì·ÖÎö
sys_execve
| - do_execve
|
| - search_binary_handler
|- linux_binfmt= elf_format
|- elf_format-> load_elf_binary
| - elf_entry = load_elf_interp()
|-
| if (BAD_ADDR(elf_entry))
| force_sig(SIGSEGV, current);
| retval =-EINVAL;
binfmt_elf.c: line 1024
elf_entry = loc->elf_ex.e_entry;
if (BAD_ADDR(elf_entry)) {
force_sig(SIGSEGV, current);
retval = -EINVAL;
goto out_free_dentry;
}
ELF¿ÉÐеµµÄÔØÈ룺
ÄÚºËÖÐʵ¼ÊÖ´ÐÐ
execv()
»ò
execve()
ϵͳµ÷ÓõijÌÐòÊÇ
do_execve()
£¬Õâ¸öº¯ÊýÏÈ´ò¿ªÄ¿±êÓ³ÏñÎļþ£¬²¢´ÓÄ¿±êÎļþµÄÍ·²¿
(
´ÓµÚÒ»¸ö×Ö½Ú¿ªÊ¼
)
¶ÁÈëÈô¸É
(128)
×Ö½Ú£¬È»ºóµ÷ÓÃÁíÒ»¸öº¯Êý
search_binary_handler()
£¬ÔÚÄÇÀïÃæÈø÷ÖÖ¿ÉÖ´ÐгÌÐòµÄ´¦Àí³ÌÐòǰÀ´ÈÏÁìºÍ´¦Àí¡£ÄÚºËËùÖ§³ÖµÄÿÖÖ¿ÉÖ´ÐгÌÐò¶¼Óиö
struct linux_binfmt
Êý¾Ý½á¹¹£¬Í¨¹ýÏòÄں˵ǼǹÒÈëÒ»¸ö¶ÓÁС£¶ø
search_binary_handler()
£¬ÔòɨÃèÕâ¸ö¶ÓÁУ¬Èø÷¸öÊý¾Ý½á¹¹ËùÌṩµÄ´¦Àí³ÌÐò¡¢¼´¸÷ÖÖÓ³Ïñ¸ñʽ¡¢ÖðһǰÀ´ÈÏÁì¡£Èç¹ûij¸ö¸ñʽµÄ´¦Àí³ÌÐò·¢ÏÖÌØÕ÷Ïà·û¶ø£¬±ãÖ´ÐиøñʽӳÏñµÄ×°ÈëºÍÆô¶¯¡£
ÎÒÃÇ´Ó
ELF
¸ñʽӳÏñµÄ
Ïà¹ØÎĵµ£º
ÀýÒ»£º·¢ËÍSignaling Packet£º
Signaling CommandÊÇ2¸öBluetoothʵÌåÖ®¼äµÄL2CAP²ãÃüÁî´«Êä¡£ËùÒÔµÃSignaling CommandʹÓÃCID 0x0001.
¶à¸öCommand¿ÉÒÔÔÚÒ»¸öC-frame£¨control frame£©Öз¢ËÍ¡£
Èç¹ûÒªÖ±½Ó·¢ËÍSignaling Command.ÐèÒª½¨Á¢SOCK_RAWÀàÐ͵ÄL2CAPÁ¬½ÓSocket¡£ÕâÑù²ÅÓлú»á×Ô¼ºÌî³äCommand Code£¬Identi ......
×÷Õߣº±±ÄÏÄϱ±
ÔÞÖú£º
À´×Ô£ºLinuxSir.Org
ÕªÒª£º ±¾ÎÄÖ÷Òª½éÉÜLinuxϵͳµÄÓû§ºÍÓû§×éµÄ²éѯ¡¢Ìí¼Ó¡¢Ð޸ļ°É¾³ýµÈ¹ÜÀí¹¤¾ß£»
1¡¢/etc/passwd ºÍ/etc/groups
2¡¢³¬¼¶È¨ÏÞ¿ØÖÆ sudo µÄÅäÖÃÎļþ/etc/sudoers £»
3¡¢Ìí¼ÓÓû§¹æÔòÎļþ /etc/login.defs ºÍ /etc/default/useradd
1¡¢useradd ¹¤¾ß£»
1.1¡¢u ......
ÖÚËùÖÜÖª£¬LinuxµÄÎļþȨÏÞÈç:
777;666µÈ£¬ÆäʵֻҪÔÚÏàÓ¦µÄÎļþÉϼÓÉÏUIDµÄȨÏÞ£¬¾Í¿ÉÒÔÓõ½¼ÓȨÏÞÈ˵ÄÉí·ÝÈ¥ÔËÐÐÕâ¸öÎļþ¡£ËùÒÔÎÒÃÇÖ»ÐèÒª½«bash¸´ÖƳöÀ´µ½ÁíÒ»¸öµØ·½£¬
È»ºóÓÃroot¼ÓÉÏUIDȨÏÞ£¬Ö»ÒªÓû§ÔËÐдËShell¾Í¿ÉÒÔÓÃÓÃrootµÄÉí·ÝÀ´Ö´ÐÐÈκÎÎļþÁË¡£
£±.LinuxÏÂÈçºÎÖªµÀij¸ö¶Ë¿ÚÔÚÔËÐÐʲô³ÌÐò
µ±ÎÒÃÇÓ ......
ShellÊÇϵͳµÄÓû§½çÃæ£¬ÌṩÁËÓû§ÓëÄں˽øÐн»»¥²Ù×÷µÄÒ»ÖÖ½Ó¿Ú¡£Ëü½ÓÊÕÓû§ÊäÈëµÄÃüÁî²¢°ÑËüËÍÈëÄÚºËÈ¥Ö´ÐС£
¡¡¡¡Êµ¼ÊÉÏShellÊÇÒ»¸öÃüÁî½âÊÍÆ÷£¬Ëü½âÊÍÓÉÓû§ÊäÈëµÄÃüÁî²¢ÇÒ°ÑËüÃÇË͵½Äںˡ£²»½öÈç´Ë£¬ShellÓÐ×Ô¼ºµÄ±à³ÌÓïÑÔÓÃÓÚ¶ÔÃüÁîµÄ±à¼£¬ËüÔÊÐíÓû§±àдÓÉshellÃüÁî×é³ÉµÄ³ÌÐò¡£Shell±à³ÌÓïÑÔ¾ßÓÐÆÕͨ±à³ÌÓ ......