ææçæä½ç³»ç»å¨å
¶å
æ ¸éé½æä¸äºå
建çå½æ°ï¼è¿äºå½æ°å¯ä»¥ç¨æ¥å®æä¸äºç³»ç»çº§å«çåè½ãLinuxç³»ç»ä½¿ç¨çè¿æ ·çå½æ°å«åâç³»ç»è°ç¨âï¼è±ææ¯systemcallãè¿äºå½æ°ä»£è¡¨äºä»ç¨æ·ç©ºé´å°å
æ ¸ç©ºé´çä¸ç§è½¬æ¢ï¼ä¾å¦å¨ç¨æ·ç©ºé´è°ç¨openå½æ°ï¼åä¼å¨å
æ ¸ç©ºé´è°ç¨sys_openãä¸ä¸ªå·²ç»å®è£
çç³»ç»çæ¯æçææçç³»ç»è°ç¨å¯ä»¥å¨/usr/include/bits/syscall.hæ件éé¢çå°ãä¸é¢æ¯æç³»ç»ç该æ件çå¼å¤´å è¡ï¼
ãã
ãã[hwang@langchao hwang]$ head /usr/include/bits/syscall.h
ãã/* Generated at libc build time from kernel syscall list. */
ãã#ifndef _SYSCALL_H
ãã# error "Never use directly; include instead."
ãã#endif
ãã#define SYS_stime __NR_stime
ãã#define SYS_getresuid __NR_getresuid
ãã#define SYS_rt_sigqueueinfo __NR_rt_sigqueueinfo
ãã#define SYS_mmap2 __NR_mmap2
ãã
ããããæ¯ä¸ªç³»ç»è°ç¨é½æä¸ä¸ªå®ä¹å¥½çæ°åï¼è¿äºæ°åæ¯ç¨æ¥æé è¿äºç³»ç»è°ç¨çãå
æ ¸éè¿0x80ä¸ææ¥ç®¡çè¿äºç³»ç»è°ç¨ãè¿äºç³»ç»è°ç¨ç对åºçæ°ååä¸äºåæ°é½å¨è°ç¨çæ¶åéå°æäºå¯åå¨éé¢ã
ãã
ããããç³»ç»è°ç¨çæ°åå®é
ä¸æ¯ä¸ä¸ªåºåå·ï¼è¡¨ç¤ºå
¶å¨ç³»ç»çä¸ä¸ªæ°ç»sys_call_table[]ä¸çä½ç½®ã
温馨提示:内容为网友见解,仅供参考