一、什麽是彙編和(hé)反彙編
工程師(shī)編寫單片機程序的時(shí)候一般是采用用彙編語言或高(gāo)級語言(C或C++)編寫的,這些(xiē)程序代碼叫原代碼,當程序編寫完成後,經由編譯軟件或編譯器(qì)的編譯天生(shēng)可(kě)以燒錄到單片機ROM存儲區(qū)裏的文件,不同型号的單片機的編譯器(qì)天生(shēng)的文件後綴是不同的,但(dàn)是常用的BIN和(hé)HEX文件,這些(xiē)天生(shēng)的文件在解密行(xíng)業裏叫機器(qì)代碼,及機器(qì)碼,這樣的機器(qì)碼是在單片機裏運行(xíng)的,也可(kě)以說是隻有(yǒu)機器(qì)能夠讀懂的。而反彙編等于指将這些(xiē)執行(xíng)文件,即機器(qì)碼反編譯還(hái)原成彙編語言。但(dàn)通(tōng)常反編譯出來(lái)的程序與原程序會(huì)存在很(hěn)多(duō)不同,固然執行(xíng)效果相同,但(dàn)程序代碼會(huì)發生(shēng)很(hěn)大(dà)的變化,假如是語句比較多(duō)的彙編,一般人(rén)很(hěn)難讀懂,需要自己加注釋,然後去一條一條的讀,是需要一定的毅力的,我曾經為(wèi)了分析一個(gè)芯片的反彙編代碼,花(huā)費了一周的時(shí)間(jiān)。所以說并不是反彙編後有(yǒu)了原程序,就一切都明(míng)白了,更多(duō)的是需要工程師(shī)的技(jì)術(shù)分析。
反彙編的方法有(yǒu)手工反彙編和(hé)軟件反彙編,現在的單片機規模越來(lái)越大(dà),嵌入的代碼也越來(lái)越多(duō),那(nà)麽就給手工反彙編帶來(lái)了良多(duō)麻煩,需要大(dà)量的時(shí)間(jiān),使用軟件反彙編是理(lǐ)想的方式,隻要有(yǒu)了反彙編的軟件,在計(jì)算(suàn)機裏運行(xíng)後很(hěn)快就可(kě)以完成反彙編工作(zuò)。
二、為(wèi)什麽要進行(xíng)反彙編
由于工程師(shī)對機器(qì)碼無法讀懂,那(nà)麽學習解密後提供的文件就比較難題,另外修改也不很(hěn)利便,需要技(jì)術(shù)職員對單片機的彙編和(hé)反彙編非常清晰才可(kě)以直接去修改。假如能提供反彙編後的文件,那(nà)麽就相對輕易了一些(xiē)。基于以上(shàng)原因,良多(duō)客戶但(dàn)願能提供反彙編業務,我們解密後提供的文件是BIN或HEX文件,假如客戶需要,可(kě)以從我們網站(zhàn)下載反彙編軟件進行(xíng)反彙編。假如我們沒有(yǒu)宣布的反彙編軟件的型号,我們提供反彙編業務,但(dàn)是需要一定的用度和(hé)時(shí)間(jiān)。
既然我們叫反彙編,經由反彙編後提供的就是彙編語言代碼,而不是C語言代碼,良多(duō)客戶咨詢能不能提供C代碼,您的想法主意我們可(kě)以理(lǐ)解,但(dàn)是我們沒有(yǒu)那(nà)個(gè)能力去反成C語言。