|
說明樓主太初級(jí),迷戀于C。
1、C與HEX并不是一一映射的,有可能N個(gè)人寫的C,會(huì)出同一個(gè)HEX,你希望回成哪個(gè)人寫的呢?或許你可能說:任意一個(gè)孝可以,只要能轉(zhuǎn)C就行。
同一個(gè)C程序,用不同的編譯器去編譯生成的HEX也不一定相同。
2、將HEX轉(zhuǎn)C是很困難的事,只有C的超級(jí)高手才有可能還原,也只是“可能”,他必須充分了解C的編譯規(guī)律與特點(diǎn),才能進(jìn)行反編譯。
由于單片機(jī)是最底層的控制器,它與硬件是直接連接的,如果不了解硬件需求是無(wú)法理解程序意圖的,這對(duì)反編譯是不利的。
3、即使有能力做到HEX轉(zhuǎn)C,也不會(huì)做這件事,一定是做:HEX→BIN→匯編,這種事我做過好幾次,每次都花了幾個(gè)月的時(shí)間,而且必須有硬件在手,且事先有可以運(yùn)行的成品,進(jìn)行功能、接口的比對(duì)。最后還原成程序流程圖,以解出程序的意圖。有了流程圖,就可以用C重寫了。就算是“還原”了,不過,有匯編程序又有流程圖,也就沒有再寫C的必要了。 |
|