package com.cheng.securitystudy.activity; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import com.cheng.securitystudy.R; /** * APK保护方法之二:代码高级混淆 - 花指令 */ public class JunkCodeActivity extends AppCompatActivity { /** * 花指令是程序中有一些指令,由设计者特别构思,希望使反汇编的时候出错, * 让破解者无法清楚正确地反汇编程序的内容,迷失方向。 * 【花指令】这个词来源于汇编语言,它的思想是非常不错的。 * 【花指令】另外个目的就是利用反编译工具漏洞,来使工具无法使用。 * 接下来 我们就在java代码处制造【花指令】, * 让反编译工具(jd-gui)无法反编译查询你的java代码。 * jd-gui的bug其实挺多了。很多特殊代码块或者字段集 * 都能够让其崩溃无法反编译出源码。 * 比如: private static final char[] wJ = "0123456789abcdef".toCharArray(); public static String imsi = "204046330839890"; public static String p = "0"; public static String keyword = "电话"; public static String tranlateKeyword = "%E7%94%B5%E8%AF%9D"; 在每个类里面加入 如上字段。。。。 你会发现反编译的类 通过jd-gui查看 后的结果。 */ /** * 花指令 -- 低版本的jd-gui有效,高版本失效了 */ private static final char[] wJ = "0123456789abcdef".toCharArray(); public static String imsi = "204046330839890"; public static String p = "0"; public static String keyword = "电话"; public static String tranlateKeyword = "%E7%94%B5%E8%AF%9D"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_junkcode); } }