Ò»¡¢¸ÅÊö
ϵͳµ÷ÓÃÊÇÒ»¸öÈíÖжϣ¬ÖжϺÅÊÇ0x80£¬ËüÊÇÉϲãÓ¦ÓóÌÐòÓëLinuxϵͳÄں˽øÐн»»¥Í¨ÐŵÄΨһ½Ó¿Ú¡£Í¨¹ýint 0x80£¬¾Í¿ÉʹÓÃÄÚºË×ÊÔ´¡£²»¹ý£¬Í¨³£Ó¦ÓóÌÐò¶¼ÊÇʹÓþßÓбê×¼½Ó¿Ú¶¨ÒåµÄCº¯Êý¿â¼ä½ÓµÄʹÓÃÄں˵Äϵͳµ÷Ó㬼´Ó¦ÓóÌÐòµ÷ÓÃCº¯Êý¿âÖеĺ¯Êý£¬Cº¯Êý¿âÖÐÔÙͨ¹ýint 0x80½øÐÐϵͳµ÷Óá£
ËùÒÔ£¬ÏµÍ³µ÷Óùý³ÌÊÇÕâÑùµÄ£º
Ó¦ÓóÌÐòµ÷ÓÃlibcÖеĺ¯Êý£>libcÖеĺ¯ÊýÒýÓÃϵͳµ÷Óúê£>ϵͳµ÷ÓúêÖÐʹÓÃint 0x80Íê³Éϵͳµ÷Óò¢·µ»Ø¡£
¶þ¡¢Ïà¹ØµÄÊý¾Ý½á¹¹
ÔÚ˵¾ßÌåµÄµ÷Óùý³Ì֮ǰ£¬ÕâÀïÏÈҪ˵¼¸¸öÊý¾Ý½á¹¹¡£
1£©ÏµÍ³µ÷Óú¯Êý±í
ϵͳµ÷Óú¯Êý±ísys_call_tableÊÇÔÚsys.hÖж¨ÒåµÄ£¬ËüÊÇÒ»¸öº¯ÊýÖ¸ÕëÊý×飬ÿ¸öÔªËØÊÇÒ»¸öº¯ÊýÖ¸Õ룬ËüµÄÖµÊǸ÷¸öϵͳÌṩµÄ¹©Éϲãµ÷ÓõÄϵͳº¯ÊýµÄÈë¿ÚµØÖ·¡£Ò²¾ÍÊÇ˵ͨ¹ýÕâ¸ö±í¾Í¿ÉÒÔµ÷Óø÷¸öϵͳº¯Êý¡£
2£©º¯ÊýÖ¸ÕëÆ«ÒÆºê
ÕâÊÇһϵÁк꣬ËüÃǵ͍ÒåÔÚunistd.hÖУ¬»ù±¾ÐÎÊ ......
1 ÏÂÔØ½âѹ
ÔÚ¹Ù·½ÍøÕ¾ÏÂÔØ×îÐÂmesa£¬mesaÖ÷ÒªÓÐÒÔϼ¸²¿·Ö£º
MesaLib-x.y.z - Mesa¿âÔ´´úÂ룬Çý¶¯ºÍÎĵµ¡£
MesaDemos-x.y.z - OpenGLµÄÑÝʾºÍ²âÊÔ³ÌÐò¡£¾ø´ó¶àÊýÐèÒªGLUT£¨Mark KilgardµÄÔʼGLUT£¯freeglut£¯OpenGLUT£©
MesaGLUT-x.y.z - Mark KilgardµÄGLUT£¬ÅäºÏmesaʹÓã¬Ò²ÓÐDOS, OS/2, BeOSµÈ°æ±¾¡£
Èç¹û¶ÔÔËÐÐÑÝʾûÓÐÐËȤ£¬Ö»ÐèÒª°²×°µÚÒ»¸ö°ü¡£
Èç¹ûÊÇÐÂÊÖ²»Öª¸ÃÔõô°ì£¬¸Ã°ÑÕâÈý¸ö°ü¶¼×°ÉÏ¡£Èý¸ö°üÓÐ.tar.gz£¬.tar.bz2 ºÍ.zip¸ñʽ£¬ÎÒÏÂÔØµÄÊÇ.tar.bz2¸ñʽ£¬½âѹËõÈçÏ£º
bunzip2 -c MesaLib-7.5.1.tar.bz2 |tar xf -
bunzip2 -c MesaDemos-7.5.1.tar.bz2 |tar xf -
bunzip2 -c MesaGLUT-7.5.1.tar.bz2 |tar xf -
Èç¹ûÏÂÔØ.tar.gz¸ñʽ£¬½âѹËõÈçÏ£º
tar zvf MesaLib-x.y.z.tar.gz
tar zvf MesaDemos-x.y.z.tar.gz
tar zvf MesaGLUT-x.y.z.tar.gz
ÔÚ½âѹºóµÄÎļþesa-x.y.zÖÐÄÜ¿´µ½ÈçÏÂĿ¼£º
Makefile - top-level Makefile for most systems
configs/ - makefile parameter files for various systems
include/ - GL header (include) files
bin/ - shell scripts for making shared librar ......
µÚÒ»¸ö£º DSL Linux
Damn Small LinuxÊÇÒ»Ì×»ùÓÚÒµÎñ¿¨£¨50M×Ö½Ú£©¿ÉÆô¶¯¹âÅ̵ÄLinux·¢ÐС£¾¡¹ÜËüµÄ¸öÍ·Èç´Ë֮С£¬ËüŬÁ¦³ÉΪһ·Ý¿ÉÓò¢ÇÒÒ×ÓõÄ×ÀÃæ¡£Damn Small LinuxµÄ×ÀÃæ¼¸ºõÊÇÍêÕûµÄÒ»Ì×£¬°üÀ¨xmms£¨Ö§³Ömp3ºÍmpeg£©¡¢FTP¿Í»§¶Ë¡¢»ùÓÚlinksµÄwebä¯ÀÀÆ÷¡¢µç×ÓÖÆ±íÈí¼þ¡¢µç×ÓÓʼþ³ÌÐò¡¢ Ó¢ÓïÆ´Ð´¼ì²é¡¢×Ö´¦ÀíÆ÷¡¢Èý¸ö±à¼Æ÷£¨nedit¡¢nvi¼°ÀàËÆemacsµÄzile£©¡¢xpdfÔĶÁÆ÷¡¢workerÎļþ¹ÜÀíÆ÷¡¢naim£¨Ö§³Ö AIM¡¢ICQºÍIRC£©¡¢VNCviewer¡¢SSH/SCP·þÎñÆ÷ºÍ¿Í»§¶Ë¡¢DHCP¿Í»§¶Ë¡¢PPP¼°PPPoE¡¢web·þÎñÆ÷¡¢¼ÆËãÆ÷¡¢ Fluxbox´°¿Ú¹ÜÀíÆ÷¡¢ÏµÍ³¼àÊÓÈí¼þ¡¢USBÖ§³Ö£¬²¢ÇÒËüºÜ¿ì¾Í½«ÓµÓÐPCMCIAÖ§³Ö¡£Èç¹ûÄãϲ»¶Damn Small Linux£¬Äã¿ÉÒÔ°²×°µ½ÄãµÄÓ²ÅÌÉÏ¡£ÓÉÓÚËùÓеÄÈí¼þ¶¼ÊÇСÇÉÐ͵ģ¬ËùÒÔËü¶ÔÀϾɵÄÓ²¼þ»áÊÇÒ»¸öºÜºÃµÄÑ¡Ôñ¡£
µÚ¶þ¸ö£ºPuppy Linux
PuppyLinuxÊÇÁíÍâÒ»ÖÖLinux·¢ÐС£ËüµÄ²»Í¬Ö®´¦ÔÚÓÚ£¬PuppyÊǸñÍâµÄС£¬È»¶øÓÖ³äÂúÁËÌØÐÔ¡£PuppyÄÜ´Ó64MµÄ´æ´¢É豸Æô¶¯£¬²¢ÇÒ£¬ÕûÌ×ϵͳ¶¼ÄÜÔÚÄÚ´æÖÐÔËÐС£Óкܶà×ÔÆô¶¯ÔËÐйâÅ̵ÄLinux·¢ÐУ¬ËüÃÇÐèÒª²»Í£µØ´Ó¹âÅ̶ÁÈ¡Êý¾Ý²ÅÄÜÔËÐУ¬PuppyÓëËüÃDz»Ò»Ñù£¬PuppyÕû¸ö×°ÔØÔÚÄÚ´æÖС£ÕâÒâζ×Å£¬ËùÓеÄÓ¦ÓóÌÐòÒ»Õ£Ñ۵Ŧ·ò¾ÍÄÜÆô¶¯£¬²¢ÇÒÁ¢¼´¶Ô ......
×ÜÀÀ
ÓÃiptables -ADC À´Ö¸¶¨Á´µÄ¹æ
Ôò
£¬-AÌí¼Ó -Dɾ³ý -C ÐÞ¸Ä
iptables - [RI] chain rule num rule-specification[option]
ÓÃiptables - RI ͨ¹ý¹æÔòµÄ˳ÐòÖ¸¶¨
iptables -D chain rule num[option]
ɾ³ýÖ¸¶¨¹æÔò
iptables -[LFZ] [chain][option]
ÓÃiptables -LFZ Á´Ãû [Ñ¡Ïî]
iptables -[NX] chain
Óà -NX Ö¸¶¨Á´
iptables -P chain target[options]
Ö¸¶¨Á´µÄĬÈÏÄ¿±ê
iptables -E old-chain-name new-chain-name
-E ¾ÉµÄÁ´Ãû еÄÁ´Ãû
ÓÃеÄÁ´ÃûÈ¡´ú¾ÉµÄÁ´Ãû
˵Ã÷
Iptalbes ÊÇÓÃÀ´ÉèÖá¢Î¬»¤ºÍ¼ì²éLinuxÄں˵ÄIP°ü¹ýÂ˹æÔòµÄ¡£
¿ÉÒÔ
¶¨Ò岻ͬµÄ±í£¬Ã¿¸ö±í¶¼
°üº¬¼¸¸öÄÚ²¿µÄÁ´£¬Ò²Äܰüº¬Óû§¶¨ÒåµÄÁ´¡£Ã¿¸öÁ´¶¼ÊÇÒ»¸ö¹æÔòÁÐ±í£¬¶Ô¶ÔÓ¦µÄ°ü½øÐÐÆ¥Å䣺ÿÌõ¹æÔòÖ¸¶¨Ó¦µ±ÈçºÎ´¦ÀíÓëÖ®ÏàÆ¥ÅäµÄ°ü¡£Õâ±»³Æ×÷
'target'£¨Ä¿±ê£©£¬Ò²¿ÉÒÔ
Ìø
Ïòͬһ¸ö±íÄÚµÄÓû§¶¨ÒåµÄÁ´¡£
TARGETS
·À
»ðǽµÄ¹æÔòÖ¸¶¨Ëù¼ì²é°üµÄÌØÕ÷£¬ºÍÄ¿±ê¡£Èç¹û°ü²»Æ¥Å䣬½«ËÍÍù¸ÃÁ´ÖÐÏÂÒ»Ìõ¹æÔò¼ì²é£»Èç¹ûÆ¥Åä,ÄÇôÏÂÒ»Ìõ¹æÔòÓÉÄ¿±êֵȷ¶¨.¸ÃÄ¿±êÖµ¿ÉÒÔÊÇÓû§¶¨ÒåµÄ
Á´Ãû,»òÊÇij¸öרÓÃÖµ,ÈçACCEPT[ͨ¹ý], DROP[ɾ³ý], QUEUE[ÅŶÓ], »òÕß RETURN[·µ»Ø]¡£
ACCEPT
±íʾÈÃÕâ¸ö° ......
ÏÈÊÇÄÚºËÇý¶¯³ÌÐò£º
#include <linux/module.h>//¾ßÌåµÄÍ·ÎļþλÖÃΪ/opt/FriendlyARM/mini2440/linux-2.6.29/include/linux/*.h
#include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/poll.h>
#include <linux/irq.h>
#include <asm/irq.h>
#include <linux/interrupt.h>
#include <asm/uaccess.h>
#include <mach/regs-gpio.h>//¾ßÌåÍ·ÎļþλÖÃ/opt/FriendlyARM/mini2440/linux-2.6.29/arch/arm/mach-s3c2410/include/mach/*.h
#include <mach/hardware.h>
#include <linux/platform_device.h>
#include <linux/cdev.h>
#include <linux/miscdevice.h>
#include <linux/ioctl.h>
#define DEVICE_NAME "buttons"
struct button_irq_desc {
int irq;
int pin;
int pin_setting;
int number;
char *name;
};
static struct button_irq_desc button_irqs [] = {
{IRQ_EINT8 , S3C2410_GPG0 , S3C2410_GPG0_EINT8 , 0, "KEY0"},
{IRQ_EINT11, S3C2410_GPG3 , S3C2410_ ......
ÏÈÊÇÄÚºËÇý¶¯³ÌÐò£º
#include <linux/module.h>//¾ßÌåµÄÍ·ÎļþλÖÃΪ/opt/FriendlyARM/mini2440/linux-2.6.29/include/linux/*.h
#include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/poll.h>
#include <linux/irq.h>
#include <asm/irq.h>
#include <linux/interrupt.h>
#include <asm/uaccess.h>
#include <mach/regs-gpio.h>//¾ßÌåÍ·ÎļþλÖÃ/opt/FriendlyARM/mini2440/linux-2.6.29/arch/arm/mach-s3c2410/include/mach/*.h
#include <mach/hardware.h>
#include <linux/platform_device.h>
#include <linux/cdev.h>
#include <linux/miscdevice.h>
#include <linux/ioctl.h>
#define DEVICE_NAME "buttons"
struct button_irq_desc {
int irq;
int pin;
int pin_setting;
int number;
char *name;
};
static struct button_irq_desc button_irqs [] = {
{IRQ_EINT8 , S3C2410_GPG0 , S3C2410_GPG0_EINT8 , 0, "KEY0"},
{IRQ_EINT11, S3C2410_GPG3 , S3C2410_ ......
ÔÛ¾Í˵˵linuxÔõôһ²½µ½Î»ÉèÖÃϵͳʱ¼ä¡£ÄÃlinuxÐéÄâ»ú×öʵÑéµÄÅóÓÑ»áÖªµÀ¡£µ±Äã°Ñlinux»¹Ôµ½Ä³¸öµãµÄʱºò£¬vmware°ï²»ÁËÄã°Ñϵͳʱ¼äÒ²¸øÖØÉèÁË¡£ËùÒÔÕâʱºò¾ÍÒªÊÖ¹¤À´¸ã¡£¹ØÓÚÕ¦Éèlinuxʱ¼ä¡£ÍøÉϽéÉÜÒ²ºÜ¶à£¬µ«ÊǶ¼ÊdzÀ´³È¥µÄ¶«Î÷¡£ÄÇÔõô²ÅÄܸßЧ¿ì½ÝµÄÉèÖÃϵͳʱ¼äÄØ£¿
¿ªÊ¼µÄʱºò£¬»òÕßÍøÉ϶¼ÓеÄ˵·¨£¬±ÈÈç˵°Ñʱ¼äÉèΪ2009-11-12 18:30:50¡£
ÎÒÃÇ»áÏÈÉèÈÕÆÚ
date -s 20091112
ÔÙÉèʱ¼ä
date -s 18:30:50
һ̨»úÆ÷»¹ºÃ˵£¬¶àÁËÄã¾Í»á·³ÁË¡£ÓÐûÓÐÒ»²½µ½Î»µÄ°ì·¨ÄØ£¿¼¸¾ËÑË÷·¢ÏÖÓУ¡
date 111218302009 (ÔÂÈÕʱ·ÖÄê)
ÕâÑù¿ÉÒÔÒ»²½µ½Î»¡£µ«ÊÇ£¡µ«ÊÇÊ²Ã´ÄØ£¬¶ÔÓÚlinuxÀ´Ëµ£¬ÕâÑùµÄд·¨Ì«²»human£¬Ì«ÄѼÇÁË¡£ÓÐûÓиü¼òµ¥µÄ·½·¨£¿¼¸¾ÃþË÷£¬·¢ÏÖ£¬ÓУ¡
date -s "20091112 18:30:50"
ÕâÑù¾Í¿ÉÒÔÒ»²½µ½Î»£¬¶øÓÖÈÝÒ×¼ÇÒäÁË¡£Íµ×ÅÓÃÁ˺ó¤Ê±¼ ......