package com.cheng.securitystudy.activity;
import android.os.Bundle;
import android.view.View;
import com.cheng.base.BaseActivity;
import com.cheng.securitystudy.R;
/**
* APK保护方法之一防止反编译
*/
public class PreventDecompileActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_preventdecompile);
}
public void toPseudoEncryption(View v) {
overlay(PseudoEncryptionActivity.class);
}
public void toDestoryAPKPackage(View v) {
overlay(DestoryAPKPackageActivity.class);
}
public void toResourceImageVandalism(View v) {
overlay(ResourceImageVandalismActivity.class);
}
/**
* 参考:
* http://blog.csdn.net/tiandyoin/article/details/24346167
方法一:
将核心数据通过服务器存储,客户端每次使用时将核心数据读下来才能用,否则会出错。
这个核心数据每一定周期(比如一个月)改变一次加密解密算法,客户端当无法处理算法时,进行apk更新,也就是每月更新一次apk。
方法二:
关于图片处理的问题,例如Logo这类的小图不要以文件方式存储,可以存储到数据库中,或者将Logo以编码方式存于静态对像中;
方法三:
将核心代码存于服务器上,每次运行时读取服务器上的代码加密字符串,解密后,通过eval方式转为可执行代码。
通过以上多种方法处理再proguard后,即使反编译回去,也不会完整,不可能随便改Logo处理。
*/
}