Linux¶ÑÕ»Òç³öµÄ¾µäÎÊÌâ
Linux¶ÑÕ»Òç³öµÄ¾µäÎÊÌâ
ÉùÃ÷£º±¾ÎÄÕÂÖ»ÊÇÎÒѧϰµÄÒ»¸ö¼Ç¼£¬ÓйØÒýÓõĵط½£¬ÎÒ¶¼»á¸ø³öÁ´½ÓµÄ¡£Èç¹ûÇÖ·¸×÷ÕßÈ¨Òæ£¬Çë֪ͨÎÒ¼°Ê±É¾³ý¡£
¿´ÁËһϣ¬LinuxһվʽѧϰµÄº¯Êýµ÷ÓÃ
£¬¸ãµÄÎÒÈÈѪ·ÐÌÚ£¬Á¢ÂíÕÒÄãÒ»ÏÂÕâ·½ÃæµÄ×ÊÁÏ¿´¿´¡£ÖÕÓÚ¿´µ½ÁËÒ»¸öÓйØLinux¶ÑÕ»Òç³öµÄÎÄÕ£¬¾ÍÄÃÀ´ÊÔÊÔÊÖÁË¡£²Î¿¼
ÎÒµÄѧϰlinux±Ê¼Ç£¨Ò»£©¶ÑÕ»
ÏÂÃæÀ´ÌùÒ»ÏÂÎҵĴúÂë°É¡£»ù±¾ºÍÉÏÆªÎÄÕÂÒ»ÑùµÄ¡£
#include<stdio.h>
void attack()
{
int attack=1;
printf("hi,attacked!\n");
}
void yaya()
{
int yaya=1;
printf("hi,yaya is my wife\n");
}
void foo()
{
int c_foo=1;
*(& c_foo +2)=(int)attack;
}
void main(){
int a_main=1;
i=(int)yaya;
foo();
}
BTW£¬ËµÃ÷һϣ¬Î񵀮½Ì¨ÊÇredhat 9£¬2.4µÄºË¡£
Ö±½ÓÉÏͼ°É£º
ÏÈÀ´¿´Ò»Ï¸÷¸öº¯ÊýµÄ·´»ã±à£º
mainº¯ÊýµÄ£º
yayaº¯ÊýµÄ£º
attackº¯ÊýµÄ£º
fooº¯ÊýµÄŶ£º
ºÃÁË£¬ÏÂÃæÒ»Ò»Ï¸ËµÁË£º
º¯Êýmain£º
*(& a_main -1)=(int)yaya;ÕâÌõÓï¾ä·Ç³£¹Ø¼ü£¬ÒòΪ
(& a_main -1)µØÖ·»»³ÉÁËyayaº¯ÊýµÄÈë¿ÚµØÖ·£¬ÄÇô
(& a_main -1)ÔÀ´µÄÊÇÊ²Ã´ÄØ£¿
Ç뿴ͼ£º
ÎÒÃÇÖªµÀ£¬GCCÖ¸Õë¶¼ÊÇ4×Ö½Ú¶ÔÆëµÄ£¬ÄÇô
(& a_main -1)¾ÍÊǵØÖ·0xbfffe2d0£¬ÀïÃæÊ²Ã´Ò²Ã»ÓС£Ö»ÊÇGCCΪÁË16×Ö½Ú¶ÔÆëÔÔò¶ø¿Õ×ŵġ£¾ßÌå¿É¼û£ºX86»ã±àÓïÑÔѧϰÊÖ¼Ç
˳±ã˵һÏ£¬
ÔÚÖ´ÐгÌÐòʱ£¬²Ù×÷ϵͳΪ½ø³Ì·ÖÅäÒ»¿éÕ»¿Õ¼äÀ´±£´æº¯ÊýÕ»Ö¡£¬ÔÚÿ¸öº¯ÊýµÄÕ»Ö¡ÖУ¬ebp
Ö¸ÏòÕ»µ×£¬¶øesp
Ö¸ÏòÕ»¶¥£¬ÔÚx86ƽ̨ÉÏÕâ¸öÕ»ÊǴӸߵØÖ·ÏòµÍµØÖ·Ôö³¤µÄ£¬ÎÒÃÇÖªµÀÿ´Îµ÷ÓÃÒ»¸öº¯Êý¶¼Òª·ÖÅäÒ»¸öÕ»Ö¡À´±£´æ²ÎÊýºÍ¾Ö²¿±äÁ¿¡££¨
LinuxһվʽѧϰµÄº¯Êýµ÷ÓÃ
£©
ÏÂÃæÖ´ÐÐfooº¯Êý¡£
fooº¯Êý
£º
¹Ø¼üÔÚ*(& c_foo
+2)=(int)attack;
ËüµÄÒâ˼¾ÍÊÇ
±¾
À´0xbfffe2cc´æ·ÅµÄÊÇmain·µ»ØµÄµØÖ·0x0804839f£¬µ«ÊǸÄΪattackº¯ÊýµÄÈë¿ÚµØÖ·0x08048328¡£
ÕâÑù¾Í»áµ¼ÖÂmainº¯Êý·µ»ØÊ±£¬Åܵ½attackº¯Êý¼ÌÐøÖ´ÐС£
ºÃÁË£¬fooº¯ÊýÖ´ÐÐÍêÁË£¬ESPÒÀ´Î³öÕ»£¬¾Íµ½ÁË
attackº¯ÊýµÄÈë¿ÚµØÖ·0x08048328¡£
¾Íattackº¯ÊýÖ´ÐÐÍê±ÏÒԺ󣬴ËʱµÄESP¾ÍΪ
µØÖ·0xbfffe2d0£¬»ØÏëһϣ¬Õâ
µØÖ·0xbfffe2d0ÀïÃæÊÇʲô£¿
¶ÔÁË£¬¾ÍÊÇyayaº¯ÊýµÄÈë¿ÚµØÖ·¡£
ÄÇô½ÓÏÂÀ´£¬¾ÍÊÇÖ´ÐÐyayaº¯ÊýÁË¡£
ÄÇôyayaº¯ÊýÖ´ÐÐÍêÒԺ󣬽ÓÏÂÀ´£¬¸ÃÔõô°ìô£¿
ÓÉÓÚmainº¯Êý¶ªÊ§ÁË·µ»ØµØÖ·£¬µ¼ÖÂmainº¯ÊýÎÞ·¨·µ»Ø
Ïà¹ØÎĵµ£º
1. ѧ»áд¼òµ¥µÄmakefile
2. ±àһЩӦÓÃ
³ÌÐò
£¬¿ÉÒÔÓÃmakefileÅÜÆðÀ´
3. ѧ»áдÇý¶¯
µÄmakefile
4. дһ¼òµ¥charÇý¶¯£¬makefile±àÒëͨ¹ý£¬¿ÉÒÔinsmod£¬ lsmod£¬ rmmod. ÔÚÇý¶¯µÄinitº¯ÊýÀï´òÓ¡hello world£¬insmodºóÓ¦¸ÃÄܹ»Í¨¹ýdmesg¿´µ½Êä³ö
¡£
5. дһÍêÕûÇý¶¯£¬ ¼ÓÉÏread£¬ write£¬ ioctl£¬ pollingµÈ¸ ......
ÈçºÎÔÚlinux¿ª»úʱ×Ô¶¯Æô¶¯smb¹²Ïí·þÎñ£¿
·½·¨1£ºntsysv£¬ÓнçÃæ£¬Ñ¡ÖÐsamba·þÎñ¼´¿É
·½·¨2. chkconfig --add smb
[root@test ~]# chkconfig --add smb
[root@test ~]# chkconfig --list smb
smb ......
1¡¢linux gcc°üº¬µÄc/c++±àÒëÆ÷
¡¡¡¡gcc¡¢cc¡¢c++¡¢g++£º
¡¡¡¡gccºÍccÊÇÒ»ÑùµÄ£¬c++ºÍg++ÊÇÒ»ÑùµÄ£¬Ò»°ãc³ÌÐò¾ÍÓÃgcc±àÒ룬c++³ÌÐò¾ÍÓÃg++±àÒë
2¡¢linux gccµÄ»ù±¾Ó÷¨
¡¡¡¡gcc test.cÕâÑù½«±àÒë³öÒ»¸öÃûΪa.outµÄ³ÌÐògcc test.c -o testÕâÑù½«±àÒë³öÒ»¸öÃûΪtestµÄ³ÌÐò
¡¡¡¡-o²ÎÊýÓÃÀ´Ö¸¶¨Éú³É³ÌÐòµÄÃû×Ö
3¡¢Î ......
Viʹ Óà ˵ Ã÷
Linux×÷Ϊһ¸ö¶àÓû§,¶àÈÎÎñµÄ²Ù×÷ϵͳ,ÓÐ×ÅÇ¿´óµÄ¹¦ÄÜ.±¾ÆªÎÒÃǶÔÕÕDOS½²½âһЩÓëDOS¹¦ÄÜÏàËÆµÄLinuxÖ÷ÒªÃüÁî,Ï£ÍûÎÒÃÇ˳ÀûµÄ½øÈëµ½LinuxÊÀ½ç.¸üÏêϸµÄÃüÁîÔÚÒÔºóµÄƪ·ùÀïÒÔTurboLinuxΪÀý½øÐÐ·ÖÆª½éÉÜ
Ò»,Æô¶¯
LinuxµÄÆô¶¯²Ù×÷¹ý³ÌºÍDOSÏàËÆ(¾¡¹ÜÈç´Ë,µ«×÷Ϊ²Ù×÷ϵͳ±¾Éí,LinuxÔÚÆô¶¯ºÍÍ˳öʱËù×÷µÄ¹ ......
linuxÇý¶¯ ×ÔÐýËøµÄÔËÓÃ
//hello.c
#define __NO_VERSION__
#include <linux/module.h>
#include <linux/config.h>
#include <linux/version.h>
#include <asm/uaccess.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
#inc ......