gpt4 book ai didi

java - Android逆向后如何读取混淆后的Java代码

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:43:52 25 4
gpt4 key购买 nike

在使用 dex2jar 和 JD-GUI 等工具后,我从 APK 中获取了 Java 类。众所周知,Java 字节码可以转换回 Java 类,因此大多数情况下它会通过一些工具(例如在 Android 中使用 ProGuard)进行优化和混淆,以使其免受其他人的攻击。所以我得到的是混淆代码,我想让它没有错误、可读、可理解,以便我可以根据自己的目的进一步修改它(仅供个人使用,我无意侵犯任何版权)。所以任何帮助,即建议、工具、帮助 Material ,使这个混淆代码更接近开发人员编写的代码,或者使其无错误且易于理解,都会对我有很大帮助。目前我的重点是逆向 ProGuard 使用的混淆技术,就像我尝试对自己的项目进行逆向工程并发现:

  • int 资源值可以通过通过逆向工程生成的 R 文件进行匹配来使用 id 进行更改。
  • if/else 条件大部分转换为 while(true) 和一些 continue打破
  • 内部类大部分分解成单独的文件

因此,对于上述方法的任何其他技术和帮助 Material 都可以描述如何正确地反转它们,这将非常有帮助。

最佳答案

没有神奇的工具可以将混淆代码重构为可构建的项目。很可能,您将无法将 APK 反编译和去混淆以成为干净且可维护的代码。这是好事。

有比dex2jar 和jd-gui 更好的工具。其中之一是 apk-deguard ,它声称可以逆转混淆过程。从他们的关于页面:

DeGuard

DeGuard (http://www.apk-deguard.com) is a novel system for statistical deobfuscation of Android APKs, developed at the Software Reliability Lab, ETH Zurich, the same group which developed the widely used JSNice system. Similarly to JSNice, DeGuard is based on powerful probabilistic graphical models learned from thousands of open source programs. Using these models, DeGuard recovers important information in Android APKs, including method and class names as well as third-party libraries. DeGuard can reveal string decoders and classes that handle sensitive data in Android malware.

你应该使用 Enjarify ,它归 Google 所有,而不是 dex2jar。另外,apktool适用于反编译 APK 的资源,dex2jar 和 enjarify 不处理这些资源。

其他工具包括 jadx , procyon , fernflower , show-java , smali/baksmali .


您需要一个好的 IDE 来进行重构。 JEB看起来是一个很好的重构工具。这是 Android 安全研究人员主要使用的付费工具。

关于java - Android逆向后如何读取混淆后的Java代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12146380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com