什么是逆向工程? 0 到 100 逆向工程
例如,某些生物体基因中存在的优势可以通过逆向工程在人类中模拟
应用于计算机硬件和软件的逆向工程实践取自旧行业。软件逆向工程关注的是程序的机器代码。以这样的方式检查代码然后本地化它们。
根据技术的不同,逆向工程过程中获得的知识可用于重用过时的对象、执行安全分析、获得竞争优势或简单地教某人某些东西是如何工作的。无论知识如何使用或与什么相关,逆向工程都是从对象中提取知识的过程。
逆向工程的目标是了解对象或系统的工作原理。这有几个原因。逆向工程可用于了解某物的工作原理并重新创建该对象或创建具有附加改进的类似对象。
通常,逆向工程软件或硬件的目标是找到一种方法以较低的成本创建类似的产品,或者因为原始产品不再可用。信息技术中的逆向工程还用于解决与硬件或软件与最初不兼容的其他硬件、软件或操作系统的兼容性和操作相关的问题。
一个很好的例子是苹果公司的 Logic Pro 软件,它允许音乐家创作、录制、编曲、编辑和混合音乐。 Logic Pro 仅适用于 Mac 设备,并且价格相对昂贵。该程序有几个专用的数字工具。通过一些研究,程序员可以对这些数字乐器进行逆向工程,弄清楚它们的工作原理并对其进行自定义以在 Logic Pro 中使用,或者使它们与其他 Windows 兼容的音乐软件兼容。
逆向工程的过程特定于其执行的对象然而
无论上下文如何,所有逆向工程工作都共有三个通用步骤。他们是:
- 信息提取 逆向工程是对一个对象的研究,提取有关其设计的信息,并检查该信息以确定各个部件如何组合在一起。在软件逆向工程中,这可能需要收集源代码和相关设计文档进行研究。它还可能涉及使用拆分器等工具将程序分解为其组成部分。
- 造型。 收集到的信息被构建成一个抽象的概念模型,模型的每个部分都解释了其在整体结构中的功能。此步骤的目的是捕获特定于原始版本的信息并将其抽象为可用于指导新对象或系统的设计的通用模型。在软件逆向工程中,这可以采用数据流图或结构图的形式。
- 审查 此步骤涉及检查模型并在不同场景中对其进行测试,以确保它是原始对象或系统的真实构建设备。在软件工程中,这可能采取软件测试的形式。经过测试后,可以实施该模型来重新设计原始对象。
逆向工程过程的细节根据逆向工程的内容而有所不同,但通常分为这三个步骤。
软件逆向工程涉及多种工具的使用。其中一种工具是十六进制转储程序,它以十六进制打印或显示程序的二进制数。通过了解表示主处理器指令的位模式以及指令的长度,逆向工程师可以识别程序的各个部分以了解它们是如何工作的。
逆向工程根据其应用范围和逆向工程技术的目的而有所不同常见的例子有:
有几个使用逆向工程来反汇编软件的例子。一个常见的例子是将为一个微处理器使用而编写的程序改编为另一个微处理器。其他示例包括重建丢失的源代码、研究如何执行特定操作程序、提高性能以及在原始源代码不可用时修复错误或纠正错误。
一个例子是 Phoenix,一家美国软件公司,它创建了与 IBM 专有版本兼容的原始 BIOS 软件。为此,Phoenix 对 IBM 的版本进行了逆向工程,通过记录其遵循的步骤而不是引用专有代码,从而保护他们免受版权费用。
恶意软件是使用软件逆向工程的另一个领域。威胁行为者经常使用混淆软件代码来避免检测或理解其恶意代码。受感染软件或系统的所有者可以使用逆向工程来识别病毒等恶意内容。
美国国防情报局表示,计划利用这些技术对敌方恶意软件进行逆向工程,以制造自己的进攻性网络武器。有一些工具可以帮助对恶意软件进行逆向工程,例如国家安全局的 Ghidra 软件用于对 WannaCry 恶意软件进行逆向工程。
如果处理器制造商想要了解竞争对
手的处理器如何工作 它可以购买竞争对手的处理器,对其进行逆向工程,然后使用所学到的知识来构建自己的处理器。
这个过程在许多国家都是非法的,需要大量的专业知识,而且费用昂贵。 当旧设备的原始零件不再可用时,逆向工程通常用于制造替换零件。 还对计算机部件进行逆向工程以提高安全性。例如,谷歌的零项目利用逆向工程识别了微处理器中的漏洞。
研究表明,使用品牌名称作为扩展名的电子 阿富汗消费者手机号码列表 邮件比普通电子邮件更专业。因为它为客户创造了商业价值,并且他们很容易信任该品牌。这使得该品牌遥遥领先于市场上其他同类企业。此外,保持专业精神可以更轻松地获得新客户并保留业务。
在美国逆向工程通常被认为是了解产品的
合法方式 只要合法获得原始副 本并且不损害其他合同即可。美国贸易法旨在允许逆向工程,如果它是为了改进产品或与以前不兼容的其他产品建立互操作性。
根据《商业秘密保护法》,对注册产品进行逆向工程通常是合法的,但在某些情况下其合法性值得怀疑。专利持有人有权对任何复制其发明的人采取法律行动。
通过逆向工程软件复制程序可能会违反版权法。某些软件许可证明确禁止逆向工程。本文中包含的其他协议也可能限制使用逆向工程来访问原始信息,包括服务或使用条款和保密通知以及可能禁止对生产硬件或软件进行逆向工程的其他类型的开发者协议。
密码、加密和访问控制设备等技术保护措施 (TPM) 通常用于控制对受版权保护的软件和其他数字内容的访问。绕过 TPM 可能会导致法律问题。
与逆向工程相关的各种法律包括:
- 法律证明的发明
- 版权法和合理使用
- 商业秘密法
- 《数字千年版权法》的反规避条款
- 电子通信隐私法
- 合同中提及的有关产品的任何具体合同规则都可以帮助双方提高逆向工程方法的生产力和效率。
当向法庭提出逆向工程质疑时,对象、系统或知识产权的原始所有者必须证明其创建了该对象或拥有专利或版权。进行逆向工程的个人或组织必须证明他们是通过合法途径获得信息的。
逆向工程和开发新软件产品以避免版权侵权的一种方法是使用洁净室或道德墙技术,其中两个独立的程序员组负责该项目并确保原始版本不被直接复制。
逆向工程是一个涉及道德和法律的复杂领域。信息技术在日常生活许多领域的传播使其变得更加复杂。
逆向工程在信息技术中有许多合法用途
它可以是解决兼容性问题 重建旧部件 网络攻击是如何进行的?零到一百次网络攻击 执行安全评估 改进现有产品或降低成本的合法和道德方法。
所涉及的步骤很复杂,并且根据逆向工程的内容而有所不同。例如,寻求解决软件产品用户问题的质量保证专业人员可以对投诉进行逆向工程以找出其根本原因。确定用户问题的根本原因并不容易,但逆向工程技术可以消除一些问题。
您对逆向工程了解更多吗?
您对逆向工程有何看法?
您有过使用逆向工程的经验吗?
在所有这些情况下,您可以使用本文的评论部分与我们分享您对逆向工程技术的想法。
另一种逆向工程工具是反汇编软件
读取二进制代码并将每个可执 手机号码列表 指令显示为文本。反汇编器无法区分可执行指令和程序使用的数据之间的区别,因此调试器用于防止反汇编器分离程序的数据部分。计算机破解者可能会使用这些工具来渗透计算机系统或造成其他损坏。
计算机辅助设计 (CAD) 是一种逆向工程技术,用于在原始设计不再可用时重新创建制造零件。这涉及生成零件的 3D 图像,以便可以重新创建它。测量设备测量零件的坐标,测量时,使用 CAD 软件生成 3D 线框图像并显示在监视器上。测量完成后,将对线框的图像进行尺寸标注。任何零件都可以使用这些方法进行逆向工程。