xiù tàn sniff。 xiù tàn qì kě yǐ qiè tīng wǎng luò shàng liú jīng de shù jù bāo。
yòng jí xiàn qì hub zǔ jiàn de wǎng luò shì jī yú gòng xiǎng de yuán lǐ de,
jú yù wǎng nèi suǒ yòu de jì suàn jī dū jiē shōu xiāng tóng de shù jù bāo,
ér wǎng kǎ gòu zào liǎo yìng jiàn de “ guò lǜ qì“
tōng guò shí bié mac dì zhǐ guò lǜ diào hé zì jǐ wú guān de xìn xī,
xiù tàn chéng xù zhǐ xū guān bì zhè gè guò lǜ qì,
jiāng wǎng kǎ shè zhì wéi“ hùn zá mó shì“ jiù kě yǐ jìn xíng xiù tàn
yòng jiāo huàn jī switch zǔ jiàn de wǎng luò shì jī yú“ jiāo huàn“ yuán lǐ de
, jiāo huàn jī bù shì bǎ shù jù bāo fā dào suǒ yòu de duān kǒu shàng,
ér shì fā dào mùdì wǎng kǎ suǒ zài de duān kǒu。
zhè yàng xiù tàn qǐ lái huì má fán yī xiē, xiù tàn chéng xù yī bān lì yòng“ arp qī piàn“ de fāng fǎ
, tōng guò gǎi biàn mac dì zhǐ děng shǒu duàn, qī piàn jiāo huàn jī jiāng shù jù bāo fā gěi zì jǐ,
xiù tàn fēn xī wán bì zài zhuǎn fā chū qù
yī qián yán
sniff zhēn shì yī gè gǔ lǎo de huà tí, guān yú zài wǎng luò shàng cǎi yòng sniff lái huò qǔ mǐn gǎn xìn xī yǐ jīng bù shì shénme xīn xiān shì, yě bù fá hěn duō chéng gōng de 'àn lì, nà me, sniff jiū jìng shì shénme ní? sniff jiù shì xiù tàn qì, jiù shì qiè tīng qì, sniff jìng qiǎo qiǎo de gōng zuò zài wǎng luò de dǐ céng, bǎ nǐ de mì mì quán bù jì lù xià lái。 kàn guò wēi 'ěr shǐ mì sī yǎn de《 quán mín gōng dí》 má? sniff jiù xiàng lǐ miàn jīng qiǎo de qiè tīng qì yī yàng, ràng nǐ fáng bù shèng fáng。
sniff kě yǐ shì ruǎn jiàn, yě kě yǐ shì yìng jiàn, jì rán shì ruǎn jiàn nà jiù yào fēn píng tái, yòu windows xià de、 unxi xià de děng, yìng jiàn de sniff chēng wéi wǎng luò fēn xī yí, fǎn zhèng bù guǎn yìng jiàn ruǎn jiàn, mù biāo zhǐ yòu yī gè, jiù shì huò qǔ zài wǎng luò shàng chuán shū de gè zhǒng xìn xī。 běn wén jǐn jǐn jiè shào ruǎn jiàn de sniff。
dāng nǐ shū shì de zuò zài jiā lǐ, qiè yì de xiǎng shòu wǎng luò gěi nǐ dài lái de biàn lì, shōu qǔ nǐ de email, gòu mǎi nǐ xǐ huān de wù pǐn de shí hòu, nǐ shì fǒu huì xiǎng dào nǐ de péng yǒu gěi nǐ de xìn jiàn, nǐ de xìn yòng kǎ zhàng hào biàn chéng liǎo yī gè yòu yī gè de xìn xī bāo zài wǎng luò shàng bù tíng de chuán sòng zhe, nǐ shì fǒu céng jīng zhè xiē xìn xī bāo huì tōng guò wǎng luò liú rù bié rén de jī qì ní? nǐ de dān yōu bù shì méi yòu dào lǐ de, yīn wéi sniff kě yǐ ràng nǐ de dān yōu biàn chéng shí shí zài zài de wēi xiǎn。 jiù hǎo xiàng yī gè rén duǒ zài nǐ shēn hòu tōu kàn yī yàng。。。。。。
èr wǎng luò jī chǔ zhī shí
“ wǎng luò jī chǔ zhī shí ”, shì bù shì tīng qǐ lái yòu diǎn páo tí liǎo? suī rán tīng qǐ lái zhè hé wǒ men yào tán de sniff méi shí me guān xì, kě shì hái shì yào shuō yī shuō de, wàn zhàng gāo lóu píng dì qǐ, rú guǒ lián dì jī dōuméi dǎ hǎo, zěn me gài lóu?! rú guǒ nǐ duì wǎng luò hái bù shì shí fēn qīng chǔ de huà, zuì hǎo néng jìng xià xīn lái hǎohǎo kàn kàn, yào zhī dào, zhè shì jī chǔ de jī chǔ, zài zhè lǐ wǒ zhǐ shì jiǎn dān de shuō yī xià, miǎn dé dào shí hòu yòu rén mí hú, xiáng xì de zuì hǎo néng gòu zì jǐ qù zhǎo shū kàn kàn。
( 1) tcp/ip tǐ xì jié gòu
kāi fàng xì tǒng hù lián( osi) mó xíng jiāng wǎng luò huàfēn wéi qī céng mó xíng, fēn bié yòng yǐ zài gè céng shàng shí xiàn bù tóng de gōng néng, zhè qī céng fēn bié wéi: yìng yòng céng、 biǎo shì céng、 huì huà céng、 chuán shū céng、 wǎng luò céng、 shù jù liàn lù céng jí wù lǐ céng。 ér tcp/ip tǐ xì yě tóng yàng zūn xún zhè qī céng biāo zhǔn, zhǐ bù guò zài mǒu xiē osi gōng néng shàng jìn xíng liǎo yā suō, jiāng biǎo shì céng jí huì huà céng hé bìng rù yìng yòng céng zhōng, suǒ yǐ shí jì shàng wǒ men dǎ jiāo dào de tcp/ip jǐn jǐn yòu 5 céng 'ér yǐ, wǎng luò shàng de fēn céng jié gòu jué dìng liǎo zài gè céng shàng de xié yì fēn bù jí gōng néng shí xiàn, cóng 'ér jué dìng liǎo gè céng shàng wǎng luò shè bèi de shǐ yòng。 shí jì shàng hěn duō chéng gōng de xì tǒng dōushì jī yú osi mó xíng de, rú: rú zhēn zhōng jì、 atm、 isdn děng。
tcp/ip de wǎng luò tǐ xì jié gòu( bù fēn)
cóng shàng miàn de tú zhōng wǒ men kě yǐ kàn chū, dì yī céng wù lǐ céng hé dì 'èr céng shù jù liàn lù céng shì tcp/ip de jī chǔ, ér tcp/ip běn shēn bìng bù shí fēn guān xīn dī céng, yīn wéi chù zài shù jù liàn lù céng de wǎng luò shè bèi qū dòng chéng xù jiāng shàng céng de xié yì hé shí jì de wù lǐ jiē kǒu gé lí kāi lái。 wǎng luò shè bèi qū dòng chéng xù wèi yú jiè zhì fǎng wèn zǐ céng (mac) ( 2) wǎng luò shàng de shè bèi zhōng jì qì: zhōng jì qì de zhù yào gōng néng shì zhōng jié yī gè wǎng duàn de xìn hào bìng zài lìng yī gè wǎng duàn zài shēng gāi xìn hào, yī jù huà, jiù shì jiǎn dān de fàng dà 'ér yǐ, gōng zuò zài wù lǐ céng shàng。
wǎng qiáo: wǎng qiáo shǐ yòng mac wù lǐ dì zhǐ shí xiàn zhōng jì gōng néng, kě yǐ yòng lái fēn gé wǎng duàn huò lián jiē bù fēn yì zhǒng wǎng luò, gōng zuò zài shù jù liàn lù céng。
lù yóu qì: lù yóu qì shǐ yòng wǎng luò céng dì zhǐ (ip,x.121,e.164 děng ), zhù yào fù zé shù jù bāo de lù yóu xún jìng, yě néng chǔlǐ wù lǐ céng hé shù jù liàn lù céng shàng de gōng zuò。
wǎng guān: zhù yào gōng zuò zài wǎng luò dì sì céng yǐ shàng, zhù yào shí xiàn shōu liǎn gōng néng jí xié yì zhuǎn huàn, bù guò hěn duō shí hòu wǎng guān dōubèi yòng lái miáo shù rèn hé wǎng luò hù lián shè bèi。
( 3) tcp/ip yǔ yǐ tài wǎng
yǐ tài wǎng hé tcp/ip kě yǐ shuō shì xiāng hù xiāng chéng de, kě yǐ shuō liǎng zhě de guān xì jīhū shì mì bù kě fēn, yǐ tài wǎng zài yī 'èr céng tí gōng wù lǐ shàng de lián xiàn, ér tcp/ip gōng zuò zài shàng céng, shǐ yòng 32 wèi de ip dì zhǐ, yǐ tài wǎng zé shǐ yòng 48 wèi de mac dì zhǐ, liǎng zhě jiànshǐ yòng arp hé rarp xié yì jìn xíng xiāng hù zhuǎn huàn。 cóng wǒ men shàng miàn tcp/ip de mó xíng tú zhōng kě yǐ qīng chǔ de kàn dào liǎng zhě de guān xì。
zài bō jiān tīng / chōng tū jiǎn cè (csma/cd) jì shù bèi pǔ biàn de shǐ yòng zài yǐ tài wǎng zhōng, suǒ wèi zài bō jiān tīng shì zhǐ zài yǐ tài wǎng zhōng de měi gè zhàn diǎn dū jù yòu tóng děng de quán lì, zài chuán shū zì jǐ de shù jù shí, shǒu xiān jiān tīng xìn dào shì fǒu kòngxián, rú guǒ kòngxián, jiù chuán shū zì jǐ de shù jù, rú guǒ xìn dào bèi zhàn yòng, jiù děng dài xìn dào kòngxián。 ér chōng tū jiǎn cè zé shì wèile fáng zhǐ fā shēng liǎng gè zhàn diǎn tóng shí jiān cè dào wǎng luò méi yòu bèi shǐ yòng shí 'ér chǎn shēng chōng tū。 yǐ tài wǎng cǎi yòng guǎng bō jī zhì, suǒ yòu yǔ wǎng luò lián jiē de gōng zuò zhàn dōukě yǐ kàn dào wǎng luò shàng chuán dì de shù jù。
wèile jiā shēn nǐ de lǐ jiě, wǒ men lái kàn kàn xià miàn de tú, yī gè diǎn xíng de zài yǐ tài wǎng zhōng kè hù yǔ fú wù qì shǐ yòng tcp/ip xié yì de tōng xìn
yǐ tài wǎng
suō suō liǎo zhè me duō, yòu rén fán liǎo bā? xiāng xìn wǒ, zhè shì jī chǔ de jī chǔ, kě yǐ shuō shì shuō dé shì hěn jiǎn dān lā, rú guǒ xū yào, ná chū gè jǐ shí wàn zì lái shuō shàng miàn de nèi róng, wǒ xiǎng yě bù xián duō, hǎo liǎo, ràng wǒ men jìn rù xià yī jié, sniff de yuán lǐ。
sān sniff de yuán lǐ
yào zhī dào zài yǐ tài wǎng zhōng, suǒ yòu de tōng xùn dōushì guǎng bō de, yě jiù shì shuō tōng cháng zài tóng yī gè wǎng duàn de suǒ yòu wǎng luò jiē kǒu dōukě yǐ fǎng wèn zài wù lǐ méi tǐ shàng chuán shū de suǒ yòu shù jù, ér měi yī gè wǎng luò jiē kǒu dōuyòu yī gè wéi yī de yìng jiàn dì zhǐ, zhè gè yìng jiàn dì zhǐ yě jiù shì wǎng kǎ de mac dì zhǐ, dà duō shù xì tǒng shǐ yòng 48 bǐ tè de dì zhǐ, zhè gè dì zhǐ yòng lái biǎo shì wǎng luò zhōng de měi yī gè shè bèi, yī bān lái shuō měi yī kuài wǎng kǎ shàng de mfc dì zhǐ dōushì bù tóng de, měi gè wǎng kǎ chǎng jiā dé dào yī duàn dì zhǐ, rán hòu yòng zhè duàn dì zhǐ fēn pèijǐ qí shēng chǎn de měi gè wǎng kǎ yī gè dì zhǐ。 zài yìng jiàn dì zhǐ hé ip dì zhǐ jiànshǐ yòng arp hé rarp xié yì jìn xíng xiāng hù zhuǎn huàn。
zài zhèng cháng de qíng kuàng xià, yī gè wǎng luò jiē kǒu yīnggāi zhǐ xiǎng yìng zhè yàng de liǎng zhǒng shù jù zhēn:
1. yǔ zì jǐ yìng jiàn dì zhǐ xiāng pǐ pèi de shù jù zhēn。 2. fā xiàng suǒ yòu jī qì de guǎng bō shù jù zhēn。
zài yī gè shí jì de xì tǒng zhōng, shù jù de shōu fā shì yóu wǎng kǎ lái wán chéng de, wǎng kǎ jiē shōu dào chuán shū lái de shù jù, wǎng kǎ nèi de dān piàn chéng xù jiē shōu shù jù zhēn de mùdì mac dì zhǐ, gēn jù jì suàn jī shàng de wǎng kǎ qū dòng chéng xù shè zhì de jiē shōu mó shì pàn duàn gāi bù gāi jiē shōu, rèn wéi gāi jiē shōu jiù jiē shōu hòu chǎn shēng zhōng duàn xìn hào tōng zhī cpu, rèn wéi bù gāi jiē shōu jiù diū diào bù guǎn, suǒ yǐ bù gāi jiē shōu de shù jù wǎng kǎ jiù jié duàn liǎo, jì suàn jī gēn běn jiù bù zhī dào。 cpu dé dào zhōng duàn xìn hào chǎn shēng zhōng duàn, cāo zuò xì tǒng jiù gēn jù wǎng kǎ de qū dòng chéng xù shè zhì de wǎng kǎ zhōng duàn chéng xù dì zhǐ diào yòng qū dòng chéng xù jiē shōu shù jù, qū dòng chéng xù jiē shōu shù jù hòu fàng rù xìn hào duī zhàn ràng cāo zuò xì tǒng chǔlǐ。 ér duì yú wǎng kǎ lái shuō yī bān yòu sì zhǒng jiē shōu mó shì:
guǎng bō fāng shì: gāi mó shì xià de wǎng kǎ néng gòu jiē shōu wǎng luò zhōng de guǎng bō xìn xī。 zǔ bō fāng shì: shè zhì zài gāi mó shì xià de wǎng kǎ néng gòu jiē shōu zǔ bō shù jù。
zhí jiē fāng shì: zài zhè zhǒng mó shì xià, zhǐ yòu mùdì wǎng kǎ cái néng jiē shōu gāi shù jù。 hùn zá mó shì: zài zhè zhǒng mó shì xià de wǎng kǎ néng gòu jiē shōu yī qiē tōng guò tā de shù jù, ér bù guǎn gāi shù jù shì fǒu shì chuán gěi tā de。
hǎo liǎo, xiàn zài wǒ men zǒng jié yī xià, shǒu xiān, wǒ men zhī dào liǎo zài yǐ tài wǎng zhōng shì jī yú guǎng bō fāng shì chuán sòng shù jù de, yě jiù shì shuō, suǒ yòu de wù lǐ xìn hào dōuyào jīng guò wǒ de jī qì, zài cì, wǎng kǎ kě yǐ zhì yú yī zhǒng mó shì jiào hùn zá mó shì( promiscuous), zài zhè zhǒng mó shì xià gōng zuò de wǎng kǎ néng gòu jiē shōu dào yī qiē tōng guò tā de shù jù, ér bù guǎn shí jì shàng shù jù de mùdì dì zhǐ shì bù shì tā。 zhè shí jì shàng jiù shì wǒ men sniff gōng zuò de jī běn yuán lǐ: ràng wǎng kǎ jiē shōu yī qiē tā suǒ néng jiē shōu de shù jù。
wǒ men lái kàn yī gè jiǎn dān de lì zǐ, rú tú yī suǒ shì, jī qì a、 b、 c yǔ jí xiàn qì hub xiāng lián jiē, jí xiàn qì hub tōng guò lù yóu qì router fǎng wèn wài bù wǎng luò。 zhè shì yī gè hěn jiǎn dān yě hěn cháng jiàn de qíng kuàng, bǐ rú shuō zài gōng sī dà lóu lǐ, wǒ suǒ zài de wǎng luò bù bàn gōng shì lǐ de jǐ tái jī qì tōng guò jí xiàn qì lián jiē, ér wǎng luò bù、 kāi fā bù、 shì chǎng bù yě shì tóng yàng rú cǐ, jǐ gè bù mén de jí xiàn qì tōng guò lù yóu qì lián jiē。 hái shì huí dào wǒ men de tú yī shàng lái, zhí dé zhù yì de yī diǎn shì jī qì a、 b、 c shǐ yòng yī gè pǔ tōng de hub lián jiē de, bù shì yòng switch, yě bù shì yòng router, shǐ yòng switch hé router de qíng kuàng yào bǐ zhè fù zá dé duō。
wǒ men jiǎ shè yī xià jī qì a shàng de guǎn lǐ yuán wèile wéi hù jī qì c, shǐ yòng liǎo yī gè ftp mìng lìng xiàng jī qì c jìn xíng yuǎn chéng dēng lù, nà me zài zhè gè yòng hub lián jiē de wǎng luò lǐ shù jù zǒu xiàng guò chéng shì zhè yàng de。 shǒu xiān jī qì a shàng de guǎn lǐ yuán shū rù de dēng lù jī qì c de ftp kǒu lìng jīng guò yìng yòng céng ftp xié yì、 chuán shū céng tcp xié yì、 wǎng luò céng ip xié yì、 shù jù liàn lù céng shàng de yǐ tài wǎng qū dòng chéng xù yī céng yī céng de bāo guǒ, zuì hòu sòng dào liǎo wù lǐ céng, wǒ men de wǎng xiàn shàng。 jiē xià lái shù jù zhēn sòng dào liǎo hub shàng, xiàn zài yóu hub xiàng měi yī gè jiē diǎn guǎng bō yóu jī qì a fā chū de shù jù zhēn, jī qì b jiē shōu dào yóu hub guǎng bō fā chū de shù jù zhēn, bìng jiǎn chá zài shù jù zhēn zhōng de dì zhǐ shì fǒu hé zì jǐ de dì zhǐ xiāng pǐ pèi, fā xiàn bù shì fā xiàng zì jǐ de hòu bǎ zhè shù jù zhēn diū qì, bù yú lǐ cǎi。 ér jī qì c yě jiē shōu dào liǎo shù jù zhēn, bìng zài bǐ jiào zhī hòu fā xiàn shì fā xiàn zì jǐ de, jiē xià lái tā jiù duì zhè shù jù zhēn jìn xíng fēn xī chǔlǐ。
zài shàng miàn zhè gè jiǎn dān de lì zǐ zhōng, jī qì b shàng de guǎn lǐ yuán rú guǒ hěn hǎo qí, tā hěn xiǎng zhī dào jiū jìng dēng lù jī qì c shàng ftp kǒu lìng shì shénme? nà me tā yào zuò de hěn jiǎn dān, jǐn jǐn xū yào bǎ zì jǐ jī qì shàng de wǎng kǎ zhì yú hùn zá mó shì, bìng duì jiē shōu dào de shù jù zhēn jìn xíng fēn xī, cóng 'ér zhǎo dào bāo hán zài shù jù zhēn zhōng de kǒu lìng xìn xī。
sì zuò yī gè zì jǐ de sniff
zài shàng yī jié lǐ, wǒ men yǐ jīng zhī dào liǎo sniff de jī běn yuán lǐ shì zěn me yī huí shì, zhè yī jié wǒ men lái qīn zì dòng shǒu zuò yī gè zì jǐ de sniff, bì jìng, yòng chéng xù dài mǎ lái shuō huà bǐ shénme dōuyào lái dé zhēn shí, yě róng yì jiā shēn lǐ jiě。
huí tóu xiǎng yī xiǎng wǒ men shàng miàn shuō de yuán lǐ, wǒ men yào zuò de shì qíng yòu jǐ jiàn:
1. bǎ wǎng kǎ zhì yú hùn zá mó shì。 2. bǔ huò shù jù bāo。 3. fēn xī shù jù bāo。
zhù: xià miàn de yuán dài mǎ qǔ zhì chadrenfro de <<basicpacket-snifferconstructionfromthegroundup>> yī wén zhōng
/************************tcp_sniff_2.c********************/
1.#include
2.#include
3.#include
4.#include
5.#include
6.#include
7.#include
8.#include
9.#include"headers.h"
#defineinterface"eth0"
/*prototypearea*/
10.intopen_raw_socket(void);
11.intset_promisc(char*interface,intsock);
12.intmain(){
13.intsock,bytes_recieved,fromlen;
14.charbuffer[65535];
15.structsockaddr_infrom;
16.structip*ip;
17.structtcp*tcp;
18.sock=open_raw_socket();
19.set_promisc(interface,sock);
20.while(1)
22.{
23.fromlen=sizeoffrom;
24.bytes_recieved=recvfrom(sock,buffer,sizeofbuffer,0,(structsockaddr*)&from,&fromlen);
25.printf(" bytesreceived:::%5d ",bytes_recieved);
26.printf("sourceaddress:::%s ",inet_ntoa(from.sin_addr));
27.ip=(structip*)buffer;
/*seeifthisisatcppacket*/
28.if(ip->ip_protocol==6){
29.printf("ipheaderlength:::%d ",ip->ip_length);
30.printf("protocol:::%d ",ip->ip_protocol);
31.tcp=(structtcp*)(buffer+(4*ip->ip_length));
32.printf("sourceport:::%d ",ntohs(tcp->tcp_source_port));
33.printf("destport:::%d ",ntohs(tcp->tcp_dest_port));
34.}
35.}
36.}
37.intopen_raw_socket(){
38.intsock;
39.if((sock=socket(af_inet,sock_raw,ipproto_tcp))<0){
/*thenthesocketwasnotcreatedproperlyandmustdie*/
40.perror("therawsocketwasnotcreated");
41.exit(0);
42.};
43.return(sock);
44.}
45.intset_promisc(char*interface,intsock){
46.structifreqifr;
47.strncpy(ifr.ifr_name,interface,strnlen(interface)+1);
48.if((ioctl(sock,siocgifflags,&ifr)==-1)){
/*couldnotretrieveflagsfortheinterface*/
49.perror("couldnotretriveflagsfortheinterface");
50.exit(0);
51.}
52.printf("theinterfaceis:::%s ",interface);
53.perror("retrievedflagsfrominterfacesuccessfully");
54.ifr.ifr_flags|=iff_promisc;
55.if(ioctl(sock,siocsifflags,&ifr)==-1){
/*couldnotsettheflagsontheinterface*/
56.perror("couldnotsetthepromiscflag:");
57.exit(0);
58.}
59.printf("settinginterface:::%s:::topromisc",interface);
60.return(0);
61.}
/***********************eof**********************************/
shàng miàn zhè duàn chéng xù zhōng yòu hěn xiáng xì de zhù jiě, bù guò wǒ xiǎng hái shì yòu bì yào shuō yī shuō, shǒu xiān dì 10 xíng --intopen_raw_socket(void); shì wǒ men de zì dìng yì hán shù, jù tǐ nèi róng rú xià:
37.intopen_raw_socket(){
38.intsock;
39.if((sock=socket(af_inet,sock_raw,ipproto_tcp))<0){
/*thenthesocketwasnotcreatedproperlyandmustdie*/
40.perror("therawsocketwasnotcreated");
41.exit(0);
42.};
43.return(sock);
44.}
dì 39 xíng if((sock=socket(af_inet,sock_raw,ipproto_tcp))<0){
zhè lǐ wǒ men diào yòng liǎo socket hán shù, shǐ chuàng jiàn liǎo liǎo yī gè yuán shǐ tào jiē kǒu, shǐ zhī shōu dào tcp/ip xìn xī bāo。
jiē xià lái dì 11 xíng -intset_promisc(char*interface,intsock), zhè yě shì wǒ men de zì dìng yì hán shù, mùdì shì bǎ wǎng kǎ zhì yú hùn zá mó shì, jù tǐ nèi róng rú xià:
45.intset_promisc(char*interface,intsock){
46.structifreqifr;
47.strncpy(ifr.ifr_name,interface,strnlen(interface)+1);
48.if((ioctl(sock,siocgifflags,&ifr)==-1)){
/*couldnotretrieveflagsfortheinterface*/
49.perror("couldnotretriveflagsfortheinterface");
50.exit(0);
51.}
52.printf("theinterfaceis:::%s ",interface);
53.perror("retrievedflagsfrominterfacesuccessfully");
54.ifr.ifr_flags|=iff_promisc;
55.if(ioctl(sock,siocsifflags,&ifr)==-1){
/*couldnotsettheflagsontheinterface*/
56.perror("couldnotsetthepromiscflag:");
57.exit(0);
58.}
59.printf("settinginterface:::%s:::topromisc",interface);
60.return(0);
61.}
shǒu xiān structifreqifr; dìng yī liǎo yī gè ifrreg de jié gòu ifr, jiē xià lái strncpy(ifr.ifr_name,interface,strnlen(interface)+1);, jiù shì bǎ wǒ men wǎng luò shè bèi de míng zì tián chōng dào ifr jié gòu zhōng, zài zhè lǐ #defineinterface"eth0", ràng wǒ men zài wǎng xià kàn ,ioctl(sock,siocgifflags,&ifr),siocgifflags qǐng qiú biǎo shì xū yào huò qǔ jiē kǒu biāo zhì, xiàn zài dào liǎo dì 54 xíng, zài wǒ men chéng gōng de huò qǔ jiē kǒu biāo zhì hòu bǎ tā shè zhì chéng hùn zá mó shì, ifr.ifr_flags|=iff_promisc;ioctl(sock,siocsifflags,&ifr)。 ok, xiàn zài wǒ men suǒ shuō de dì yī bù yǐ jīng wán chéng -------- bǎ wǎng kǎ zhì yú hùn zá mó shì。
xiàn zài jìn rù dì 'èr bù, bǔ huò shù jù bāo。 cóng dì 20 xíng kāi shǐ, wǒ men jìn rù liǎo yī gè sǐ xún huán, while(1), zài dì 24 xíng, recvfrom(sock,buffer,sizeofbuffer,0,(structsockaddr*)&from,&fromlen), zhè gè hán shù yào zuò de jiù shì jiē shōu shù jù, bīng bǎ jiē shōu dào de shù jù fàng rù buffer zhōng。 jiù shì zhè me jiǎn dān, yǐ jīng wán chéng liǎo wǒ men yào bǔ huò shù jù bāo de rèn wù。
dào liǎo dì sān bù, fēn xī shù jù bāo。 27 xíng, ip=(structip*)buffer, shǐ wǒ men zài tóu wén jiàn zhōng de ip jié gòu duì yìng yú suǒ jiē shōu dào de shù jù, jiē xià lái pàn duàn zài wǎng luò céng zhōng shì fǒu shǐ yòng de shì tcp xié yì, if(ip->ip_protocol==6), rú guǒ dá 'àn shì, tcp xìn xī bāo cóng zhěng gè ip/tcp bāo buffer+(4*ip->ip_length) dì zhǐ chù kāi shǐ, suǒ yǐ 31 xíng tcp=(structtcp*)(buffer+(4*ip->ip_length)), rán hòu duì yìng jié gòu bǎ nǐ suǒ xū yào de xìn xī shū chū。
/*************************headers.h**************************/
/*structureofanipheader*/
structip{
unsignedintip_length:4;/*little-endian*/
unsignedintip_version:4;
unsignedcharip_tos;
unsignedshortip_total_length;
unsignedshortip_id;
unsignedshortip_flags;
unsignedcharip_ttl;
unsignedcharip_protocol;
unsignedshortip_cksum;
unsignedintip_source;unsignedintip_dest;
};
/*structureofatcpheader*/
structtcp{
unsignedshorttcp_source_port;
unsignedshorttcp_dest_port;
unsignedinttcp_seqno;
unsignedinttcp_ackno;
unsignedinttcp_res1:4,/*little-endian*/
tcp_hlen:4,
tcp_fin:1,
tcp_syn:1,
tcp_rst:1,
tcp_psh:1,
tcp_ack:1,
tcp_urg:1,
tcp_res2:2;
unsignedshorttcp_winsize;
unsignedshorttcp_cksum;
unsignedshorttcp_urgent;
};
/*********************eof***********************************/
cóng shàng miàn de fēn xī wǒ men kě yǐ qīng chǔ de rèn shí dào, rèn shí yī gè sniff xū yào duì tcp/ip xié yì yòu zhe xiáng xì de liǎo jiě, fǒu zé nǐ gēn běn wú fǎ zhǎo dào nǐ xū yào de xìn xī。 yòu liǎo shàng miàn de jī chǔ, nǐ kě yǐ zì jǐ lái zuò yī gè nǐ xū yào de sniff liǎo。 |