芯片解密的機(jī)器碼,匯編碼,源代碼各是什么
什么是機(jī)器碼?
機(jī)器碼顧名思義是單片工作且能識(shí)別和運(yùn)行的一類代碼,常見的格式有二進(jìn)制BIN格式、十進(jìn)制HEX格式等。簡(jiǎn)單來(lái)說(shuō)就是便于機(jī)器識(shí)別的高低電平組合,每個(gè)單片機(jī)里都有狀態(tài)分析電路能分析每個(gè)機(jī)器碼的含義從而驅(qū)動(dòng)單片機(jī)運(yùn)行。
機(jī)器碼的優(yōu)點(diǎn)是一般存儲(chǔ)較小,便于單片機(jī)識(shí)別。
機(jī)器碼的缺點(diǎn)是人無(wú)法讀懂和直接進(jìn)行功能修改。
什么是匯編碼?
匯編代碼的概念就是面向機(jī)器的程序設(shè)計(jì)語(yǔ)言,在匯編語(yǔ)言中用助記符號(hào)代替操作碼,用標(biāo)號(hào)或者地址符代替地址碼,用符號(hào)代替機(jī)器碼,把機(jī)器語(yǔ)言轉(zhuǎn)換成可簡(jiǎn)單讀懂的匯編語(yǔ)言,也稱做符號(hào)語(yǔ)言。這里所說(shuō)的可讀懂只是對(duì)于熟悉編程的專業(yè)人員可以部分,如果需要進(jìn)行比較復(fù)雜的逆向工程功能分析修改、注冊(cè)碼尋找、漏洞分析等,通常難以完成的,所以在逆向工程領(lǐng)域又要引出另外一種代碼-源代碼的概念。
什么是源代碼?
源代碼也稱源程序,這是一種人類可讀可修改的計(jì)算機(jī)語(yǔ)言,源代碼即我們技術(shù)人員平時(shí)的開發(fā)代碼,通常以C語(yǔ)言、JAVA語(yǔ)言、PYTHON語(yǔ)言等工具實(shí)現(xiàn),其中C語(yǔ)言是大家使用最廣泛也是最為熟悉的工具。擁有源代碼的好處不言而喻,既可以立即讀懂(專業(yè)人員)也可以實(shí)現(xiàn)任意功能修改,在逆向工程領(lǐng)域,掌握源代碼即掌握程序的所有權(quán)。
芯片解密成什么代碼?
部分芯片解密客戶需要將機(jī)器碼反匯編甚至反C源代碼來(lái)修改和升級(jí)產(chǎn)品的功能,實(shí)質(zhì)上完整的反C代碼是基本不可能實(shí)現(xiàn)的,但我們可以利用機(jī)器碼進(jìn)行反匯編操作,再通過(guò)匯編代碼進(jìn)行反C操作得到一個(gè)偽C代碼,只是工作量巨大所以一般成本較高。這樣得到的源代碼也是技術(shù)工程人員可以讀懂的,如果需要進(jìn)行程序修改升級(jí)就簡(jiǎn)單的多了。