相关疑难解决方法(0)

如何避免APK文件的逆向工程?

我正在为Android 开发支付处理应用程序,我想阻止黑客从APK文件访问任何资源,资产或源代码.

如果有人将.apk扩展名更改为.zip,那么他们可以解压缩它并轻松访问所有应用程序的资源和资产,并使用dex2jar和Java反编译器,他们也可以访问源代码.逆向工程Android APK文件非常容易 - 有关详细信息,请参阅Stack Overflow问题从APK文件到项目的逆向工程.

我使用了随Android SDK提供的Proguard工具.当我对使用签名密钥库和Proguard生成的APK文件进行逆向工程时,我得到了混淆代码.

但是,Android组件的名称保持不变,某些代码(如应用程序中使用的键值)保持不变.根据Proguard文档,该工具不能混淆清单文件中提到的组件.

现在我的问题是:

  1. 如何完全阻止 Android APK的逆向工程?这可能吗?
  2. 如何保护所有应用程序的资源,资源和源代码,以便黑客无法以任何方式破解APK文件?
  3. 有没有办法使黑客攻击更加艰难甚至不可能?我还可以做些什么来保护我的APK文件中的源代码?

security android reverse-engineering proguard

736
推荐指数
18
解决办法
20万
查看次数

将DEX反编译成Java源代码

如何将Android DEX(VM字节码)文件反编译成相应的Java源代码?

java android reverse-engineering decompiler dex

697
推荐指数
13
解决办法
50万
查看次数

如何锁定已编译的Java类以防止反编译?

如何锁定已编译的Java类以防止反编译?

我知道这必须是互联网上讨论得很好的主题,但在提到之后我无法得出任何结论.

许多人确实建议使用混淆器,但他们只是使用难以记忆的字符序列重命名类,方法和字段,但是敏感的常量值呢?

例如,您已基于基于密码的加密技术开发了加密和解密组件.现在在这种情况下,任何普通的Java人都可以使用JAD来反编译类文件并轻松检索密码值(定义为常量)以及salt,从而可以通过编写小型独立程序来解密数据!

或者这些敏感组件是否应该使用本机代码(例如,VC++)构建并通过JNI调用它们?

java jvm decompiling

90
推荐指数
6
解决办法
8万
查看次数

是否可以反编译Android .apk文件?

用户是否能够将我的应用程序的apk文件转换回实际代码?如果他们这样做 - 有什么办法可以阻止这种情况吗?

obfuscation android decompiling apk dex

83
推荐指数
2
解决办法
10万
查看次数

将服务器 URL 链接安全地存储在 Android 应用程序中

我上传一些数据并使用我的应用程序与服务器通信。我将数据发送到服务器上的 PHP 文件,然后写入数据库。

目前这些链接存储在我的 Android 应用程序代码中,例如:

// single product url
    private static final String url_product_details= "http://23.229.161.73/android_connect/get_product_details.php";

    // url to update product
    private static final String url_update_product = "http://23.229.161.73/android_connect/update_product.php";

    // url to delete product
    private static final String url_delete_product = "http://23.229.161.73/android_connect/delete_product.php";
Run Code Online (Sandbox Code Playgroud)

反编译应用程序源代码非常容易,然后所有这些链接都是可见的。那么如果可能的话,如何在应用程序内部加密这些链接并确保有人不会嗅出数据。

php android

3
推荐指数
2
解决办法
923
查看次数