導航:首頁 > 操作系統 > 單片機里的狗

單片機里的狗

發布時間:2022-05-12 09:59:08

❶ AVR單片機中看門狗(WDT)都有哪些作用

其實看門狗就是一個定時器,單片機裡面有關於看門狗的設置。
其實看門狗就是一個防止程序跑飛的工具。
如果你設置了看門狗,在你程序開始跑,他就開始計時,如果一段時間內,你沒有去清理標志位(看門狗設置了標志位),那就會自動系統復位。所以一般人叫清理標志位形象的為喂狗。
所以一般編程中還有一個概念就是「禁止看門狗」,就是說不要看門狗的功能了,就禁止掉
c51中看門狗的設置時在寄存器PCA0MD中

❷ 關於單片機內部看門狗的問題

單片機內部看門狗的使用,就是對看門狗寄存器初始化,即啟動看門狗,在主循環程序中不停的刷新看門狗,俗稱喂狗。一般都有一個看門狗專用寄存器,因不同單片機,寄存器不同,啟動方法和刷新也稍有不同。查看一下技術手冊,都有說明,也有常式。

❸ 單片機加密狗是什麼技術

加密狗 加密狗是由彩虹天地公司首創,後來發展成如今的一個軟體保護的通俗行業名詞,"加密狗"是一種插在計算機並行口上的軟硬體結合的加密產品(新型加密狗也有usb口的)。一般都有幾十或幾百位元組的非易失性存儲空間可供讀寫,現在較新的狗內部還包含了單片機。軟體開發者可以通過介面函數和軟體狗進行數據交換(即對軟體狗進行讀寫),來檢查軟體狗是否插在介面上;或者直接用軟體狗附帶的工具加密自己EXE文件(俗稱"包殼")。這樣,軟體開發者可以在軟體中設置多處軟體鎖,利用軟體狗做為鑰匙來打開這些鎖;如果沒插軟體狗或軟體狗不對應,軟體將不能正常執行。
加密狗通過在軟體執行過程中和加密狗交換數據來實現加密的.加密狗內置單片機電路(也稱CPU),使得加密狗具有判斷、分析的處理能力,增強了主動的反解密能力。這種加密產品稱它為"智能型"加密狗.加密狗內置的單片機里包含有專用於加密的演算法軟體,該軟體被寫入單片機後,就不能再被讀出。這樣,就保證了加密狗硬體不能被復制。同時,加密演算法是不可預知、不可逆的。加密演算法可以把一個數字或字元變換成一個整數,如DogConvert(1)=17345、DogConvert(A)=43565。
加密狗是為軟體開發商提供的一種智能型的軟體保護工具,它包含一個安裝在計算機並行口或 USB 口上的硬體,及一套適用於各種語言的介面軟體和工具軟體。加密狗基於硬體保護技術,其目的是通過對軟體與數據的保護防止知識產權被非法使用。
加密狗的工作原理:
加密狗通過在軟體執行過程中和加密狗交換數據來實現加密的.加密狗內置單片機電路(也稱CPU),使得加密狗具有判斷、分析的處理能力,增強了主動的反解密能力。這種加密產品稱它為"智能型"加密狗.加密狗內置的單片機里包含有專用於加密的演算法軟體,該軟體被寫入單片機後,就不能再被讀出。這樣,就保證了加密狗硬體不能被復制。同時,加密演算法是不可預知、不可逆的。加密演算法可以把一個數字或字元變換成一個整數,如DogConvert(1)=17345、DogConvert(A)=43565。下面,我們舉個例子說明單片機演算法的使用。 比如一段程序中有這樣一句:A=Fx(3)。程序要根據常量3來得到變數A的值。於是,我們就可以把原程序這樣改寫:A=Fx(DogConvert(1)-12342)。那麼原程序中就不會出現常量3,而取之以DogConvert(1)-12342。這樣,只有軟體編寫者才知道實際調用的常量是3。而如果沒有加密狗,DogConvert函數就不能返回正確結果,結果算式A=Fx(DogConvert(1)-12342)結果也肯定不會正確。這種使盜版用戶得不到軟體使用價值的加密方式,要比一發現非法使用就警告、中止的加密方式更溫和、更隱蔽、更令解密者難以琢磨。此外,加密狗還有讀寫函數可以用作對加密狗內部的存儲器的讀寫。於是我們可以把上算式中的12342也寫到狗的存儲器中去,令A的值完全取決於DogConvert()和DogRead()函數的結果,令解密難上加難。不過,一般說來,加密狗單片機的演算法難度要低於一些公開的加密演算法,如DES等,因為解密者在觸及加密狗的演算法之前要面對許多難關
[編輯本段]目前最新的硬體加密原理
隨著解密技術的發展,單片機加密狗由於其演算法簡單,存儲空間小,容易被硬復制等原因,正逐漸被市場所淘汰。以北京彩虹天地信息技術股份有限公司為首的國內加密狗廠商研發出穩定性更好、存儲空間更大(最大為64K)、有效防止硬克隆的第四代加密狗——「智能卡」加密狗以其獨創的「代碼移植」原理,已經被國內大型商業軟體開發商如金蝶、用友、CAXA、廣聯達、神機妙算、魯班……所採用。
以世界上第一款智能卡加密鎖——宏狗為例,簡單介紹一下「代碼移植」原理。
「代碼移植」加密原理為一種全新的、可信的軟體保護模型,工作原理為:軟體中部分代碼經過編譯,「移植」到加密鎖硬體內部,軟體中沒有該段代碼的副本。
在這套軟體保護方案中,PC端應用軟體的關鍵的代碼和數據「消失」了,被安全地移植到精銳IV型加密鎖的硬體中保護起來。在需要使用時,應用軟體可以通過功能調用引擎來指令精銳IV運行硬體中的關鍵代碼和數據並返回結果,從而依然可以完成整個軟體全部的功能。由於這些代碼和數據在PC端沒有副本存在,因此解密者無從猜測演算法或竊取數據,從而極大程度上保證了整個軟體系統的安全性。簡言之,精銳IV提供了一套可信的解決方案,從理論上保證軟體加密的安全。
加密狗技術的運用案例
1、廣聯達造價軟體
2、清華斯維爾造價軟體
3、神機妙算造價軟體
4、魯班造價軟體

使用加密狗進行加密的一些策略

現在的解密技術排除法律和道德因素,就從學術角度來說是門科學。它與加密技術一樣是相輔相成不斷提高。
以下就針對使用加密狗(加密鎖)進行硬體保護談談幾點心得:
針對於使用加密狗的解密有什麼方法?
1、硬體復制
復制硬體,即解密者復制Sentinel Superpro相同的加密鎖。由於加密鎖採用了彩虹公司專用的ASIC晶元技術,因此復制該加密鎖非常困難,且代價太大。
2、監聽
解密者利用並口監聽程序,進行解密,其工作機制是:
監聽程序,記錄應用程序對並口發的查詢串和加密鎖發回的響應串。當移去加密鎖時,如果程序再對並口發查詢串確認身份時,監聽程序返回所記錄的響應串。程序認為加密鎖仍然在並口上,是合法用戶繼續運行,應用程序也就被解密了。
3、 列印機共享器
將加密鎖插在列印機共享器上,多台計算機共同使用列印機共享器上的一把加密鎖。(後面簡述對抗策略)
4、 DEBUG
解密者DEBUG等反編譯程序,修改程序源代碼或跳過查詢比較。應用程序也就被解密了。
對於以上的幾種解密方法加密者可以考慮使用以下幾種加密策略:
1、針對上述監聽和DEBUG問題解密方法,本人推薦充分利用加密狗開發商的API函數調用的加密策略:
a、 針對並口監聽程序
1)對加密鎖進行演算法查詢
Ø 正確的查詢響應驗證
用戶生成大量查詢響應對,如200對。在程序運行過程中對激活的加密演算法單元隨機的發送在200對之中的一對「345AB56E」―――「63749128」。查詢串「345AB56E」,哪么演算法單元返回的下確的響應串應該是「63749128」,若是,則程序認為加密鎖在並口上,是合法用戶,繼續運行,反之終止程序。
Ø 隨機非激活演算法驗證
我們對非激活的加密鎖演算法單元發隨機生成的查詢串,如:「7AB2341」,非激活演算法單元只要是有查詢就會有響應串。因此返回響應串「7AB2341」,在程序中判斷響應串與查詢串是否相同,如果相同,則證明我們的加密鎖仍然在口上。繼續運行程序。
Ø 隨機激活演算法驗證
假設監聽程序了解了上面的機制。即對非激活的加密演算法我們發什麼查詢串則返回相同的響應串。哪么我也有對策。對激活的加密演算法單元發隨機生成的查詢串,如:「345AB56E」由於是激活演算法響應串肯定與查詢串肯定不等。所以假如返回響應串「7253ABCD」,在程序中判斷響應串與查詢串是否不同,如果不同,則證明我們的加密鎖仍然在並口上,繼續運行程序。
上面三種加密策略在程序同時使用,相符相承,相互補充。即使監聽程序記錄下來我們的部分查詢響應。
2) 分時查詢
用戶把查詢響應對分組,如120對分為4組。每30對一組。頭三個月使用第一組,第二個月三個月使用第二組以此類推,監聽程序就算記錄了頭三個月。第二個月三個月以後程序仍然無法使用。
也可以再生成100對「臨時委員」,每次運行隨意抽出1對與以上分組結合使用。使記錄程序在三個月內也無法記錄完全。程序也無法使用。
3) 隨機讀寫存儲單元
為了防監聽程序。我們的策略是:程序在啟動時,我們利用隨機函數隨機生成的一個數,假設是「98768964」。我們在指定的18#單元寫入這個數。哪么我們在程序運行中,每調用一個功能程序前讀取18#單元,數判定是否是我們寫入的數「98768964」。因為每次寫入的數是隨機生成的,所以監聽程序記錄不到當次啟動時寫入的隨機數,它返回的數肯定是一個不匹配的數。我們就可以就此判定是否是合法用戶。Sentinel Superpro加密鎖可以重復寫10萬次以上。也就是說每天寫三次也可以使用一百年。
2、 針對列印共享器的加密策略
為了防列印共享器。我們的策略是:程序在啟動時,我們利用隨機函數隨要生成的一個數,假設是「7762523A」。我們在指定的34#單元寫入這個數。哪么在程序運行中,每調用一個功能程序前讀取34#單元,以判定是否是我們寫入的數「7762523A」。以此判定是否是合法用戶。因為每次寫入的數隨機生成的,同時使用列印共享器的其他非法用戶的程序一進入也會寫入一個不同的隨機數。那麼第一個用戶的程序在校驗是否是第一個用戶寫入的數時,就會被認為是非法的用戶。所以在一個階段也只是一個程序使用。(例如RAINBOW公司開的Sentinel Superpro加密鎖可以重復10萬次以上。也就是說每天寫三次也就可以使用一百年。)
3、 針對DEBUG跟蹤的加密鎖的安全策略
1)分散法
針對DEBUG跟蹤。在調用每個重要功能模塊前,我們建議要對加密鎖進行查詢,校驗身份。如果只在程序開始部分校驗身份,DEBUG跟蹤程序部分可以輕易的跳過校驗部分,而一些不良用戶可以在驗證後可以將加密鎖拔下用在其它計算機。
2)延時法
針對某一具體查詢校驗,都有三步驟:
Ø 查詢得到響應串
Ø 比較響應串和查詢串是否匹配
Ø 執行相應的步驟
我們建議以上三個步驟要延時執行。最好鞀三步驟相互遠離些,甚至放到不同的子程序或函數中。例如:我們執行「查詢得到響應串」 後,相隔50執行「比較響應串和查詢串是否匹配」。假如程序需要調用一個函數。哪么我們就在這個函數里執行「執行相應的步驟」。這樣程序更難於被破解。
3)整體法
將響應串作為程序中數據使用。
例如:我們有返回值「87611123」,而我們程序需要「123」這個數。我們可以讓「87611123」減去「8761000」得到「123」。這樣以來任何對加密程序的修改都會使程序紊亂。
4)迷惑法
一般情況下我們的程序執行相應的驗證步驟。驗證是非法用戶就會退出。這樣很容易被發現代碼特徵。我們知道是非法用戶後繼續執行一些無用的操作使程序紊亂。以迷惑解密者。
以上為現如今軟體開發商使用硬體加密狗(加密鎖)進行軟體保護時可以使用的幾種切實可行的幾種加密策略。

❹ 為什麼PIC單片機的看門狗都必須關閉啊看門狗是個什麼東西啊

如果不關閉的話,你編程的時候就要編寫「喂狗」程序,才能使程序正常運行,看門狗就是單片機做的一個能夠保證保證程序出現死循環的時候,經過一段時間沒有「喂狗」程序運行的時候,單片機自動重新執行程序的功能。

❺ 單片機中的看門狗是什麼東西,有什麼作用

看門狗(WDT)是一個定時器。看門狗是用來防止萬一單片機程序出錯造成重大損失的。防錯的原理很簡單,它在硬體上就是一個定時器,當它溢出的時候就會讓單片機強制復位使程序重新開始執行。

正常的情況下是不能讓它溢出的,所以在程序上每隔一段時間要給他置一次值(俗稱喂狗),只要程序中正常給它喂他就不會溢出。

一旦程序跑飛了,有干擾或者進入死循環之類的情況時,不能正常執行程序了,那麼就永遠執行不到喂狗的指令了,但此時定時器是硬體控制的,仍然會走,所以溢出了,單片機就復位了。

一般安全性要求比較高的,系統跑飛了會造成重大事故的都會加一個「狗」保安全。

通常,看門狗的溢出時間越短越靈敏,跑飛之後復位的時間越短,也就越安全,但是,喂狗的操作也要更頻繁。

(5)單片機里的狗擴展閱讀:

看門狗工作原理:

使用時,WDT將遞增直到溢出或「超時」。 除非處於休眠或空閑模式,否則WDT超時將強制器件復位。 為避免WDT超時復位,用戶必須使用PWRSAV或CLRWDT指令定期清除看門狗定時器。 如果WDT在休眠或空閑模式下超時。

器件將喚醒並從執行PWRSAV指令的位置繼續執行代碼。 在以上兩種情況下,WDTO位(RCON <4>)將被置1,表明器件復位或喚醒事件是由WDT超時引起的。

如果WDT將CPU從睡眠或空閑模式喚醒,則還將置位「睡眠」狀態位(RCON <3>)或「空閑」狀態位(RCON <2>),表明該設備先前已上電。 保存模式。

在正常操作期間,WDT超時將產生設備復位。 當設備處於睡眠狀態時,WDT超時將喚醒設備以繼續正常操作(稱為WDT喚醒)。 清零WDTE設置位可以永久關閉WDT。 後分頻器分配完全由軟體控制,也就是說,可以在程序執行期間隨時更改它。

為避免不可預測的器件復位,當從Timer0預分頻器分配更改為WDT後分頻器分配時,必須執行以下指令序列。 即使禁止了WDT,也必須執行該指令序列。

❻ 51單片機裡面是不是沒有看門狗

單片機程序中每隔一段時間就向狗餵食,如果超過一定時間狗沒有吃到,就表示死機了,狗就出發單片機復位。

❼ 單片機 看門狗電路中,喂狗信號是什麼求比較詳細通俗的解釋,謝謝了!

看門狗(WDT)有內置的也有外置的,其實就是個定時器。
看門狗的作用是:當程序在某種意外情況下跑飛了,這時就沒辦法去」喂狗「,一旦持續某個門檻時間(比如20ms)還沒有」喂狗「,那麼看門狗就把單片機復位。
喂狗信號就是在上面說的20ms之內,去清WDT定時器。

❽ avr單片機中看門狗(WDT)都有哪些做用

WDT其實就是一個
定時器
,只是這個定時器的
中斷向量
是指到復位地址,產生中斷後
晶元
就復位了,但也有些
單片機
看門狗
溢出後有專門的中斷向量。既然它的中斷向量指向復位地址,那麼晶元要正常運行,我們肯定要避免它溢出,即
喂狗
。有些單片機的WDT定時器可以讀,所以有人拿WDT來做定時器用的。
單片機一般要有個死循環,不斷地執行各個
子程序
,如果把清WDT定時器(喂狗)的指令放到這個死循環里,那麼就會循環一次清(喂狗)一次,WDT不會溢出。但是當
程序
出錯,跑飛時,不會再這樣循環,喂狗指令不會再被執行,那麼WDT必然會溢出,晶元復位,即相當於重新上電運行。
清狗指令不能放定時器中斷里,因此不管程序飛跑到
哪裡
,執行哪裡,中斷產生後都會執行中斷
函數
,所以在定時器里的清狗指令會使WDT起不到作用(失效)。

❾ 單片機的看門狗怎麼用

首先,你要知道什麼是看門狗?在由單片機構成的微型計算機系統中,由於單片機的工作常常會受到來自外界電磁場的干擾,造成程序的跑飛,而陷入死循環,程序的正常運行被打斷,由單片機控制的系統無法繼續工作,會造成整個系統的陷入停滯狀態,發生不可預料的後果,所以出於對單片機運行狀態進行實時監測的考慮,便產生了一種專門用於監測單片機程序運行狀態的晶元,俗稱"看門狗"(watchdog)。其次,看門狗的工作原理是什麼?在系統運行以後也就啟動了看門狗的計數器,看門狗就開始自動計數,如果到了一定的時間還不去清看門狗,那麼看門狗計數器就會溢出從而引起看門狗中斷,造成系統復位。所以在使用有看門狗的晶元時要注意清看門狗(俗稱喂狗)。下面這段程序是我成功調試過了的,看門狗寄存器的各位的具體的意義,你可以自己去看下單片機的PDF文檔,裡面有詳細的介紹.#include52系列單片機頭文件#defineucharunsignedchar#defineuintunsignedintsfrWDT_CONTR=0xe1;/*看門狗寄存器聲明*/sbitled1=P1^0;/*接發光二極體*/voiddelayms(uintxms)/*延時函數*/{uinti,j;for(i=xms;i>0;i--)/*i=xms即延時約xms毫秒*/for(j=110;j>0;j--);}voidmain(){WDT_CONTR=0x35;led1=0;delayms(500);led1=1;while(1){delayms(1000);//WDT_CONTR=0x35;/*喂狗,如果這句話不加的話單片機就會一直復位,看到的現象是發光二極體閃爍,加上這句的話,發光二極體一直亮著,所以在實際工程應用的時候通常要在程序裡面調用比較頻繁的函數內部寫上這句話*/}}/*******************************************************************喂狗的技巧:如果一個大循環少於看門狗益處時間,放在while(1)哪個地方都可以啊,如果大於,看下哪個地方停頓時間長就放哪*********************************************************************/

❿ 請教一個關於單片機看門狗的問題

是的,剛開始需要初始化,配置分頻系數和觸發功能等等。
之後在主循環的適當位置放置喂狗的語句。某些易超時的任務/進程中也需要適當放置喂狗語句。原則上禁止在中斷里放置喂狗語句。
當程序真的在某些地方死循環的時候,狗狂吠,單片機產生復位。
在某些特殊應用場合,還可以在startup中添加復位源的判斷,對於看門狗產生的復位進行一些額外的操作(例如在後台向遠端設備通訊報警,或者在Data Flash部分寫入error log等等)。

閱讀全文

與單片機里的狗相關的資料

熱點內容
編譯原理lr分析講解 瀏覽:141
單純程序員哭了 瀏覽:334
男生設計app哪個好 瀏覽:763
梯形圖是編譯還是解釋執行 瀏覽:471
錄屏好用的app哪個好用 瀏覽:635
一念逍遙新伺服器怎麼看 瀏覽:92
移動app的信用充話費在哪裡 瀏覽:502
單片機接感測器 瀏覽:74
免費pdf工具 瀏覽:382
pdf加密一機一碼 瀏覽:602
怎麼把百度雲資源壓縮 瀏覽:456
不會數學英語如何編程 瀏覽:88
如何能知道網站伺服器地址 瀏覽:648
程序員月薪5萬難嗎 瀏覽:138
如何評價程序員 瀏覽:803
雲虛機和伺服器的區別 瀏覽:403
廣西柳州壓縮機廠 瀏覽:639
arm開發編譯器 瀏覽:833
51單片機的核心 瀏覽:746
看電視直播是哪個app 瀏覽:958