反汇编工具(静态反汇编工具)
8月科学教育网小李来为大家讲解下。反汇编工具(静态反汇编工具)这个很多人还不知道,现在让我们一起来看看吧!
真不知道有几个人可以玩过菜农!!!
菜农曾经搞过“HPL工控语言”,并在PIC项目中实战应用,做军品。
可惜源码已经丢失,因为菜农在2013年曾发誓再不搞软硬件了,要“金盆洗手”???
菜农的超级51反汇编至今也是无敌般存在,即使IDA。
菜农搞过汇编,反汇编,搞过语言,目前项目为用户提供20种计算机语言的调用例程。
你说菜农到底会什么???
实际上菜农也真的不知道。
网页链接
最近帮同事处理了一个RAM空间分配的问题,
有一个产品的代码调用某个函数之后,程序就崩溃了。
注释掉该函数的调用则恢复正常,不再崩溃。
通过反汇编分析,排除了空间不够以及跨页访问问题之后。
怀疑是栈空间不够导致。
当调用函数时,处理器要在栈中不断保存函数调用时的现场和产生的变量,
如果调用太深,而栈空间比较小,就无法容纳调用的返回地址而造成栈溢出,导致程序崩溃。
分析用于定义可执行程序的各个段的存储位置,以及入口地址的lds文件之后,发现栈的大小为程序所使用的data区以及bss区所剩下的空间,根据data和bss空间大小自动调整。
可见应该是程序占用太多data和bss空间,导致栈空间不够。
地址空间可以分为6部分组成,包括:bss区(未初始化的全局变量/静态变量区)、data区(初始化的全局变量区)、stack区(栈区)、heap区(堆区)、code区(代码区)、const区(常量区)。
打开反汇编文件(.dis文件),逐一分析占用空间比较大的变量,找到占用空间达到4KByte的全局变量。
再进一步找到定义该变量的文件,分析其实现的功能。
发现这个在厂家提供的SDK中定义,而该功能我们并没有使用到。
把这个变量大小改为1之后,栈大小增加到6K左右。
重新编译软件运行,一切正常。
前几天,客户提出将他找人读出的单片机代码发给我。
让我帮忙解读出其中的检测算法。
一开始我是拒绝的,因为从单片机读出来的机器码经过反汇编得到的汇编代码是极其晦涩难懂。
需要熟悉掌握汇编指令集,了解单片机ROM、RAM寻址的原理,还需要有非常清楚的思维。
虽然十几年前,用汇编语言编写软件也是顺手拈来的事情。
奈何岁月不饶人,现在多盯一会电脑就头晕眼光,再瞪大眼睛一条条汇编指令分析。
近万条的代码,估计会要了小命。
但转念一下,如果从电路原理图出来,仅分析跟算法相关的部分代码,可能工作量并不大。
于是找客户要来了原理图,开始了分析过程,如附图。
最后是祭出了大招,安装了MPLAB,将HEX文件导入到MPLAB软件。
不但可以看到汇编代码,还可以用于软件仿真运行软件,在debug模式下跟踪代码执行。
撸起袖子加油干,美好生活就在眼前!
ASML的光刻机能不能通过拆解通过逆向工程仿造出来?
不能!
本人是芯片行业从业者,曾经拜访过ASML中国的研发机构并和他们进行了技术交流,所以对此议题有一点点资格说道说道。
高端的光刻机不是车床,它不是简单的机械结构,如果类比的话好比老式拖拉机和无人驾驶汽车,虽然都是车,但是核心技术不仅仅是机械,还有光学技术和软件技术,其中软件技术看不见摸不着,就是一个黑匣子,别谈盗版,在非标硬件上的盗版,读反汇编代码的难度都不是一般的高,更不要说ASML的光刻机还有潜在的反逆向工程设计。
拿钓鱼技术类比一下吧,我在业余时间也推广欧洲鲤鱼钓法,这是一种在自然水域钓鲤鱼、草鱼、青鱼的钓鱼技术,它从钓组的设计到鱼竿、报警器、打窝技术、丸饵制作技术等方方面面都非常的科学、系统,更多欧鲤钓的知识请见《话说欧鲤钓》综述篇 (19版)
大家可以看一下,非常系统和科学,如果你只是看外在的东西,这就相当于直接买个现成的钓组就用,结果是没有发挥出欧鲤钓最大的技术优势。
所以结论是,拆解ASML的光刻机逆向工程就像直接买欧鲤钓钓组用,对自主研发有帮助,但是逆向不可能!
本文反汇编工具(静态反汇编工具)到此分享完毕,希望对大家有所帮助。