反编译一个android apk? [复制]

     2023-04-13     302

关键词:

【中文标题】反编译一个android apk? [复制]【英文标题】:Decompling an android apk? [duplicate] 【发布时间】:2012-08-28 21:00:54 【问题描述】:

可能重复:Android: Getting source code from an APK file

是否有人可以反编译我的 android apk 文件并查看我的包中声明的公共变量或常量?

我定义为公共静态常量的共享密钥将被暴露...

【问题讨论】:

是的,总是可以看到硬编码的值。如果您正在考虑范围界定,那么我不确定我是否理解您的问题。 我说的是字面上看到硬编码的常量键...... 如果您说的是其他人试图对您的代码进行反混淆,那么是的,使用正确的工具,他们将能够看到所有硬编码的值,例如 private String key = Au8aujEWS(jol#9jSd9; 是的-看here-简单的一键在线工具:) 【参考方案1】:

是的,可以反编译 apk 。

根据混淆级别,它可能需要一些时间,但一个专门/弯曲的人最终会反编译它。

你可以试试

之类的工具

apktool

Smali

Show Java Android App

来源:http://geeknizer.com/decompile-reverse-engineer-android-apk/

更新 1

这里还有 2 个选项供您选择:

decompileandroid.com

javadecompilers.com/apk

由@AndrewRukin推荐

更新 2

另一个工具:jadx

【讨论】:

我还可以补充一点,现在可以在线反编译Android应用程序,不需要任何软件!这里有 2 个选项供您选择: - decompileandroid.com - javadecompilers.com/apk【参考方案2】:

当您对代码进行去混淆处理时(这里有一个视频教程可能会提供见解:How to read obfuscated code),您将能够看到所有硬编码的值,例如

private String key = "Au8aujEWS(jol#9jSd9";

除非他们不会看到变量名:

private String a = "Au8aujEWS(jol#9jSd9";

通过使用Sunny mentioned 之类的工具,您将能够使所有代码接近其原始状态。

我举个例子;如果你有以下原始代码:

public class MainActivity extends Activity  
    private String key = "Au8aujEWS(jol#9jSd9";

    public void onCreate(Bundle savedInstance) 
        //Some code here
    


public class OtherActivity extends Activity  ... 

编译后,反编译回java代码,如下所示:

public class A extends B 
    private String a = "Au8aujEWS(jol#9jSd9";

    public void a (C b) 
        //Some code here
    

public class D extends B  ... 

通过使用有根据的猜测和重构工具,您将能够对代码进行去混淆处理,因此只要有足够的奉献精神和努力工作,人们就能看到您的所有代码。


我强烈建议不要让您的安全性完全取决于编码到客户端应用程序中的内容。当然,这取决于不让黑客有机会访问您要保护的信息对您的情况有多重要。

【讨论】:

【参考方案3】:

是的,这是可能的,但它不是那么简单 - 某人确实必须有充分的理由这样做。

根据您需要多少安全性,您可以在运行时构造您的密钥,而不是将其保存到最终字符串中,从 Internet 下载它(但这种方式必须更好地保护,可能不值得)或者让其他外部服务器代替您的应用来完成工作 - 特别是在您谈论支付和存储公钥时 - 在这种情况下,密钥甚至不会嵌入到您的应用中。

另外,请记住使用提到的混淆工具(如 ProGuard:http://developer.android.com/tools/help/proguard.html)让黑客的生活更加艰难。

【讨论】:

【参考方案4】:

是的,Android APK 可以很容易地被反编译。即使代码被混淆,反编译时也可以看到公共变量、常量及其值。

当您混淆代码时,您的变量名会被重命名。您的变量的值保持不变。混淆与加密不同。因此,当您混淆您的代码时,您的代码不会被加密。

普通代码示例:

String str = "This is a string.";

混淆代码示例:

String a = "This is a string.";

正如您在上面看到的,变量名称从“str”重命名为“a”,但它的值保持不变。混淆通过将变量名称重命名为短的非逻辑名称来使文件更小并使代码更难理解。

我所做的是混淆我的整个代码,然后加密我的密钥并在我的程序中的某个地方解密它。虽然我知道一个坚定而耐心的黑客仍然可以破解我的密钥,但这会让他更难。

【讨论】:

apk反编译

...的是绕开一个简单的激活程序。什么是反编译我们知道,Android的程序打包后会生成一个APK文件,这个文件可以直接安装到任何Android手机上,因此,反编译就是对这个APK进行反编译。Android的反编译分成两个部分:一个是对代码反... 查看详情

apk反编译(代码片段)

学习和开发Android应用有一段时间了,今天写一篇博客总结一下Android的apk文件反编译。我们知道,Android应用开发完成之后,我们最终都会将应用打包成一个apk文件,然后让用户通过手机或者平板电脑下载下来进行安装。正常情况... 查看详情

手把手教你搞懂android反编译

我们知道,Android的程序打包后会生成一个APK文件,这个文件可以直接安装到任何Android手机上,因此,反编译就是对这个APK进行反编译。Android的反编译分成两个部分:一个是对代码反编译,也就是java文件的反编译。一个是对资... 查看详情

我可以使用密钥库反编译项目吗? [复制]

...4-1509:07:48【问题描述】:丢失了我的USB,它正在运行我的android项目。我刚刚测试了那个应用程序,所以我只有那个apk。我可以将apk提取到项目中吗...?【问题讨论】:提示:使用云解决方案来保存您的开发文件。我个人的Dropbox... 查看详情

如何反编译android应用并重新打包

参考技术Aandroid应用安装到手机的是一个apk文件。apk是可以用工具进行反编译并重新打包的。本文将介绍下如何用apktool对apk进行反编译并重新打包。工具/原料apktoolautosign方法/步骤首先我们新建一个android项目,里面只有一个MainAc... 查看详情

手把手教你搞懂android反编译

我们知道,Android的程序打包后会生成一个APK文件,这个文件可以直接安装到任何Android手机上,因此,反编译就是对这个APK进行反编译。Android的反编译分成两个部分:一个是对代码反编译,也就是java文件... 查看详情

有没有反编译工具,可以把apk完全反成一个android项目的?,这个android逆向助手只

有没有反编译工具,可以把APK完全反成一个android项目的?,这个android逆向助手只能反出一部分项目有啊,用安卓修改大师,那个纯傻瓜操作,不需要编程知识都能反编译,可以把APK完全反成一个android项目的参考技术A我可以让... 查看详情

反编译apk时出现异常

...2015-02-1622:05:54【问题描述】:我正在尝试制作一个安全的Android应用程序。我在我的应用中启用了proguard。但它在反编译时不会隐藏任何xml文件或清单。它只会更改.java文件。我尝试使用apktool从Play商店反编译另一个应用的apk。然... 查看详情

反编译apk

需要的工具①dex2jar-0.0.9.15(android反编译工具)②jdgui(java反编译工具)下载链接:https://pan.baidu.com/s/1c9W3gK2HmpuSamQTir55kA提取码:l9eu说明:反编译成功后的类都是abcd之类的样式命名,因被加密混淆过 步骤①将需要反编译的apk后缀... 查看详情

反编译APK,修改一个activity并重新编译成APK

...某个变量值,然后将其重新编译回APK,以便我可以在我的Android设备上使用它。自从我开始使用它已经好几天了,我找不到任何解决方案。我尝试了这 查看详情

这可以保护我们的apk在android中反编译吗?

】这可以保护我们的apk在android中反编译吗?【英文标题】:Isthispossibletoprotectourapktodecompileinandroid?【发布时间】:2017-01-1914:17:48【问题描述】:我创建了一个android应用程序,但在该应用程序中我使用的是url,所以我想保护该url... 查看详情

Android-如何通过解码和反编译apk文件来提供打开的android相机权限

】Android-如何通过解码和反编译apk文件来提供打开的android相机权限【英文标题】:Android-howtosupplyopenandroidcamerapermissionbydecodinganddecompilingapkfile【发布时间】:2015-12-2516:19:27【问题描述】:嗨,我通过使用各种wordpress插件将wordpress... 查看详情

apk反编译

在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用的APK进行... 查看详情

手把手教你搞懂android反编译

我们知道,Android的程序打包后会生成一个APK文件,这个文件可以直接安装到任何Android手机上,因此,反编译就是对这个APK进行反编译。Android的反编译分成两个部分:一个是对代码反编译,也就是java文件... 查看详情

apk反编译工具与使用方法

...度的还原apk中的manifest文件和资源文件。使用apktool工具反编译apk文件比直接解压同一个apk文件大;还可以将反编译之后的apk重新打包成apk文件,但需要重新签名,才能安装使用。2、dex2jar官方下载地址作用:将APK直接解压后,目... 查看详情

Android - 如何解码和反编译任何 APK 文件?

】Android-如何解码和反编译任何APK文件?【英文标题】:Android-HowtodecodeanddecompileanyAPKfile?【发布时间】:2013-02-0504:54:20【问题描述】:我正在处理广告:我的客户给了我一些他们应用程序的APK文件。我的工作包括在其中插入广告... 查看详情

如何反编译 Android Studio 生成的 Apk 文件

】如何反编译AndroidStudio生成的Apk文件【英文标题】:HowtoDecompilingApkfilesthatGeneratedByAndroidStudio【发布时间】:2015-04-1506:22:59【问题描述】:我完全丢失了我的androidstudio项目,没有办法找回它。现在,我正在尝试反编译我的apk文件... 查看详情

反编译apk得到布局文件

 下载反编译工具:    apktool:http://ibotpeaches.github.io/Apktool/  命令:java-jarapktool.jardyourApkFile.apk  输入命令即可反编译apk。 参考:Android反编译技术总结 AndroidAPK反编译就这么简单详解(附图) 查看详情