有时候,一个人想看到的,而什么样的具体方案填写的? 然后,他必须使用逆向工程。 这是什么? 它是如何工作的? 这是如何处理? 所有这一切,你会从这篇文章中学习。
什么是反向工程计划?
所谓过程中的应用分析,以了解它是如何工作的,所以,在未来通过进行必要的改变,以重建这个过程。 通常用于此目的的调试器和汇编。 根据所使用的将是不同的软件的质量和结果是要在其上花费在一个正常的形式带来的时间量。 说明逆向工程对于初学者最好的例子。 作为其执行为Android编写的应用程序。 现在,让我们先来看看什么和如何。
与Android的应用程序工作
首先,我们需要澄清的几个问题。 该应用程序使用的字节码和logcat的。 这个当地同行前面提到的调试器和汇编。 还需要了解应用程序本身的结构。 因此,每个程序与扩展APK的文件。 他收拾zip'om。 我们感兴趣的是它的内容 - 应用程序资源,classes.dex和AndroidManifest.xml中。 如果您在Android上做节目,前者和后者的问题,不应该。 但是classes.dex - 这是虚拟机的具体编译该程序的字节码。 从他的Java源代码在互联网上提供的代码提取没有得到资金。 但是,它可能获得的Dalvik操作码 - 一种特殊的组用于虚拟机的命令。 对于一个比喻,我们可以说,本次大会当地洪水。 Classes.dex也可以转换成与所述罐的文件。 即使在这种情况下,你可以反编译后的java代码,这将是或多或少的可读性。 这是我们要走的路。
反编译
这一过程将如何使用APK管理器程序来进行。 在开始之前,请确保有对devaysa和工作的USB调试模式正确的驱动程序。 最初,我们将需要移动将被解析成指令apk_manager \布局APK-这里换改装的文件。 在此之后,你应该运行Script.bat。 如果没有问题的话,启动控制台,这将是绿色字体。 选择点九数 - “反编译”。 一旦这个过程开始时,有必要不要关闭控制台。 然后,使用归档,并从中提取classes.dex,持仓APK文件要处理dex2jar程序。 对于我们所要的结果,有必要在扩展名.BAT移动对象。 你会看到该文件,这将在.jar结尾。 到目前为止,窗口不会关闭。
我们分析数据
要获取有关应用程序的信息,您必须打开它表现出来。 根据它,我们确定作为主要活动。 她是谁,现在呈现给我们的最重要的。 也希望看节目的底部。 如果底部是关于许可证管理的信息,它是显著难以进行逆向工程。 如果切换到JD-GUI,并展开树,我们可以看到几个命名空间。 假设他们三人。 在第一个与广告相关的文件。 第二个将是授权管理类。 第三,我们有必要的数据。 这是当我们去。 有需要找到并删除键,然后是检查是否许可工作版本行的其余部分。 所有这些需要清洁。 那么在我们的.apk经理寻找在那里的地方指定字节码的地方。 现在让我们做一个小题外话并注释掉团队,这可能会导致问题。 在那之后,我们只需要编译程序。
构建应用程序
这将帮助我们都是一样的.apk经理。 在控制台中,我们还没有锁定,选择该项目№14。 下招。 如果应用程序是相当复杂的,当你开始,它可以部分或完全失去其效率。 别担心,这意味着我们只有一半了和别的地方去。 我们不断地进行逆向工程,所有的Android应用。 再说了,什么在特定情况下做的,一般来讲,唉,是不可能的。 因此,寻找问题的地方都会有自己的。 例如,如果一个应用程序窗口被阻止 弹出窗口, 你应该看到的代码,删除是负责这一对话的一部分。 为了帮助这一点可以JD-GUI。 正如你所看到的,反向工程是不是一件容易的业务,它需要知识的相当大的商店。 即使一切都运行没有任何问题,这将需要测试的应用程序的性能。 也就是说,逆向工程是比较耗时的活动。 我们将继续工作,直到所有的发现问题。
安全
如果我们需要什么保护逆向工程所有Android应用程序? 在这种情况下,有两种选择:使用特定程序或代码结构的建立,这将干扰进行解析写的。 后一种选择是只适合经验丰富的专业人员,因此,我们将只考虑第一保护方法。 作为一家专业的软件搭配使用ProGuard。 此应用程序,它是用来减少,迷惑和代码优化。 如果程序“追逐”,通过它,我们得到与扩展比他更小的.apk文件*。 在这样的情况下,将更加难以拆卸。 而这个方案的优点是,它甚至已经在构建Android应用程序与R9更新推出。 因此,利用它是具有创造和发展的标准工具,任何开发人员。
结论
我们不能说,逆向工程可以表示为均匀的好或坏的东西。 当然,从开发商,谁创建的应用程序的地步,这不是一件喜事。 但在另一方面,在许多情况下,有经验的程序员编写必要的文件,可以是时间比使用这样的工具更便宜。 虽然开发新手如果没有如何实现的东西,甚至是示范性的想法,不太清晰的轮廓可以与这个目标的实现有助于逆向工程可以使一个良好的服务。