逆向工程

已发表: 2022-03-10

最后更新于 2022 年 3 月 21 日

Reverse Engineering | a Girl Reversing Her Car

我将讨论什么是逆向工程以及为什么它很重要。 许多不是开发人员的人认为他们知道什么是逆向工程,因为他们在电影中看过它,但这是一种误解。 逆向工程对许多不同的人有很多意义,我要告诉你的将与其他人的定义大不相同。

对于白标软件而言,逆向工程本质上是获取一个程序并弄清楚它是如何工作的以及它可以做什么。 但是,更准确地说,逆向工程是采用现有程序并学习其内部工作原理,以便您可以修改程序以执行作者预期之外的事情。 当您浏览我们的网站时,您可以详细了解白标的含义!

在软件开发中,我们说当你把它拆开并找出它是如何工作的时候,你正在逆向工程。 逆向工程有利于学习如何使用软件以及它是如何工作的。 它还可以用于许多不同的事情,比如数字营销、保护你的公司、黑客攻击和许多其他事情。

寻找白标营销机构? 现在就打电话给我们!

营销中的逆向工程

Reverse Engineering In Marketing | A Man and Woman Discussing Their Different Marketing Graphs 如果您打算创建一个新的营销活动,您可以对软件进行逆向工程以了解它的作用或应该如何执行。 然后,您可以修改代码以使其适应您的需求。 您可以对广告或其他类型的营销做同样的事情。 还可以找到有关竞争对手、产品规格和性能以及许多其他信息的信息。

当你想创造一些东西时,你首先需要从设计开始。 你可以使用工具来帮助你进行设计,但你也应该用你的东西来测试它,因为知道这些东西是否会充分交互是很重要的。 有时,您需要在程序中鬼混,并通过创建错误输出来了解它们是如何工作的。 你甚至可以驾驶一辆带有真车图像的汽车,尤其是如果你想看看它的表现如何。 我们将这种驾驶称为虚拟驾驶或虚拟驾驶。

什么是逆向工程?

它是分析计算机程序以确定其内部结构、源代码、算法和数据流的过程。 逆向工程的目的是了解计算机程序的工作原理以及程序内部的内容。 在您阅读此信息的地方,它可能被命名为崩溃分析、反汇编、逆向工程或调试。 我喜欢“调试”,因为它听起来更像是程序员所做的一项活动,而实际上并非如此。 如今,大多数程序员甚至不知道他们是逆向工程师。

逆向工程是使用软件、程序(或破解程序)执行开发人员从未打算使用它(但有时会发生)的操作的过程。 在这种情况下,黑客在程序中发现了一个代码缺陷,并想出了如何使用它来获得预期的效果。 例如,黑客对游戏进行了逆向工程,并且知道它们是如何工作的,或者他们可以学到什么样的信息。

它为什么如此重要?

市场上几乎所有的软件都是逆向工程的。 有几个程序没有反转。 甚至微软的应用程序也被逆向工程。 甚至整个公司都只是为了钱而对软件进行逆向工程。

自从美国政府通过了软件保护或数字版权管理 (DRM) 法律以来,逆向工程变得越来越重要。 如果不进行逆向工程,就不会有带有 DRM 的软件,并且逆向工程的程序也不会受到 DRM 的保护。 逆向工程之所以重要还有更多原因,但这是整本书(或一系列书籍)的主题。

逆向工程改变了世界。 它彻底改变了人们的生活方式。 它有很多优点:

  • 你可以让软件做你想做的事。
  • 您可以了解如何从程序中删除不应该存在的内容。
  • 将某些东西分解成组件并进一步分析变得更容易。
当你把它拆开并找出它是如何工作的时候,你就是在逆向工程。 逆向工程有利于学习如何使用软件以及它是如何工作的。 点击推文

逆向工程有什么好处?

Benefits | A Girl On The Top Of A Block 您可以通过反转程序来查看它的作用并了解其内部机制。 您可以在不影响其他程序或操作系统的情况下对程序进行更改。 这是一个显着的优势,因为大多数程序必须与其发布者提供的库和操作系统兼容。 对程序进行更改不仅会严重损坏您的系统,还会严重损坏其他用户的系统。 逆向工程使您可以访问所有内部机制、库和有关其工作原理的信息。 您可以创建可以使用库和操作系统的程序,而无需付费。

逆向工程的过程是什么?

这是一个复杂的问题,因为答案取决于您的逆向工程程序。 我能给你的最佳答案是:“这取决于……”。 现代程序具有反调试、反逆向工程和反覆盖代码。 这意味着逆向工程涉及大量使用混淆,这会浪费时间并且有时会导致程序崩溃。

混淆是一种反逆向工程技术,它使对程序进行逆向工程变得更加困难。 程序的子程序、函数和其他部分通常被移动到内存中的不同位置,并且数据结构随着幻数而改变。 有时,代码会被加密或扫描以查找可能提供有关其结构信息的特定单词。 这并不总是足以击败逆向工程师,因此有时,在尝试使用特定工具对其进行反汇编时,程序会崩溃。 在许多国家/地区,即使您拥有该软件的副本并且没有以任何方式对其进行修改,这也是非法的。

如何逆向工程软件/程序?

如果您不习惯逆向工程软件,明智的做法是先从可访问的程序开始。 如果您在跳入池的最深处之前尝试学习特定于逆向工程的工具,那将是最好的。 IDA Pro 是初学者的好工具。 (IDA 代表入侵检测分析)。 它是免费的、易于访问的,并且几乎可以反转任何程序,只要它是 32 位的。 IDA Pro 的工作原理是分析编译或反汇编的代码,然后以一种让您更容易阅读、理解甚至编辑的方式显示它。 IDA Pro 是逆向工程师的好工具,但它并不适合所有情况。

另一个工具是 GDB,它是一个调试工具,例如 Visual Studio。 但是,GDB 会像 V​​isual Studio 一样在执行时调试代码。 不同之处在于您可以在执行时对代码进行更改,然后导致程序崩溃。 这将允许您查看逻辑错误(假设反调试/反逆向工程机制不会掩盖它)。 之后,您可以修复错误或继续执行,直到程序的其他部分出现问题。

了解有关白标营销的更多信息! 立即联系我们!

逆向工程有哪些风险?

Risks | A Man Jumping From One Cliff to Another 在大多数国家,对软件进行逆向工程是违法的。 但是,在美国的某些情况下,只要您拥有该程序的副本并且可以证明它是合法获得的(使用序列号或 CD-Key),它就不是非法的。 反复制和反盗版机制也有例外,它们只允许用于教育目的。 要对程序进行逆向工程,您必须有足够的信息来执行此操作。 这通常意味着了解您正在逆向工程的程序的源代码。 即使您可以阅读源代码,也并不总是那么容易,主要是在使用反调试/反逆向工程机制的情况下。

我希望您能更好地了解逆向工程的含义以及如何将其应用于不同的情况。 我也希望您能在这方面变得更有知识,并帮助您的企业和客户以更现代的方式使用他们的知识工具成长。