⑴ 手把手教你單片機宋老師的一個代碼沒看懂 請教各位大神解釋一下這個代碼的詳細過程 非常感謝
手把手教你單片機宋老師的一個代碼沒有看懂對不起你。教各位大神解釋一下這個代碼的,這個手機把你當面積慫慫老師的一個代碼沒看懂,請教各位大神解釋一下這個代碼的這個。單片這個代碼的這個看看不懂得這個解釋一下哥。
⑵ 別人已經在單片機內寫好程序,我該如何去看呢需要用什麼軟體呢
一般單片機程序都是加密的,需要讀出來必須先解密,有專門解密的廠家。讀出來之後也是16進制的機器碼。雖然現在反匯編軟體很多。但是把機器碼反匯編之後,內容很亂,不容易讀懂。
如果你想抄襲別人的產品,破解完直接寫進去就算了。如果想學習,還是自己查查資料,按照他的功能,自己寫
⑶ 這樣才能讀取51單片機內程序代碼
第一步:連接編程器,打開編程器電源,在編程器的計算機端軟體環境中,將器件選擇MCU類型,型號列表中如果有STC89C51RC,那最好,如果沒有,只好建議選擇ATMEL 89C51試一試,設置好後,將單片機晶元按照編程器的擺放要求(一般在編程器表面有晶元的擺放示意圖),插入到管腳插中,壓上管腳扣,利用軟體讀出器件內的程序代碼(二進制),保存成HEX格式的文件。第二步:在模擬器的計算機端軟體中,利用反匯編功能,打開剛才保存的HEX格式文件,如果單片機內的程序在編譯時設置了允許注釋,那麼,您可以很快得到原程序代碼(匯編語句),如果沒有注釋,那隻好根據反匯編的出來的語句(匯編代碼),去查詢指令代碼表,人工翻譯出來,對一些跳轉地址,可以自己定義成特定的標號。說明:一般來說,根據對方的硬體電路圖,產品的使用說明書,即可分析出軟體功能,與其去破譯或反譯晶元內的程序,還不與自己再編一個。
⑷ 如何把STC單片機里的代碼讀出來
這個需要單片機解密
單片機解密
單片機解密又叫單片機破解,晶元解密,IC解密,但是這嚴格說來這幾種稱呼都不科學,但已經成了習慣叫法,我們把CPLD解密,DSP解密都習慣稱為單片機解密。單片機只是能裝載程序晶元的其中一個類。能燒錄程序並能加密的晶元還有DSP,CPLD,PLD,AVR,ARM等。當然具存儲功能的存儲器晶元也能加密,比如DS2401 DS2501 AT88S0104 DM2602 AT88SC0104D等,當中也有專門設計有加密演算法用於專業加密的晶元或設計驗證廠家代碼工作等功能晶元,該類晶元業能實現防止電子產品復制的目的。
單片機攻擊者藉助專用設備或者自製設備,利用單片機晶元設計上的漏洞或軟體缺陷,通過多種技術手段,就可以從晶元中提取關鍵信息,獲取單片機內程序這就叫單片機解密。
解密過程
揭去晶元封裝
侵入型攻擊的第一步是揭去晶元封裝(簡稱「開蓋」有時候稱「開封」,英文為「DECAP」,decapsulation)。
有兩種方法可以達到這一目的:
第一種是完全溶解掉晶元封裝,暴露金屬連線。
第二種是只移掉硅核上面的塑料封裝。
第一種方法需要將晶元綁定到測試夾具上,藉助綁定台來操作;第二種方法除了需要具備攻擊者一定的知識和必要的技能外,還需要個人的智慧和耐心,但操作起來相對比較方便,完全家庭中操作。
晶元上面的塑料可以用小刀揭開,晶元周圍的環氧樹脂可以用濃硝酸腐蝕掉。熱的濃硝酸會溶解掉晶元封裝而不會影響晶元及連線。該過程一般在非常乾燥的條件下進行,因為水的存在可能會侵蝕已暴露的鋁線連接 (這就可能造成解密失敗)。
清洗晶元
接著在超聲池裡先用丙酮清洗該晶元以除去殘余硝酸,並浸泡。
尋找保護熔絲的位置並破壞
最後一步是尋找保護熔絲的位置並將保護熔絲暴露在紫外光下。一般用一台放大倍數至少100倍的顯微鏡,從編程電壓輸入腳的連線跟蹤進去,來尋找保護熔絲。若沒有顯微鏡,則採用將晶元的不同部分暴露到紫外光下並觀察結果的方式進行簡單的搜索。操作時應用不透明的紙片覆蓋晶元以保護程序存儲器不被紫外光擦除。將保護熔絲暴露在紫外光下5~10分鍾就能破壞掉保護位的保護作用,之後,使用簡單的編程器就可直接讀出程序存儲器的內容。
對於使用了防護層來保護EEPROM單元的單片機來說,使用紫外光復位保護電路是不可行的。對於這種類型的單片機,一般使用微探針技術來讀取存儲器內容。在晶元封裝打開後,將晶元置於顯微鏡下就能夠很容易的找到從存儲器連到電路其它部分的數據匯流排。由於某種原因,晶元鎖定位在編程模式下並不鎖定對存儲器的訪問。利用這一缺陷將探針放在數據線的上面就能讀到所有想要的數據。在編程模式下,重啟讀過程並連接探針到另外的數據線上就可以讀出程序和數據存儲器中的所有信息。
藉助顯微鏡和激光切割機破壞保護熔絲
還有一種可能的攻擊手段是藉助顯微鏡和激光切割機等設備來尋找保護熔絲,從而尋查和這部分電路相聯系的所有信號線。由於設計有缺陷,因此,只要切斷從保護熔絲到其它電路的某一根信號線(或切割掉整個加密電路)或連接1~3根金線(通常稱FIB:focused ion beam),就能禁止整個保護功能,這樣,使用簡單的編程器就能直接讀出程序存儲器的內容。
雖然大多數普通單片機都具有熔絲燒斷保護單片機內代碼的功能,但由於通用低檔的單片機並非定位於製作安全類產品,因此,它們往往沒有提供有針對性的防範措施且安全級別較低。加上單片機應用場合廣泛,銷售量大,廠商間委託加工與技術轉讓頻繁,大量技術資料外瀉,使得利用該類晶元的設計漏洞和廠商的測試介面,並通過修改熔絲保護位等侵入型攻擊或非侵入型攻擊手段來讀取單片機的內部程序變得比較容易。
⑸ 51單片機用別人的代碼
不能用別人代碼
單片機程序也是一種知識產權,未經別人允許而使用別人的程序,屬於侵權行為,嚴重的可能承擔法律後果。
另外就算通過解密手段獲得的別人的程序,也只是一些機器碼,並不能獲得源程序,就算通過反匯編手段獲得匯編語言程序,要讀懂和修改也是很難的事情,所以得不償失,沒有意義。
⑹ 如何快速看懂別人的代碼
1.要養成一個習慣, 經常花時間閱讀別人編寫的高品質代碼.
2.要有選擇地閱讀代碼, 同時, 還要有自己的目標. 您是想學習新的模式|編碼風格|還是滿足某些需求的方法.
3.要注意並重視代碼中特殊的非功能性需求, 這些需求也許會導致特殊的實現風格.
4.在現有的代碼上工作時, 請與作者和維護人員進行必要的協調, 以避免重復勞動或產生厭惡情緒.
5.請將從開放源碼軟體中得到的益處看作是一項貸款, 盡可能地尋找各種方式來回報開放源碼社團.
6.多數情況下, 如果您想要了解"別人會如何完成這個功能呢?", 除了閱讀代碼以外, 沒有更好的方法.
7.在尋找bug時, 請從問題的表現形式到問題的根源來分析代碼. 不要沿著不相關的路徑(誤入歧途).
8.我們要充分利用調試器|編譯器給出的警告或輸出的符號代碼|系統調用跟蹤器|資料庫結構化查詢語言的日誌機制|包轉儲工具和Windows的消息偵查程序, 定出的bug的位置.
9.對於那些大型且組織良好的系統, 您只需要最低限度地了解它的全部功能, 就能夠對它做出修改.
10.當向系統中增加新功能時, 首先的任務就是找到實現類似特性的代碼, 將它作為待實現功能的模板.
11.從特性的功能描述到代碼的實現, 可以按照字元串消息, 或使用關鍵詞來搜索代碼.
12.在移植代碼或修改介面時, 您可以通過編譯器直接定位出問題涉及的范圍, 從而減少代碼閱讀的工作量.
13.進行重構時, 您從一個能夠正常工作的系統開始做起, 希望確保結束時系統能夠正常工作. 一套恰當的測試用例(test case)可以幫助您滿足此項約束.
14.閱讀代碼尋找重構機會時, 先從系統的構架開始, 然後逐步細化, 能夠獲得最大的效益.
15.代碼的可重用性是一個很誘人, 但難以理解與分離, 可以試著尋找粒度更大一些的包, 甚至其他代碼.
16.在復查軟體系統時, 要注意, 系統是由很多部分組成的, 不僅僅只是執行語句. 還要注意分析以下內容: 文件和目錄結構|生成和配置過程|用戶界面和系統的文檔.
⑺ 怎麼把單片機代碼讀出來假如沒有加密,都有幾種方法
首先第一步,確定是什麼單片機。然後去安裝這類單片機的燒錄程序,一般燒錄軟體都是帶讀取的(沒有加密情況下)。