工程師編寫(xiě)單片機(jī)程序的時(shí)候一般是采用用匯編語(yǔ)言或高級(jí)語(yǔ)言(C或C++)編寫(xiě)的,這些程序代碼叫原代碼,當(dāng)程序編寫(xiě)完成后,經(jīng)過(guò)編譯軟件或編譯器 的編譯生成可以燒錄到單片機(jī)ROM存儲(chǔ)區(qū)里的文件,不同型號(hào)的單片機(jī)的編譯器生成的文件后綴是不同的,但是常用的BIN和HEX文件,這些生成的文件在解 密行業(yè)里叫機(jī)器代碼,及機(jī)器碼,這樣的機(jī)器碼是在單片機(jī)里運(yùn)行的,也可以說(shuō)是只有機(jī)器能夠讀懂的。而反匯編即是指將這些執(zhí)行文件,即機(jī)器碼反編譯還原成匯 編語(yǔ)言。但通常反編譯出來(lái)的程序與原程序會(huì)存在許多不同,雖然執(zhí)行效果相同,但程序代碼會(huì)發(fā)生很大的變化,如果是語(yǔ)句比較多的匯編,一般人很難讀懂,需要 自己加注釋?zhuān)缓笕ヒ粭l一條的讀,是需要一定的毅力的,我曾經(jīng)為了分析一個(gè)芯片的反匯編代碼,花費(fèi)了一周的時(shí)間。所以說(shuō)并不是反匯編后有了原程序,就一切都明白了,更多的是需要工程師的技術(shù)分析。
反匯編的方法有手工反匯編和軟件反匯編,現(xiàn)在的單片機(jī)規(guī)模越來(lái)越大,嵌入的代碼也越來(lái)越多,那么就給手工反匯編帶來(lái)了很多麻煩,需要大量的時(shí)間,使用軟件反匯編是理想的方式,只要有了反匯編的軟件,在計(jì)算機(jī)里運(yùn)行后很快就可以完成反匯編工作。