我正在为Android 开发支付处理应用程序,我想阻止黑客从APK文件访问任何资源,资产或源代码.
如果有人将.apk扩展名更改为.zip,那么他们可以解压缩它并轻松访问所有应用程序的资源和资产,并使用dex2jar和Java反编译器,他们也可以访问源代码.逆向工程Android APK文件非常容易 - 有关详细信息,请参阅Stack Overflow问题从APK文件到项目的逆向工程.
我使用了随Android SDK提供的Proguard工具.当我对使用签名密钥库和Proguard生成的APK文件进行逆向工程时,我得到了混淆代码.
但是,Android组件的名称保持不变,某些代码(如应用程序中使用的键值)保持不变.根据Proguard文档,该工具不能混淆清单文件中提到的组件.
现在我的问题是:
如何将Android DEX(VM字节码)文件反编译成相应的Java源代码?
用户是否能够将我的应用程序的apk文件转换回实际代码?如果他们这样做 - 有什么办法可以阻止这种情况吗?
我上传一些数据并使用我的应用程序与服务器通信。我将数据发送到服务器上的 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)
反编译应用程序源代码非常容易,然后所有这些链接都是可见的。那么如果可能的话,如何在应用程序内部加密这些链接并确保有人不会嗅出数据。
android ×4
decompiling ×2
dex ×2
java ×2
apk ×1
decompiler ×1
jvm ×1
obfuscation ×1
php ×1
proguard ×1
security ×1