逆向工程,原名Reverse Engineering,简称RE。关于其书面介绍我就不复制粘贴百度百科了,简而言之就是从发布的产品中反向分析其程序逻辑和算法——基于各种目的。
引言
准确地说,逆向工程包括软件逆向工程——即本文所讨论的,也包括硬件逆向工程。那么硬件逆向是怎么做的呢?据我所知,我国的芯片设计水平普遍比国外落后10年。当国外厂商已经成功流片量产X纳米的芯片时候,我们还在XX纳米的研发和难点攻关中挣扎。挣扎的过程之一就是芯片逆向。
一般从代理买到量产芯片后,第一步就是溶解外部封层,使用电子显微镜对电路进行拍摄,俗称拍片;第二步是使用特定工具软件(也是国外的)对照片进行切分,通过人力对自动生成的连线进行修复;第三步是将修复的连线还原成数字电路,再由IC逻辑工程师进行进一步修复;最后组合不同模块的门级电路,还原成硬件描述语言VHDL或者Verilog。之后就和正常的流程一样,开发、测试、模拟、仿真、流片……
扯远了,还是回到主题上来。硬件逆向的成本动辄成百上千万,没有纳税人的支持是玩不起的。但是软件逆向不同,只要一个智力正常的人,研究一两个月,也能上XX破解论坛上分享他们的破解成果了。
这也引出了一个问题,当我们在谈论逆向的时候,我们在谈论的是什么?
软件逆向
二进制逆向就是IDA-Pro + F5
一把梭吗?Java逆向就是