首頁(yè) 資訊 為什么還要主機(jī)編譯(zip文件密碼破解軟件)

為什么還要主機(jī)編譯(zip文件密碼破解軟件)

來(lái)源:泰然健康網(wǎng) 時(shí)間:2025年06月04日 18:06

一、主機(jī)編譯的定義及作用

1, 主機(jī)編譯的定義

主機(jī)編譯是指再將高級(jí)語(yǔ)言編寫(xiě)的源代碼轉(zhuǎn)換為機(jī)器語(yǔ)言的。這個(gè)中,編譯器再將源代碼翻譯成計(jì)算機(jī)識(shí)別和執(zhí)行的指令,從而實(shí)現(xiàn)程序主機(jī)上的運(yùn)行。

2, 主機(jī)編譯的作用

1,提高程序運(yùn)行效率

編譯后的程序直接主機(jī)上運(yùn)行,無(wú)需解釋執(zhí)行,從而提高了程序的運(yùn)行效率。

2,降低內(nèi)存消耗

編譯后的程序體積相對(duì)較小,有利于降低內(nèi)存消耗,提高系統(tǒng)運(yùn)行速度。

3,提高程序移植性

主機(jī)編譯生成的程序不同主機(jī)上運(yùn)行,提高了程序的移植性。

二、主機(jī)編譯的必要性

1, 技術(shù)發(fā)展的必然選擇

隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,主機(jī)編譯技術(shù)也不斷進(jìn)步。從初的匯編語(yǔ)言到高級(jí)語(yǔ)言,再到如今的編譯器,主機(jī)編譯技術(shù)已經(jīng)經(jīng)歷了漫長(zhǎng)的演變。這個(gè)中,主機(jī)編譯技術(shù)逐漸成為計(jì)算機(jī)系統(tǒng)發(fā)展的必然選擇。

2, 提高編程效率

主機(jī)編譯技術(shù)再將復(fù)雜的高級(jí)語(yǔ)言轉(zhuǎn)換為高效的機(jī)器語(yǔ)言,使得程序員加專注于程序邏輯的設(shè)計(jì),提高編程效率。

3, 注意系統(tǒng)安全

主機(jī)編譯技術(shù)源代碼的安全性,避免惡意代碼的傳播。編譯后的程序運(yùn)行中,其源代碼已被隱藏,從而降低了系統(tǒng)受到攻擊的風(fēng)險(xiǎn)。

4, 適應(yīng)不同硬件平臺(tái)

隨著硬件技術(shù)的不斷發(fā)展,各種新型硬件平臺(tái)不斷涌現(xiàn)。主機(jī)編譯技術(shù)針對(duì)不同硬件平臺(tái)進(jìn)行優(yōu)化,程序不同平臺(tái)上良好的性能。

5, 支持多種編程語(yǔ)言

主機(jī)編譯技術(shù)支持多種編程語(yǔ)言,如C、C++、Java,為程序員提供了豐富的編程選擇。

主機(jī)編譯技術(shù)計(jì)算機(jī)系統(tǒng)發(fā)展中不替代的作用。信息技術(shù)日益發(fā)展的,我們?nèi)匀魂P(guān)注主機(jī)編譯技術(shù)的研究與發(fā)展。只有不斷優(yōu)化主機(jī)編譯技術(shù),才能推動(dòng)計(jì)算機(jī)系統(tǒng)向高水平發(fā)展。

主機(jī)編譯的必要性體現(xiàn)幾個(gè)一是技術(shù)發(fā)展的必然選擇;二是提高編程效率;三是注意系統(tǒng)安全;四是適應(yīng)不同硬件平臺(tái);五是支持多種編程語(yǔ)言。未來(lái)的發(fā)展中,主機(jī)編譯技術(shù)再將繼續(xù)發(fā)揮其重要作用,為我國(guó)計(jì)算機(jī)事業(yè)的發(fā)展貢獻(xiàn)力量。

云服務(wù)器建站,為什么還要搭建虛擬主機(jī),跟Web環(huán)境有區(qū)別嗎

虛擬主機(jī)也是web環(huán)境中搭建的。說(shuō)不管你用虛擬主機(jī)還是服務(wù)器,web環(huán)境是的。

不能直接用服務(wù)器建站,先有web環(huán)境部署,然后才能建站。

虛擬主機(jī)的資源很少,自己無(wú)法安裝軟件,自由度很低,想要實(shí)現(xiàn)很多網(wǎng)站功能,只能用服務(wù)器。

什么是ARP

分類:電腦/網(wǎng)絡(luò)>>反病毒

問(wèn)題描述:

點(diǎn)嗎?

:

這里沒(méi)法看圖片,你想看的話,到這里來(lái)130/CMS/Pub/neork/neork_protocal/1

ARP協(xié)議概述

IP數(shù)據(jù)包常以太網(wǎng)發(fā)送。以太網(wǎng)設(shè)備并不識(shí)別32位IP地址它們是以48位以太網(wǎng)地址傳輸以太網(wǎng)數(shù)據(jù)包的。IP驅(qū)動(dòng)器把IP目的地址轉(zhuǎn)換成以太網(wǎng)網(wǎng)目的地址。這兩種地址存著某種靜態(tài)的或算法的映射,常常查看一張表。地址協(xié)議(Addre Reolution Protocol,ARP)是用來(lái)確定這些映象的協(xié)議。

ARP工作時(shí),送出一個(gè)含有所希望的IP地址的以太網(wǎng)廣播數(shù)據(jù)包。目的地主機(jī),或個(gè)代表該主機(jī)的系統(tǒng),以一個(gè)含有IP和以太網(wǎng)地址對(duì)的數(shù)據(jù)包作為應(yīng)答。發(fā)送者再將這個(gè)地址對(duì)高速緩存,以節(jié)約不必要的ARP通信。

有一個(gè)不被信任的節(jié)點(diǎn)對(duì)本地網(wǎng)絡(luò)寫(xiě)訪問(wèn)許權(quán),那么也有某種風(fēng)險(xiǎn)。這樣一臺(tái)機(jī)器發(fā)布虛假的ARP報(bào)文并再將所有通信都轉(zhuǎn)向它自己,然后它扮演某些機(jī)器,或者順便對(duì)數(shù)據(jù)流進(jìn)行簡(jiǎn)單的修改。ARP機(jī)制常常是自動(dòng)起作用的。安全的網(wǎng)絡(luò)上, ARP映射用固件,并且自動(dòng)抑制協(xié)議達(dá)到防止干擾的目的。

圖1以太網(wǎng)上的ARP報(bào)文格式

圖1是一個(gè)用作IP到以太網(wǎng)地址轉(zhuǎn)換的ARP報(bào)文的例子。圖中每一行為32位,也是4個(gè)八位組表示,以后的圖中,我們也再將遵循這一方式。

硬件類型字段指明了發(fā)送方想知道的硬件接口類型,以太網(wǎng)的值為1。協(xié)議類型字段指明了發(fā)送方提供的高層協(xié)議類型,IP為0806(16進(jìn)制)。硬件地址長(zhǎng)度和協(xié)議長(zhǎng)度指明了硬件地址和高層協(xié)議地址的長(zhǎng)度,這樣ARP報(bào)文任意硬件和任意協(xié)議的網(wǎng)絡(luò)中用。操作字段用來(lái)表示這個(gè)報(bào)文的目的,ARP請(qǐng)求為1,ARP響應(yīng)為2,RARP請(qǐng)求為3,RARP響應(yīng)為4。

當(dāng)發(fā)出ARP請(qǐng)求時(shí),發(fā)送方填好發(fā)送方首部和發(fā)送方IP地址,還要填寫(xiě)目標(biāo)IP地址。當(dāng)目標(biāo)機(jī)器收到這個(gè)ARP廣播包時(shí),響應(yīng)報(bào)文中填上自己的48位主機(jī)地址。

2 ARP用舉例

我們先看一下linux下的arp命令(開(kāi)始arp表中的內(nèi)容為空的話,先對(duì)某臺(tái)主機(jī)進(jìn)行一個(gè)連接,例如ping一下目標(biāo)主機(jī)來(lái)產(chǎn)生一個(gè)arp項(xiàng))

d2erver:/home/kerbero arp

Addre HWtype HWaddre Flag Mak Iface

211,161,17.254 ether 00:04:9A:AD:1C:0A C eth0

Addre主機(jī)的IP地址

Hwtype主機(jī)的硬件類型

Hwaddre主機(jī)的硬件地址

Flag Mak記錄標(biāo)志,"C"表示arp高速緩存中的條目,"M"表示靜態(tài)的arp條目。

用"arp--a"命令顯示主機(jī)地址與IP地址的對(duì)應(yīng)表,也是機(jī)器中所保存的arp緩存信息。這個(gè)高速緩存存放了近Inter地址到硬件地址的映射記錄。高速緩存中每一項(xiàng)的生存時(shí)間為20分鐘,起始時(shí)間從被創(chuàng)建時(shí)開(kāi)始算起。

d2erver:/home/kerbero arp-a

(211,161,17.254) at 00:04:9A:AD:1C:0A [ether] on eth0

看到緩存中有一條211,161,17.254相對(duì)應(yīng)的arp緩存條目。

d2erver:/home/kerbero tel 211,161,17.21

Trying 211,161,17.21,..

Connected to 211,161,17.21,

Ecape character i'^]'.

^].

tel>qu

conion cloed.

執(zhí)行上面一條tel命令的用tcpdump進(jìn)行監(jiān)聽(tīng)

d2erver:/home/kerbero tcpdump-e dt hot 211,161,17.21

tcpdump: litening on eth0

我們?cè)賹⒙?tīng)到很多包,我們?nèi)∨c我們arp協(xié)議相關(guān)的2個(gè)包

1 0.0 00:D0:F8:0A:FB:83 FF:FF:FF:FF:FF:FF arp 60

who ha 211,161,17.21 tell d2erver

2 0.002344(0.0021) 00:E0:3C:43:0D:24 00:D0:F8:0A:FB:83 arp 60

arp reply 211,161,17.21 i at 00:E0:3C:43:0D:24

第1行中,源端主機(jī)(d2erver)的硬件地址是00:D0:F8:0A:FB:83。目的端主機(jī)的硬件地址是FF:FF:FF:FF:FF:FF,這是一個(gè)以太網(wǎng)廣播地址。電纜上的每個(gè)以太網(wǎng)接口都要接收這個(gè)數(shù)據(jù)幀并對(duì)它進(jìn)行處理。

第1行中緊接著的一個(gè)輸出字段是arp,表明幀類型字段的值是0x0806,說(shuō)明此數(shù)據(jù)幀是一個(gè)ARP請(qǐng)求或回答。

每行中,單詞后面的值60指的是以太網(wǎng)數(shù)據(jù)幀的長(zhǎng)度。由于ARP請(qǐng)求或回答的數(shù)據(jù)幀長(zhǎng)都是42字節(jié)(28字節(jié)的ARP數(shù)據(jù),14字節(jié)的以太網(wǎng)幀頭),每一幀都加入填充字符以達(dá)到以太網(wǎng)的小長(zhǎng)度要求60字節(jié)。

第1行中的下一個(gè)輸出字段arp who-ha表示作為ARP請(qǐng)求的這個(gè)數(shù)據(jù)幀中,目的I P地址是211,161,17.21的地址,發(fā)送端的I P地址是d2erver的地址。tcpdump打印出主機(jī)名對(duì)應(yīng)的默認(rèn)I P地址。

從第2行中看到,盡管ARP請(qǐng)求是廣播的,ARP應(yīng)答的目的地址卻是211,161,17.21(00:E0:3C:43:0D:24)。ARP應(yīng)答是直接送到請(qǐng)求端主機(jī)的,而是廣播的。tcpdump打印出arp reply的字樣,打印出響應(yīng)者的主機(jī)ip和硬件地址。

每一行中,行號(hào)后面的數(shù)字表示tcpdump收到分組的時(shí)間(以秒為單位)。除第1行外,每行括號(hào)中還包含了與上一行的時(shí)間差異(以秒為單位)。

這個(gè)時(shí)候我們?cè)倏纯礄C(jī)器中的arp緩存

d2erver:/home/kerbero arp-a

(211,161,17.254) at 00:04:9A:AD:1C:0A [ether] on eth0

(211,161,17.21) at 00:E0:3C:43:0D:24 [ether] on eth0

arp高速緩存中已經(jīng)增加了一條有關(guān)211,161,17.21的映射。

再看看其他的arp相關(guān)的命令

d2erver:/home/kerbero arp- 211,161,17.21 00:00:00:00:00:00

d2erver:/home/kerbero arp

Addre HWtype HWaddre Flag Mak Iface

211,161,17.254 ether 00:04:9A:AD:1C:0A C eth0

211,161,17.21 ether 00:00:00:00:00:00 CM eth0

d2erver:/home/kerbero arp-a

(211,161,17.254) at 00:04:9A:AD:1C:0A [ether] on eth0

(211,161,17.21) at 00:00:00:00:00:00 [ether] PERM on eth0

看到我們用arp-選項(xiàng)設(shè)置了211,161,17.21對(duì)應(yīng)的硬件地址為00:00:00:00:00:00,而且這條映射的標(biāo)志字段為CM,也是說(shuō)我們手工設(shè)置的arp選項(xiàng)為靜態(tài)arp選項(xiàng),它保持不變沒(méi)有超時(shí),不像高速緩存中的條目要時(shí)間間隔后新。

想讓手工設(shè)置的arp選項(xiàng)有超時(shí)時(shí)間的話,加上temp選項(xiàng)

d2erver:/home/kerbero arp- 211,161,17.21 00:00:00:00:00:00 temp

d2erver:/home/kerbero arp-a

(211,161,17.254) at 00:04:9A:AD:1C:0A [ether] on eth0

(211,161,17.21) at 00:00:00:00:00:00 [ether] on eth0

d2erver:/home/kerbero arp

Addre HWtype HWaddre Flag Mak Iface

211,161,17.254 ether 00:04:9A:AD:1C:0A C eth0

211,161,17.21 ether 00:00:00:00:00:00 C eth0

看到標(biāo)志字段的靜態(tài)arp標(biāo)志"M"已經(jīng)去掉了,我們手工加上的是一條動(dòng)態(tài)條目。

請(qǐng)大家注意arp靜態(tài)條目與動(dòng)態(tài)條目的區(qū)別。

不同的系統(tǒng)中,手工設(shè)置的arp靜態(tài)條目是有區(qū)別的。linux和win2000中,靜態(tài)條目不因?yàn)閭卧斓腶rp響應(yīng)包而改變,而動(dòng)態(tài)條目改變。而win98中,手工設(shè)置的靜態(tài)條目因?yàn)槭盏絺卧斓腶rp響應(yīng)包而改變。

想刪除某個(gè)arp條目(靜態(tài)條目),用下面的命令

d2erver:/home/kerbero arp-d 211,161,17.21

d2erver:/home/kerbero arp-a

(211,161,17.254) at 00:04:9A:AD:1C:0A [ether] on eth0

(211,161,17.21) at on eth0

看到211,161,17.21的arp條目已經(jīng)是不完整的了。

還有一些其他的命令,參考linux下的man文檔

d2erver:/home/kerbero man arp

ARP欺騙

我們先復(fù)習(xí)一下上面所講的ARP協(xié)議的原理。實(shí)現(xiàn)TCP/IP協(xié)議的網(wǎng)絡(luò)環(huán)境下,一個(gè)ip包走到哪里,要怎么走是靠路由表定義,,當(dāng)ip包到達(dá)該網(wǎng)絡(luò)后,哪臺(tái)機(jī)器響應(yīng)這個(gè)ip包卻是靠該ip包中所包含的硬件mac地址來(lái)識(shí)別。只有機(jī)器的硬件mac地址和該ip包中的硬件mac地址相同的機(jī)器才應(yīng)答這個(gè)ip包,因?yàn)榫W(wǎng)絡(luò)中,每一臺(tái)主機(jī)都有發(fā)送ip包的時(shí)候,每臺(tái)主機(jī)的內(nèi)存中,都有一個(gè) arp-->硬件mac的轉(zhuǎn)換表。是動(dòng)態(tài)的轉(zhuǎn)換表(該arp表手工添加靜態(tài)條目)。該對(duì)應(yīng)表被主機(jī)時(shí)間間隔后刷新。這個(gè)時(shí)間間隔是ARP高速緩存的超時(shí)時(shí)間。

主機(jī)發(fā)送一個(gè)ip包,它要到該轉(zhuǎn)換表中尋找和ip包對(duì)應(yīng)的硬件mac地址,沒(méi)有找到,該主機(jī)發(fā)送一個(gè)ARP廣播包,于是,主機(jī)刷新自己的ARP緩存。然后發(fā)出該ip包。

了解這些常識(shí)后,現(xiàn)談以太網(wǎng)絡(luò)中如何實(shí)現(xiàn)ARP欺騙了,看看這樣一個(gè)例子。

3,1同一網(wǎng)段的ARP欺騙

圖2同一網(wǎng)段的arp欺騙

如圖2所示,三臺(tái)主機(jī)

A: ip地址 192,168.0.1硬件地址 AA:AA:AA:AA:AA:AA

B: ip地址 192,168.0.2硬件地址 BB:BB:BB:BB:BB:BB

C: ip地址 192,168.0.3硬件地址 CC:CC:CC:CC:CC:CC

一個(gè)位于主機(jī)B的入侵者想非法進(jìn)入主機(jī)A,這臺(tái)主機(jī)上安裝有防火墻。收集資料他知道這臺(tái)主機(jī)A的防火墻只對(duì)主機(jī)C有信任關(guān)系(開(kāi)放23端口(tel))。而他要用tel來(lái)進(jìn)入主機(jī)A,這個(gè)時(shí)候他應(yīng)該如何處理呢?

我們這樣考慮,入侵者讓主機(jī)A相信主機(jī)B是主機(jī)C,主機(jī)A和主機(jī)C的信任關(guān)系是建立ip地址之上的。單單把主機(jī)B的ip地址改的和主機(jī)C的一樣,那是不能工作的,至少不能靠地工作。你告訴以太網(wǎng)卡設(shè)備驅(qū)動(dòng)程序,自己IP是192,168.0.3,那么這只是純粹的競(jìng)爭(zhēng)關(guān)系,并不能達(dá)到目標(biāo)。我們先研究C這臺(tái)機(jī)器我們能讓這臺(tái)機(jī)器暫時(shí)當(dāng)?shù)?,?jìng)爭(zhēng)關(guān)系解除,這個(gè)還是有實(shí)現(xiàn)的。機(jī)器C當(dāng)?shù)舻脑賹C(jī)器B的ip地址改為192,168.0.3,這樣成功的23端口tel到機(jī)器A上面,而成功的繞過(guò)防火墻的限制。

上面的這種想法下面的下是沒(méi)有作用的,主機(jī)A和主機(jī)C的信任關(guān)系是建立硬件地址的基礎(chǔ)上。這個(gè)時(shí)候還用ARP欺騙的手段讓主機(jī)A把自己的ARP緩存中的關(guān)于192,168.0.3映射的硬件地址改為主機(jī)B的硬件地址。

我們?nèi)藶榈闹圃煲粋€(gè)arp_reply的響應(yīng)包,發(fā)送給想要欺騙的主機(jī),這是實(shí)現(xiàn)的,因?yàn)閰f(xié)議并沒(méi)有規(guī)定接收到arp_echo后才發(fā)送響應(yīng)包.這樣的工具很多,我們直接用nifferpro抓一個(gè)arp響應(yīng)包,然后進(jìn)行修改。

你人為地制造這個(gè)包。指定ARP包中的源IP、目標(biāo)IP、源MAC地址、目標(biāo)MAC地址。

這樣你虛假的ARP響應(yīng)包來(lái)修改主機(jī)A上的動(dòng)態(tài)ARP緩存達(dá)到欺騙的目的。

下面是具體的步驟

他先研究192,0.0.3這臺(tái)主機(jī),發(fā)現(xiàn)這臺(tái)主機(jī)的漏洞。

發(fā)現(xiàn)的漏洞使主機(jī)C當(dāng)?shù)簦瑫簳r(shí)停止工作。

這段時(shí)間里,入侵者把自己的ip改成192,0.0.3

他用工具發(fā)一個(gè)源ip地址為192,168.0.3源MAC地址為BB:BB:BB:BB:BB:BB的包給主機(jī)A,要求主機(jī)A新自己的arp轉(zhuǎn)換表。

主機(jī)新了arp表中關(guān)于主機(jī)C的ip-->mac對(duì)應(yīng)關(guān)系。

防火墻失效了,入侵的ip變成合法的mac地址,tel了。

上面是一個(gè)ARP的欺騙,這是同網(wǎng)段發(fā)生的,,提醒注意的是,B和C處于不同網(wǎng)段的時(shí)候,上面的方法是不起作用的。

3,2不同網(wǎng)段的ARP欺騙

圖3不同網(wǎng)段的ARP欺騙

如圖3所示A、C位于同一網(wǎng)段而主機(jī)B位于網(wǎng)段,三臺(tái)機(jī)器的ip地址和硬件地址如下

A: ip地址 192,168.0.1硬件地址 AA:AA:AA:AA:AA:AA

B: ip地址 192,168.1,2硬件地址 BB:BB:BB:BB:BB:BB

C: ip地址 192,168.0.3硬件地址 CC:CC:CC:CC:CC:CC

現(xiàn)的下,位于192,168.1網(wǎng)段的主機(jī)B如何冒充主機(jī)C欺騙主機(jī)A呢?顯然用上面的辦法的話,即使欺騙成功,那么由主機(jī)B和主機(jī)A也無(wú)法建立tel話,因?yàn)槁酚善鞑话阎鳈C(jī)A發(fā)給主機(jī)B的包向外轉(zhuǎn)發(fā),路由器發(fā)現(xiàn)地址192,168.0.這個(gè)網(wǎng)段之內(nèi)。

現(xiàn)涉及到欺騙方式―ICMP重定向。把ARP欺騙和ICMP重定向結(jié)合一起實(shí)現(xiàn)跨網(wǎng)段欺騙的目的。

什么是ICMP重定向呢?

ICMP重定向報(bào)文是ICMP控制報(bào)文中的。特定的下,當(dāng)路由器檢測(cè)到一臺(tái)機(jī)器用非優(yōu)化路由的時(shí)候,它向該主機(jī)發(fā)送一個(gè)ICMP重定向報(bào)文,請(qǐng)求主機(jī)改變路由。路由器也把初始數(shù)據(jù)報(bào)向它的目的地轉(zhuǎn)發(fā)。

我們利用ICMP重定向報(bào)文達(dá)到欺騙的目的。

下面是結(jié)合ARP欺騙和ICMP重定向進(jìn)行攻擊的步驟

為了使自己發(fā)出的非法ip包能網(wǎng)絡(luò)上可以存活長(zhǎng)久一點(diǎn),開(kāi)始修改ip包的生存時(shí)間ttl為下面的中帶來(lái)的問(wèn)題做準(zhǔn)備。把ttl改成255,(ttl定義一個(gè)ip包網(wǎng)絡(luò)上到不了主機(jī)后,網(wǎng)絡(luò)上能存活的時(shí)間,改長(zhǎng)一點(diǎn)本例中有利于做充足的廣播)

下載一個(gè)自由制作各種包的工具(例如hping2)

然后和上面一樣,尋找主機(jī)C的漏洞按照這個(gè)漏洞當(dāng)?shù)糁鳈C(jī)C。

該網(wǎng)絡(luò)的主機(jī)找不到原來(lái)的192,0.0.3后,再將新自己的ARP對(duì)應(yīng)表。于是他發(fā)送一個(gè)原ip地址為192,168.0.3硬件地址為BB:BB:BB:BB:BB:BB的ARP響應(yīng)包。

好了,現(xiàn)每臺(tái)主機(jī)都知道了,一個(gè)新的MAC地址對(duì)應(yīng)192,0.0.3,一個(gè)ARP欺騙完成了,,每臺(tái)主機(jī)都只局域網(wǎng)中找這個(gè)地址而根本不把發(fā)送給192,0.0.3的ip包丟給路由。于是他還得構(gòu)造一個(gè)ICMP的重定向廣播。

自己定制一個(gè)ICMP重定向包告訴網(wǎng)絡(luò)中的主機(jī)"到192,0.0.3的路由短路徑不是局域網(wǎng),而是路由,請(qǐng)主機(jī)重定向你們的路由路徑,把所有到192,0.0.3的ip包丟給路由。"

主機(jī)A接受這個(gè)合理的ICMP重定向,于是修改自己的路由路徑,把對(duì)192,0.0.3的通訊都丟給路由器。

入侵者終于路由外收到來(lái)自路由內(nèi)的主機(jī)的ip包了,他開(kāi)始tel到主機(jī)的23口。

其實(shí)上面的想法只是理想話的,主機(jī)許接收的ICMP重定向包其實(shí)有很多的限制條件,這些條件使ICMP重定向變的非常困難。

TCP/IP協(xié)議實(shí)現(xiàn)中關(guān)于主機(jī)接收ICMP重定向報(bào)文有下面幾條限制

新路由是直達(dá)的

重定向包來(lái)自去往目標(biāo)的當(dāng)前路由

重定向包不能通知主機(jī)用自己做路由

被改變的路由是一條間接路由

由于有這些限制,ICMP欺騙實(shí)際上很難實(shí)現(xiàn)。我們主動(dòng)的上面的思維尋找一些其他的方法。為我們知道了這些欺騙方法的危害性,我們采取相應(yīng)的防御辦法。

3,3 ARP欺騙的防御

知道了ARP欺騙的方法和危害,我們給出一些初步的防御方法

不要把你的網(wǎng)絡(luò)安全信任關(guān)系建立ip地址的基礎(chǔ)上或硬件mac地址基礎(chǔ)上,(rarp同樣存欺騙的問(wèn)題),理想的關(guān)系應(yīng)該建立ip+mac基礎(chǔ)上。

設(shè)置靜態(tài)的mac-->ip對(duì)應(yīng)表,不要讓主機(jī)刷新你設(shè)定好的轉(zhuǎn)換表。

除非很有必要,否則停止用ARP,再將ARP做為條目保存對(duì)應(yīng)表中。linux下用ifconfig-arp使網(wǎng)卡驅(qū)動(dòng)程序停止用ARP。

用代理網(wǎng)關(guān)發(fā)送外出的通訊。

修改系統(tǒng)拒收ICMP重定向報(bào)文

linux下防火墻上拒絕ICMP重定向報(bào)文或者是修改內(nèi)核選項(xiàng)重新編譯內(nèi)核來(lái)拒絕接收ICMP重定向報(bào)文。

win2000下防火墻和IP策略拒絕接收ICMP報(bào)文。

4代理ARP的應(yīng)用

代理ARP有兩大應(yīng)用,一個(gè)是有利的是我們防火墻實(shí)現(xiàn)中常說(shuō)的透明模式的實(shí)現(xiàn),個(gè)是有害的是達(dá)到交換環(huán)境中進(jìn)行嗅探的目的.由此見(jiàn)同樣技術(shù)被應(yīng)用于不同的目的,效果是不一樣的.

我們先來(lái)看交換環(huán)境中局域網(wǎng)的嗅探.

局域網(wǎng)環(huán)境中,我們都是交換環(huán)境的網(wǎng)關(guān)上網(wǎng)的。交換環(huán)境中用NetXray或者NAI Sniffer一類的嗅探工具除了抓到自己的包以外,是不能看到其他主機(jī)的網(wǎng)絡(luò)通信的。

我們利用ARP欺騙實(shí)現(xiàn)Sniffer的目的。

ARP協(xié)議是再將IP地址為MAC地址的協(xié)議,局域網(wǎng)中的通信都是基于MAC地址的。

圖4交換網(wǎng)絡(luò)中的ARP欺騙

如圖4所示,三臺(tái)主機(jī)位于一個(gè)交換網(wǎng)絡(luò)的環(huán)境中,其中A是網(wǎng)關(guān)

A: ip地址 192,168.0.1硬件地址 AA:AA:AA:AA:AA

B: ip地址 192,168.0.2硬件地址 BB:BB:BB:BB:BB

Cip地址 192,168.0.3硬件地址 CC:CC:CC:CC:CC

局域網(wǎng)中192,168.0.2和192,168.0.3都是網(wǎng)關(guān)192,168.0.1上網(wǎng)的,假定攻擊者的系統(tǒng)為192,168.0.2,他希望聽(tīng)到192,168.0.3的通信,那么我們利用ARP欺騙實(shí)現(xiàn)。

這種欺騙的中心原則是arp代理的應(yīng)用.主機(jī)A是局域網(wǎng)中的代理服務(wù)器,局域網(wǎng)中每個(gè)節(jié)點(diǎn)的向外的通信都要它.主機(jī)B想要聽(tīng)主機(jī)C的通信,它先用ARP欺騙,讓主機(jī)C認(rèn)為它是主機(jī)A,這個(gè)時(shí)候它發(fā)一個(gè)IP地址為192,168.0.1,物理地址為BB:BB:BB:BB:BB:BB的ARP響應(yīng)包給主機(jī)C,這樣主機(jī)C把發(fā)往主機(jī)A的包發(fā)往主機(jī)B.同理,還要讓網(wǎng)關(guān)A相信它是主機(jī)C,向網(wǎng)關(guān)A發(fā)送一個(gè)IP地址為192,168.0.3,物理地址為BB:BB:BB:BB:BB:BB的包.

上面這一步的操作和前面的ARP欺騙的原理是一樣的,還是有問(wèn)題,過(guò)一段時(shí)間主機(jī)B發(fā)現(xiàn)自己無(wú)法上網(wǎng).所面還有一個(gè)步驟是主機(jī)B上轉(zhuǎn)發(fā)從主機(jī)A到主機(jī)C的包,并且轉(zhuǎn)發(fā)從主機(jī)C到主機(jī)A的包.現(xiàn)我們看到其實(shí)主機(jī)B主機(jī)A和主機(jī)C的通訊中起到了一個(gè)代理的作用,這是為什么叫做ARP代理的原因.

具體實(shí)現(xiàn)要用到兩個(gè)工具dniff和fragrouter,dniff用來(lái)實(shí)現(xiàn)ARP欺騙,fragroute用來(lái)進(jìn)行包的轉(zhuǎn)發(fā).

利用dniff中的arppoof來(lái)實(shí)現(xiàn)ARP欺騙,dniff軟件下面的網(wǎng)址下載:

naughty.monkey/~dugong/dniff

安裝這個(gè)軟件包先要下載安裝lib.

欺騙192,168.0.3,告訴這臺(tái)機(jī)器網(wǎng)關(guān)192,168.0.1的MAC地址是192,168.0.2的MAC地址.

[root@ound dniff-2,3]./arppoof-i eth0-t 192,168.0.3 192,168.0.1欺騙192,168.0.1,告訴192,168.0.1主機(jī)192,168.0.3的MAC地址是192,168.0.2的MAC地址。

[root@ound dniff-2,3]./arppoof-i eth0-t 192,168.0.1 192,168.0.3現(xiàn)我們已經(jīng)完成了步的欺騙,這個(gè)欺騙是arppoof來(lái)完成的,用別的工具甚至自己發(fā)包來(lái)完成.現(xiàn)我們看到主機(jī)A和主機(jī)C的arp列表里面都完成了我們的工作.后面的透明代理中我們?cè)賹⒂貌煌睦砟?

下面我們先打開(kāi)linux系統(tǒng)中的轉(zhuǎn)發(fā)包的選項(xiàng):

[root@ound/root] echo"1">/proc/yipv4/ip_forward下面我們下載大名鼎鼎的dugong的一個(gè)工具fragroute,這個(gè)工具以前叫做fragrouter(僅有1字的差別)用于實(shí)現(xiàn)入侵檢測(cè)系統(tǒng)處理分片的ip和tcp包功能的檢測(cè),本身自代包轉(zhuǎn)發(fā)的功能.到下面的網(wǎng)站下載:

monkey/~dugong/fragroute/

安裝這個(gè)軟件包先要下載安裝libpcap和libevent.

我們用fragrouter來(lái)完成:

packettormecury/group/ w00w00/ectool/fragrouter/

[root@ound fragrouter-1,6]./fragrouter-B1

fragrouter: bae-1: normal IP forwarding

現(xiàn)實(shí)現(xiàn)交換局域網(wǎng)中嗅探的目標(biāo).上面這些只是一些原理性的,真正的用中遇到很多的問(wèn)題,比如如何實(shí)現(xiàn)對(duì)網(wǎng)關(guān)A和主機(jī)C的欺騙,以及如何處理出現(xiàn)的廣播風(fēng)暴問(wèn)題,這些實(shí)踐中學(xué)習(xí).還有一個(gè)叫arpniff的工具可以很方便的完成這一功能,很多網(wǎng)站都提供下載,界面比較友好,由于和上面的原理一樣,只是工具用上的不同并且添加了一些附加的功能,這里不進(jìn)行.

代理ARP的一個(gè)應(yīng)用是防火墻的透明代理的實(shí)現(xiàn).我們都知道早期的防火墻大都是基于路由模式,也是防火墻要完成一個(gè)路由的作用.這種接入方式局域網(wǎng)內(nèi)的主機(jī)上設(shè)置防火墻的IP為代理,而且外部路由器的路由表中加入一條指向防火墻的路由.這種方式的缺點(diǎn)于不透明,進(jìn)行過(guò)多的設(shè)置,并且破壞了原有的網(wǎng)絡(luò)拓?fù)?現(xiàn)幾乎全部的防火墻都實(shí)現(xiàn)了透明接入的功能,用戶的路由器和客戶端不用做任何修改,用戶甚至感覺(jué)不到透明接入方式防火墻的存.這種透明接入的原理是ARP代理.

我們現(xiàn)看如何配置一臺(tái)主機(jī)作為透明接入模式的防火墻(透明接入的防火墻不IP),

圖5

如圖5所示,一臺(tái)防火墻連接內(nèi)部網(wǎng)段和DMZ網(wǎng)段到外部路由.我們這臺(tái)用作防火墻的主機(jī)上用linux操作系統(tǒng),這樣我們方便的用iptable防火墻.假設(shè)三塊網(wǎng)卡為eth0,eth1和eth2,eth0和路由器相連,eth1和內(nèi)網(wǎng)相連.eth2和外網(wǎng)相連.假設(shè)DMZ區(qū)有2臺(tái)服務(wù)器.

內(nèi)網(wǎng)地址:192,168.1,0/24

DMZ地址:192,168.1,2---192,168.1,3

路由器的ip地址:192,168.1,1

eth0:AA:AA:AA:AA:AA:AA

eth1:BB:BB:BB:BB:BB:BB

eth2:CC:CC:CC:CC:CC:CC

和前面差不多,步實(shí)現(xiàn)ARP欺騙,這次我們有個(gè)簡(jiǎn)單的實(shí)現(xiàn).我們把路由器的IP地址和防火墻的eth1和eth2的網(wǎng)卡物理地址綁定,再將內(nèi)網(wǎng)和DMZ網(wǎng)段的IP地址和eth0的網(wǎng)卡綁定,linux系統(tǒng)上我們用arp命令實(shí)現(xiàn):

arp- 192,168.1,1 BB:BB:BB:BB:BB:BB

arp- 192,168.1,1 CC:CC:CC:CC:CC:CC

arp- 192,168.1,0/24 AA:AA:AA:AA:AA:AA

第二部我們基于linux的防火墻上設(shè)置路由,把目標(biāo)地址是外部路由的包轉(zhuǎn)發(fā)到eth0,把目標(biāo)地址為內(nèi)網(wǎng)的包轉(zhuǎn)發(fā)到eth1,把目標(biāo)地址是DMZ網(wǎng)段服務(wù)器的包轉(zhuǎn)發(fā)到eth2,linux下面用route命令實(shí)現(xiàn)

route add 192,168.1,1 dev eth0

route add- 192,168.1,0/24 dev eth1

route add 192,168.1,2 dev eth2

route add 192,168.1,3 dev eth3

(針對(duì)DMZ網(wǎng)段里面的每臺(tái)服務(wù)器都要增加一條單獨(dú)的路由)現(xiàn)我們已經(jīng)實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的arp代理的透明接入,對(duì)應(yīng)于防火墻的iptable部分要配置,iptable的配置不范疇之內(nèi).

小結(jié)

了ARP協(xié)議以及與其相關(guān)的安全問(wèn)題。一個(gè)重要的安全問(wèn)題是ARP欺騙,我們講到了同一網(wǎng)段的ARP欺騙以及跨網(wǎng)段的ARP欺騙和ICMP重定向相結(jié)合的方法。由于有這些安全問(wèn)題的存,我們給出一些的解決辦法。談到了利用代理ARP實(shí)現(xiàn)交換網(wǎng)絡(luò)中嗅探和防火墻的透明接入。

單片機(jī)主機(jī)有哪些類型

一個(gè)集成一塊芯片上的完整計(jì)算機(jī)系統(tǒng)。盡管他的大部分功能集成一塊小芯片上,它一個(gè)完整計(jì)算機(jī)所的大部分部件CPU、內(nèi)存、內(nèi)部和外部總線系統(tǒng),目前大部分還外存。集成諸如通訊接口、定時(shí)器,實(shí)時(shí)時(shí)鐘外圍設(shè)備。而現(xiàn)強(qiáng)大的單片機(jī)系統(tǒng)甚至再將聲音、圖像、網(wǎng)絡(luò)、復(fù)雜的輸入輸出系統(tǒng)集成一塊芯片上。

單片機(jī)也被稱為微控制器(Microcontroler),是因?yàn)樗绫挥霉I(yè)控制領(lǐng)域。單片機(jī)由芯片內(nèi)僅有CPU的專用處理器發(fā)展而來(lái)。早的設(shè)計(jì)理念是再將大量外圍設(shè)備和CPU集成一個(gè)芯片中,使計(jì)算機(jī)系統(tǒng)小,容易集成進(jìn)復(fù)雜的而對(duì)提及要求嚴(yán)格的控制設(shè)備當(dāng)中。INTEL的Z80是早按照這種思想設(shè)計(jì)出的處理器,從此以后,單片機(jī)和專用處理器的發(fā)展便分道揚(yáng)鑣。

早期的單片機(jī)都是8位或4位的。其中成功的是INTEL的8031,因?yàn)楹?jiǎn)單靠而性能不錯(cuò)獲得了很大的好評(píng)。此后8031上發(fā)展出了MCS51系列單片機(jī)系統(tǒng)。基于這一系統(tǒng)的單片機(jī)系統(tǒng)直到現(xiàn)還廣泛用。隨著工業(yè)控制領(lǐng)域要求的提高,開(kāi)始出現(xiàn)了16位單片機(jī),可因?yàn)樾詢r(jià)比不理想并未得到很廣泛的應(yīng)用。90年代后隨著消費(fèi)電子產(chǎn)品大發(fā)展,單片機(jī)技術(shù)得到了巨大的提高。隨著INTEL i960系列后來(lái)的ARM系列的廣泛應(yīng)用,32位單片機(jī)迅速取代16位單片機(jī)的高端地位,并且進(jìn)入主流市場(chǎng)。而傳統(tǒng)的8位單片機(jī)的性能也得到了飛速提高,處理能力比起80年代提高了數(shù)百倍。目前,高端的32位單片機(jī)主頻已經(jīng)超過(guò)300MHz,性能直追90年代中期的專用處理器,而普通的型號(hào)出廠價(jià)格跌落至1美元,端的型號(hào)也只有10美元。當(dāng)代單片機(jī)系統(tǒng)已經(jīng)不再只裸機(jī)環(huán)境下開(kāi)發(fā)和用,大量專用的嵌入式操作系統(tǒng)被廣泛應(yīng)用全系列的單片機(jī)上。而作為掌上電腦和手機(jī)核心處理的高端單片機(jī)甚至直接用專用的Window和Linux操作系統(tǒng)。

單片機(jī)比專用處理器適合應(yīng)用于嵌入式系統(tǒng),它得到了多的應(yīng)用。事實(shí)上單片機(jī)是世界上數(shù)量多的計(jì)算機(jī)?,F(xiàn)代人類生活中所用的幾乎每件電子和機(jī)械產(chǎn)品中都集成有單片機(jī)。手機(jī)、電話、計(jì)算器、家用電器、電子玩具、掌上電腦以及鼠標(biāo)電腦配件中都配有1-2部單片機(jī)。而個(gè)人電腦中也有為數(shù)不少的單片機(jī)工作。汽車上配備40多部單片機(jī),復(fù)雜的工業(yè)控制系統(tǒng)上甚至有數(shù)百臺(tái)單片機(jī)工作!單片機(jī)的數(shù)量不僅遠(yuǎn)超過(guò)PC機(jī)和其他計(jì)算的,甚至比人類的數(shù)量還要多。

單片機(jī)

[編輯本段]

單片機(jī)又稱單片微控制器,它不是完成某一個(gè)邏輯功能的芯片,而是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。概括的講一塊芯片成了一臺(tái)計(jì)算機(jī)。它的體積小、質(zhì)量輕、價(jià)格便宜、為學(xué)習(xí)、應(yīng)用和開(kāi)發(fā)提供了便利條件。學(xué)習(xí)用單片機(jī)是了解計(jì)算機(jī)原理與結(jié)構(gòu)的選擇。

單片機(jī)內(nèi)部也用和電腦功能類似的模塊,比如CPU,內(nèi)存,并行總線,還有和硬盤(pán)作用相同的存儲(chǔ)器件,不同的是它的這些部件性能都相對(duì)我們的家用電腦弱很多,價(jià)錢(qián)也是低的,不超過(guò)10元即......用它來(lái)做一些控制電器一類不是很復(fù)雜的工作足矣了。我們現(xiàn)用的全自動(dòng)滾筒洗衣機(jī)、排煙罩、VCD的家電里面都看到它的身影!......它是作為控制部分的核心部件。

它是線式實(shí)時(shí)控制計(jì)算機(jī),線式是現(xiàn)場(chǎng)控制,的是有較強(qiáng)的抗干擾能力,較低的成本,這也是和離線式計(jì)算機(jī)的(比如家用PC)的區(qū)別。

單片機(jī)是靠程序的,并且修改。不同的程序?qū)崿F(xiàn)不同的功能,尤其是特殊的獨(dú)特的一些功能,這是別的器件費(fèi)很大力氣才能做到的,有些則是花大力氣也很難做到的。一個(gè)不是很復(fù)雜的功能要是用美國(guó)50年代開(kāi)發(fā)的74系列,或者60年代的CD4000系列這些純硬件來(lái)搞定的話,電路一定是一塊大PCB板!要是用美國(guó)70年代成功投放市場(chǎng)的系列單片機(jī),結(jié)果有天壤之別!只因?yàn)閱纹瑱C(jī)的你編寫(xiě)的程序?qū)崿F(xiàn)高智能,高效率,以及高靠性!

由于單片機(jī)對(duì)成本是敏感的,目前占統(tǒng)治地位的軟件還是級(jí)匯編語(yǔ)言,它是除了二進(jìn)制機(jī)器碼級(jí)的語(yǔ)言了,既然這么低級(jí)為什么還要用呢?很多高級(jí)的語(yǔ)言已經(jīng)達(dá)到了視化編程的水平為什么不用呢?原因很簡(jiǎn)單,是單片機(jī)沒(méi)有家用計(jì)算機(jī)那樣的CPU,也沒(méi)有像硬盤(pán)那樣的海量存儲(chǔ)設(shè)備。一個(gè)視化高級(jí)語(yǔ)言編寫(xiě)的小程序里面即使只有一個(gè)按鈕,也達(dá)到幾十K的尺寸!家用PC的硬盤(pán)來(lái)講沒(méi)什么,單片機(jī)來(lái)講是不能接受的。單片機(jī)硬件資源的利用率很高才行,匯編雖然原始卻還是大量用。一樣的道理,把巨型計(jì)算機(jī)上的操作系統(tǒng)和應(yīng)用軟件拿到家用PC上來(lái)運(yùn)行,家用PC的也是承受不了的。

說(shuō),二十世紀(jì)跨越了三個(gè)“電”的時(shí)代,即電氣時(shí)代、電子時(shí)代和現(xiàn)已進(jìn)入的電腦時(shí)代。,這種電腦,是指?jìng)€(gè)人計(jì)算機(jī),簡(jiǎn)稱PC機(jī)。它由主機(jī)、鍵盤(pán)、顯示器組成。還有一類計(jì)算機(jī),大多數(shù)人卻不怎么熟悉。這種計(jì)算機(jī)是把智能賦予各種機(jī)械的單片機(jī)(亦稱微控制器)。顧名思義,這種計(jì)算機(jī)的小系統(tǒng)只用了一片集成電路,即進(jìn)行簡(jiǎn)單運(yùn)算和控制。因?yàn)樗w積小,都藏被控機(jī)械的“肚子”里。它整個(gè)裝置中,起著有如人類頭腦的作用,它出了毛病,整個(gè)裝置癱瘓了?,F(xiàn),這種單片機(jī)的用領(lǐng)域已十分廣泛,如智能儀表、實(shí)時(shí)工控、通訊設(shè)備、導(dǎo)航系統(tǒng)、家用電器。各種產(chǎn)品一旦用上了單片機(jī),能起到使產(chǎn)品升級(jí)換代的功效,常產(chǎn)品名稱前冠以形容詞——“智能型”,如智能型洗衣機(jī)?,F(xiàn)有些工廠的技術(shù)人員或其它業(yè)余電子開(kāi)發(fā)者搞出來(lái)的某些產(chǎn)品,不是電路太復(fù)雜,是功能太簡(jiǎn)單且極易被仿制。究其原因,卡產(chǎn)品未用單片機(jī)或其它編程邏輯器件上。

單片機(jī)的應(yīng)用領(lǐng)域

[編輯本段]

目前單片機(jī)滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域沒(méi)有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動(dòng)化的實(shí)時(shí)控制和數(shù)據(jù)處理,廣泛用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄象機(jī)、攝象機(jī)、全自動(dòng)洗衣機(jī)的控制,以及程控玩具、電子寵物,這些都離不開(kāi)單片機(jī)。不用說(shuō)自動(dòng)控制領(lǐng)域的機(jī)器人、智能儀表、醫(yī)療器械了。單片機(jī)的學(xué)習(xí)、開(kāi)發(fā)與應(yīng)用再將造一批計(jì)算機(jī)應(yīng)用與智能化控制的科學(xué)家、工程師。

單片機(jī)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及控制領(lǐng)域,大致分如下幾個(gè)范疇

1,智能儀器儀表上的應(yīng)用

單片機(jī)體積小、功耗低、控制功能強(qiáng)、擴(kuò)展靈活、微型化和用方便優(yōu)點(diǎn),廣泛應(yīng)用于儀器儀表中,結(jié)合不同類型的傳感器,實(shí)現(xiàn)諸如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長(zhǎng)度、硬度、元素、壓力物理量的測(cè)量。采用單片機(jī)控制使得儀器儀表數(shù)字化、智能化、微型化,且功能比起采用電子或數(shù)字電路加強(qiáng)大。例如精密的測(cè)量設(shè)備(功率計(jì),示波器,各種儀)。

2,工業(yè)控制中的應(yīng)用

用單片機(jī)構(gòu)成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。例如工廠流水線的智能化管理,電梯智能化控制、各種報(bào)警系統(tǒng),與計(jì)算機(jī)聯(lián)網(wǎng)構(gòu)成二級(jí)控制系統(tǒng)。

3,家用電器中的應(yīng)用

這樣說(shuō),現(xiàn)的家用電器上都采用了單片機(jī)控制,從電飯褒、洗衣機(jī)、電冰箱、空調(diào)機(jī)、彩電、其他音響視頻器材、再到電子秤量設(shè)備,五花八門(mén),無(wú)所不。

4,計(jì)算機(jī)網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用

現(xiàn)代的單片機(jī)普遍具備通信接口,很方便地與計(jì)算機(jī)進(jìn)行數(shù)據(jù)通信,為計(jì)算機(jī)網(wǎng)絡(luò)和通信設(shè)備間的應(yīng)用提供了極好的物質(zhì)條件,現(xiàn)的通信設(shè)備上都實(shí)現(xiàn)了單片機(jī)智能控制,從手機(jī),電話機(jī)、小型程控交換機(jī)、樓宇自動(dòng)通信呼叫系統(tǒng)、列車無(wú)線通信、再到日常工作中隨處見(jiàn)的移動(dòng)電話,集移動(dòng)通信,無(wú)線電對(duì)講機(jī)。

5,單片機(jī)醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用

單片機(jī)醫(yī)用設(shè)備中的用途亦相當(dāng)廣泛,例如醫(yī)用呼吸機(jī),各種儀,監(jiān)護(hù)儀,超聲診斷設(shè)備及病床呼叫系統(tǒng)。

單片機(jī)工商,金融,科研、教育,國(guó)防航空航天領(lǐng)域都有著十分廣泛的用途。

學(xué)習(xí)應(yīng)中六大重要部分

[編輯本段]

單片機(jī)學(xué)習(xí)應(yīng)中的六大重要部分

一、總線我們知道,一個(gè)電路總是由元器件電線連接而成的,模擬電路中,連線并不成為一個(gè)問(wèn)題,因?yàn)楦髌骷g是串行關(guān)系,各器件的連線并不很多,可計(jì)算機(jī)電路卻不一樣,它是以微處理器為核心,各器件都要與微處理器相連,各器件的工作相互協(xié)調(diào),的連線很多了,仍如同模擬電路一樣,各微處理器和各器件間單獨(dú)連線,則線的數(shù)量再將多得驚人,微處理機(jī)中引入了總線的概念,各個(gè)器件共同享用連線,所有器件的8根數(shù)據(jù)線全部接到8根公用的線上,即相當(dāng)于各個(gè)器件并聯(lián),可僅這樣還不行,有兩個(gè)器件送出數(shù)據(jù),一個(gè)為0,一個(gè)為1,那么,接收方接收到的究竟是什么呢?這種是不允許的,要控制線進(jìn)行控制,使器件分時(shí)工作,任何時(shí)候只能有一個(gè)器件發(fā)送數(shù)據(jù)(有多個(gè)器件接收)。器件的數(shù)據(jù)線也被稱為數(shù)據(jù)總線,器件所有的控制線被稱為控制總線。單片機(jī)內(nèi)部或者外部存儲(chǔ)器及其它器件中有存儲(chǔ)單元,這些存儲(chǔ)單元要被分配地址,才能用,分配地址也是以電信號(hào)的形式給出的,由于存儲(chǔ)單元比較多,用于地址分配的線也較多,這些線被稱為地址總線。

二、數(shù)據(jù)、地址、指令之再將這三者放一起,是因?yàn)檫@三者的本質(zhì)都是一樣的——數(shù)字,或者說(shuō)都是一串‘0’和‘1’組成的序列。換,地址、指令也都是數(shù)據(jù)。指令由單片機(jī)芯片的設(shè)計(jì)者規(guī)定的數(shù)字,它與我們常用的指令助記符有著嚴(yán)格的一一對(duì)應(yīng)關(guān)系,不由單片機(jī)的開(kāi)發(fā)者改。地址是尋找單片機(jī)內(nèi)部、外部的存儲(chǔ)單元、輸入輸出口的依據(jù),內(nèi)部單元的地址值已由芯片設(shè)計(jì)者規(guī)定好,不改,外部的單元由單片機(jī)開(kāi)發(fā)者自行決定,可有一些地址單元是有的(詳見(jiàn)程序的執(zhí)行)。數(shù)據(jù)這是由微處理機(jī)處理的對(duì)象,各種不同的應(yīng)用電路中各不相同,被處理的數(shù)據(jù)有這么

1?地址(如MOV DPTR,1000H),即地址1000H送入DPTR。

2?方式字或控制字(如MOV TMOD,3),3即是控制字。

3?常數(shù)(如MOV TH0,10H)10H即定時(shí)常數(shù)。

4?實(shí)際輸出值(如P1口接彩燈,要燈全亮,則執(zhí)行指令MOV P1,0FFH,要燈全暗,則執(zhí)行指令MOV P1,00H)這里0FFH和00H都是實(shí)際輸出值。又如用于LED的字形碼,也是實(shí)際輸出的值。

理解了地址、指令的本質(zhì),不難理解程序運(yùn)行中為什么跑飛,把數(shù)據(jù)當(dāng)成指令來(lái)執(zhí)行了。

三、P0口、P2口和P3的第二功能用法初學(xué)時(shí)往往對(duì)P0口、P2口和P3口的第二功能用法迷惑不解,認(rèn)為第二功能和原功能要有一個(gè)切換的,或者說(shuō)要有一條指令,各端口的第二功能完全是自動(dòng)的,不用指令來(lái)轉(zhuǎn)換。如P3,6、P3,7分別是WR、RD信號(hào),當(dāng)微片理機(jī)外接RAM或有外部I/O口時(shí),它們被用作第二功能,不能作為通用I/O口用,只要一微處理機(jī)一執(zhí)行到MOVX指令,有相應(yīng)的信號(hào)從P3,6或P3,7送出,不事先用指令說(shuō)明。事實(shí)上‘不能作為通用I/O口用’也并不是‘不能’而是(用者)‘不’再將其作為通用I/O口用。你完全指令中按排一條SETB P3,7的指令,并且當(dāng)單片機(jī)執(zhí)行到這條指令時(shí),也使P3,7變?yōu)楦唠娖?,可用者不這么去做,因?yàn)檫@這系統(tǒng)的崩潰。

四、程序的執(zhí)行單片機(jī)通電復(fù)位后8051內(nèi)的程序計(jì)數(shù)器(PC)中的值為‘0000’,程序總是從‘0000’單元開(kāi)始執(zhí)行,也是說(shuō)系統(tǒng)的ROM中存‘0000’這個(gè)單元,并且‘0000’單元中存放的一定是一條指令。

五、堆棧堆棧是一個(gè)區(qū)域,是用來(lái)存放數(shù)據(jù)的,這個(gè)區(qū)域本身沒(méi)有任何特殊之處,是內(nèi)部RAM的一部份,特殊的是它存放和取用數(shù)據(jù)的方式,即所謂的‘先進(jìn)后出,后進(jìn)先出’,并且堆棧有特殊的數(shù)據(jù)傳輸指令,即‘PUSH’和‘POP’,有一個(gè)特殊的專為其服務(wù)的單元,即堆棧指針SP,每當(dāng)執(zhí)一次PUSH指令時(shí),SP(原來(lái)值的基礎(chǔ)上)自動(dòng)加1,每當(dāng)執(zhí)行一次POP指令,SP(原來(lái)值的基礎(chǔ)上)自動(dòng)減1。由于SP中的值用指令加以改變,只要程序開(kāi)始階段改了SP的值,把堆棧設(shè)置規(guī)定的內(nèi)存單元中,如程序開(kāi)始時(shí),用一條MOV SP,5FH指令,時(shí)把堆棧設(shè)置從內(nèi)存單元60H開(kāi)始的單元中。程序的開(kāi)頭總有這么一條設(shè)置堆棧指針的指令,因?yàn)殚_(kāi)機(jī)時(shí),SP的初始值為07H,這樣使堆棧從08H單元開(kāi)始往后,而08H到1FH這個(gè)區(qū)域正是8031的第二、三、四工作寄存器區(qū),經(jīng)常要被用,這造成數(shù)據(jù)的渾亂。不同作者編寫(xiě)程序時(shí),初始化堆棧指令也不完全相同,這是作者的習(xí)慣問(wèn)題。當(dāng)設(shè)置好堆棧區(qū)后,并不意味著該區(qū)域成為專用內(nèi)存,它還是象普通內(nèi)存區(qū)域一樣用,只是下編程者不把它當(dāng)成普通內(nèi)存用了。

六、單片機(jī)的開(kāi)發(fā)這里所說(shuō)的開(kāi)發(fā)并不是書(shū)中所說(shuō)的從任務(wù)開(kāi)始,我們假設(shè)已設(shè)計(jì)并制作好硬件,下面是編寫(xiě)軟件的工作。編寫(xiě)軟件,要確定一些常數(shù)、地址,事實(shí)上這些常數(shù)、地址設(shè)計(jì)階段已被直接或間接地確定下來(lái)了。如當(dāng)某器件的連線設(shè)計(jì)好后,其地址也被確定了,當(dāng)器件的功能被確定下來(lái)后,其控制字也被確定了。然后用文本編輯器(如EDIT、CCED)編寫(xiě)軟件,編寫(xiě)好后,用編譯器對(duì)源程序文件編譯,查錯(cuò),直到?jīng)]有語(yǔ)法錯(cuò)誤,除了極簡(jiǎn)單的程序外,應(yīng)用仿真機(jī)對(duì)軟件進(jìn)行調(diào)試,直到程序運(yùn)行正確為止。運(yùn)行正確后,寫(xiě)片(再將程序固化EPROM中)。源程序被編譯后,生成了擴(kuò)展名為HEX的目標(biāo)文件,編程器可以識(shí)別這種格式的文件,只要再將此文件調(diào)入即寫(xiě)片。此,為使大家對(duì)整個(gè)有個(gè)認(rèn)識(shí),舉一例說(shuō)明

ORG 0000H

LJMP START

ORG 040H

START

MOV SP,5FH;設(shè)堆棧

LOOP

NOP

LJMP LOOP;循環(huán)

END;結(jié)束

單片機(jī)學(xué)習(xí)

[編輯本段]

目前,很多人對(duì)匯編語(yǔ)言并不認(rèn)。說(shuō),掌握用C語(yǔ)言單片機(jī)編程很重要,大大提高開(kāi)發(fā)的效率。初學(xué)者不了解單片機(jī)的匯編語(yǔ)言,可了解單片機(jī)具體性能和特點(diǎn),不然單片機(jī)領(lǐng)域是比較致命的。不考慮單片機(jī)硬件資源,KEIL中用C胡亂編程,結(jié)果只能是出了問(wèn)題無(wú)法解決!肯定的說(shuō),的C語(yǔ)言單片機(jī)工程師都是從匯編走出來(lái)的編程者因?yàn)閱纹瑱C(jī)的C語(yǔ)言雖然是高級(jí)語(yǔ)言,它不同于臺(tái)式機(jī)個(gè)人電腦上的VC++什么的單片機(jī)的硬件資源不是非常強(qiáng)大,不同于我們用VC、VB高級(jí)語(yǔ)言臺(tái)式PC上寫(xiě)程序畢竟臺(tái)式電腦的硬件非常強(qiáng)大,才不考慮硬件資源的問(wèn)題。

以8051單片機(jī)為例講解單片機(jī)的引腳及相關(guān)功能;

《單片機(jī)引腳圖》

40個(gè)引腳按引腳功能大致分為4個(gè)種類電源、時(shí)鐘、控制和I/O引腳。

⒈電源:

⑴ VCC-芯片電源,接+5V;

⑵ VSS-接地端;

注用萬(wàn)用表測(cè)試單片機(jī)引腳電流為0v或者5v,這是標(biāo)準(zhǔn)的TTL電平,可有時(shí)候單片機(jī)程序正工作時(shí)候測(cè)試結(jié)果并不是這個(gè)值而是介于0v-5v,其實(shí)這之是萬(wàn)用表反映沒(méi)這么快而已,某一個(gè)瞬間單片機(jī)引腳電流還是保持0v或者5v的。

⒉時(shí)鐘:XTAL1、XTAL2-晶體振蕩電路反相輸入端和輸出端。

⒊控制線:控制線共有4根,

⑴ ALE/PROG:地址鎖存允許/片內(nèi)EPROM編程脈沖

① ALE功能用來(lái)鎖存P0口送出的低8位地址

② PROG功能片內(nèi)有EPROM的芯片,EPROM編程期間,此引腳輸入編程脈沖。

⑵ PSEN:外ROM讀選通信號(hào)。

⑶ RST/VPD:復(fù)位/備用電源。

① RST(Reet)功能復(fù)位信號(hào)輸入端。

② VPD功能Vcc掉電下,接備用電源。

⑷ EA/Vpp:內(nèi)外ROM選擇/片內(nèi)EPROM編程電源。

① EA功能內(nèi)外ROM選擇端。

② Vpp功能片內(nèi)有EPROM的芯片,EPROM編程期間,施加編程電源Vpp。

⒋ I/O線

80C51共有4個(gè)8位并行I/O端口P0、P1、P2、P3口,共32個(gè)引腳。

相關(guān)知識(shí)

如何破解加密的文件夾(如何制作一個(gè)產(chǎn)品網(wǎng)站名)
手機(jī)助手軟件哪個(gè)好 好用的手機(jī)助手軟件排行榜
tar文件如何解壓(thinkpade580)
原神腳本軟件,簡(jiǎn)單操作輕松掛機(jī),單號(hào)日入100+永久軟件+詳細(xì)教程
文件管理系統(tǒng)軟件推薦 手機(jī)文件管理系統(tǒng)app有什么
cfg文件用什么軟件打開(kāi)?速龍x4870k配什么內(nèi)存
手機(jī)蘋(píng)果健康下載軟件,手機(jī)蘋(píng)果健康下載軟件怎么下載
齒字五筆怎么打?拆解為止+人+口,編碼HWB三碼速通
每個(gè)人都能有一個(gè)健康幸福的一生 的翻譯是:Everyone can have a healthy happy life 中文翻譯英文意思,翻譯英語(yǔ)
如何修改文檔密碼?gtx650顯卡

網(wǎng)址: 為什么還要主機(jī)編譯(zip文件密碼破解軟件) http://www.gysdgmq.cn/newsview1365997.html

推薦資訊