什么是单片机反汇编?为什么要进行反汇编?
一、什么是汇编和反汇编
工程师编写单片机程序的时候一般是采用用汇编语言或高级语言(C或C++)编写的,这些程序代码叫原代码,当程序编写完成后,经过编译软件或编译器的编译生成可以烧录到单片机ROM存储区里的文件,不同型号的单片机的编译器生成的文件后缀是不同的,但是常用的BIN和HEX文件,这些生成的文件在解密行业里叫机器代码,及机器码,这样的机器码是在单片机里运行的,也可以说是只有机器能够读懂的。
反汇编即是指将执行BIN和HEX文件等这些文件,即机器码反编译还原成汇编语言。但通常反编译出来的程序与原程序会存在许多不同,虽然执行效果相同,但程序代码会发生很大的变化,如果是语句比较多的汇编,一般人很难读懂,需要自己加注释,然后去一条一条的读,是需要一定的毅力的,我曾经为了分析一个芯片的反汇编代码,花费了一周的时间,所以说并不是反汇编后有了原程序,就一切都明白了,更多的是需要工程师的技术分析。
反汇编的方法有手工反汇编和软件反汇编,现在的单片机规模越来越大,嵌入的代码也越来越多,那么就给手工反汇编带来了很多麻烦,需要大量的时间,使用软件反汇编是理想的方式,只要有了反汇编的软件,在计算机里运行后很快就可以完成反汇编工作。
二、为什么要进行反汇编
因为工程师对机器码无法读懂,那么学习解密后提供的文件就比较困难,另外修改也不很方便,需要技术人员对单片机的汇编和反汇编非常清楚才可以直接去修改。如果能提供反汇编后的文件,那么就相对容易了一些。基于以上原因,很多客户希望能提供反汇编业务,我们深圳龙芯世纪科技有限公司解密后提供的文件是BIN或HEX文件,如果客户需要,可以从华创科技网站(http://www.pcbcool.cn)下载反汇编软件进行反汇编。如果我们龙芯世纪没有公布的反汇编软件的型号,我们提供反汇编业务,但是需要一定的费用和时间。
既然深圳龙芯世纪科技有限公司把这种单片机叫做反汇编,经过反汇编后提供的就是汇编语言代码,而不是C语言代码,很多客户咨询能不能提供C代码,您的想法我们可以理解,但是我们没有那个能力去反成C语言。