相关疑难解决方法(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万
查看次数

是否可以查看Class文件的字节码?

可能重复:
是否有java类文件/字节码编辑器来编辑指令?

Java源代码被编译成字节码,实际上是在类文件中.是否可以查看已编译类的字节码?

如果可能,可以编辑吗?

是否有可用的eclipse插件?

java bytecode bytecode-manipulation

98
推荐指数
4
解决办法
7万
查看次数

Android ProGuard如何隐藏/混淆导出库的源代码

我正在开发Android库,我想隐藏/混淆库的源代码实现.

用户项目应用程序将使用该库的方式是:

startActivity( new Intent(context, LibraryActivityName.class) );
Run Code Online (Sandbox Code Playgroud)

所以我需要Activity在库项目中保留入口点的名称,这就是全部.

当我使用默认的ProGuard设置时:

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
Run Code Online (Sandbox Code Playgroud)

以及建议示例 - 没有发生任何事情,通过单击用户应用程序内的活动名称(当他导入它时) - 可以看到源代码.

谢谢,

android proguard android-proguard

4
推荐指数
1
解决办法
2669
查看次数

有没有办法编译隐藏源代码?

使用Play或Grails或任何其他JVM框架;

有没有一种方法(或者是什么方法),以充分编译生成的战争/ jar文件,这样的源代码可以被隐藏,而不会反编译的可能性?

或者甚至在编译之后,是否可以轻松地反编译并获取字符串和类?例如db connection等.

谢谢.

java grails groovy jvm playframework

1
推荐指数
1
解决办法
5329
查看次数