【原创】总结防止APK被工具反编译、二次打包等

Faskim 2013-10-26 11:37:57
之前在论坛看到一个帖子讲的是如何破解APK。。。
仔细看完 了解到APK真的好脆弱,太容易被反编译。。辛辛苦苦写得代码被别人那么轻松就能得到 总感觉心里有点不舒服。。。
于是乎 开始研究如何如何保护APK不被反编译,防止二次打包呢。。。
通过这段时间在网上查资料与技术大神探讨与指点 研究出了一些 保护APK的方法 。。。

准备工作:
1。要保护APK安全 首先要了解一下 自己的APK到底有多不安全吧。
http://bbs.csdn.net/topics/390598569 这帖子是之前论坛一位大牛发的。。大家可以去了解下APK到底有多不安全。。。
2。反编译工具 就拿最经典最牛逼最常用的 APKTool 来测试。。

...全文
16010 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
SoulRed 2016-05-05
  • 打赏
  • 举报
回复
还有后续么。。软件安全刻不容缓啊
从小做起1234 2015-04-30
  • 打赏
  • 举报
回复
上述花指令已失效...
Ydcool 2014-04-17
  • 打赏
  • 举报
回复
这个方法针用在0.3.6版本的jd-gui已经失效了。白高兴了半天啊。。
晴天小子 2014-02-26
  • 打赏
  • 举报
回复
引用 20 楼 u012575740 的回复:
APK保护方法之二:代码高级混淆 - 花指令 花指令是程序中有一些指令,由设计者特别构思,希望使反汇编的时候出错,让破解者无法清楚正确地反汇编程序的内容,迷失方向。【花指令】这个词来源于汇编语言,它的思想是非常不错的。。【花指令】另外个目的就是利用反编译工具漏洞,来使工具无法使用。 接下来 我们就在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查看 后的结果。。
亲自试过了没有用
失落夏天 版主 2013-12-22
  • 打赏
  • 举报
回复
你先把代码混淆一下 然后在打包apk出去。 这样人家技师反编译出来的也仅仅只是abcd这样的类名和abcd这样的方法,
aotian16 2013-12-21
  • 打赏
  • 举报
回复
支持啊,apk确实太脆弱了
3的求摩 2013-11-05
  • 打赏
  • 举报
回复
引用 14 楼 u012575740 的回复:
[quote=引用 13 楼 checkway 的回复:] 期待后续方法
不准备继续更新了,,现在在http://www.apkbus.com/android-145245-2-1.html 这个地址 开展在线互动 ,讲的就是关于apk保护的。。。 如果有时间你可以来这个网址讨论并学习我所更新的保护方法。。。[/quote] 已经在那边开了
aotian16 2013-11-05
  • 打赏
  • 举报
回复
佩服,很厉害
Faskim 2013-11-05
  • 打赏
  • 举报
回复
引用 13 楼 checkway 的回复:
期待后续方法
不准备继续更新了,,现在在http://www.apkbus.com/android-145245-2-1.html 这个地址 开展在线互动 ,讲的就是关于apk保护的。。。 如果有时间你可以来这个网址讨论并学习我所更新的保护方法。。。
3的求摩 2013-11-05
  • 打赏
  • 举报
回复
期待后续方法
Faskim 2013-11-05
  • 打赏
  • 举报
回复

APK保护方法之二:代码高级混淆 - 花指令
花指令是程序中有一些指令,由设计者特别构思,希望使反汇编的时候出错,让破解者无法清楚正确地反汇编程序的内容,迷失方向。【花指令】这个词来源于汇编语言,它的思想是非常不错的。。【花指令】另外个目的就是利用反编译工具漏洞,来使工具无法使用。 接下来 我们就在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查看 后的结果。。
Faskim 2013-11-05
  • 打赏
  • 举报
回复
由于受apkbus论坛负责人的邀请,那边开了一个专家讲堂的帖子 给大家讲解apk保护的方法。。由于csdn 发帖的规范,一个人一次性只能连续发3帖,导致想要转载过来也没有办法。。。如果有朋友帮助的话 我可以把帖子的内容 也同时发到这里一份。。我讲解的内容大概如下: APK保护方法: 1. 防止工具反编译 a) 伪加密 b) APK压缩包故意破坏 c) 素材中的图片故意破坏 2. 代码高级混淆 a) 花指令在源码被窃后增加黑客阅读难度 b) 文件夹混淆(文件.2 正式版本文件夹取名尽量不要太正规) 3. 运行时验证 a) 签名验证的各种方法 4. 防止内存修改 a) 如何防止”八门神奇”通过内存数据 ... 如果有朋友帮助的话,帮助转载或者帮忙在连续发3贴后 回复一帖。。 可以联系我。。 我可以立刻把发的帖子都发到这贴一份
Faskim 2013-11-05
  • 打赏
  • 举报
回复
引用 17 楼 DrSmart 的回复:
那个站就算了,还是来csdn吧
恩。。受那边邀请。。 以后如果有时间 我可以转载过来的。。。
DrSmart 2013-11-05
  • 打赏
  • 举报
回复
那个站就算了,还是来csdn吧
Faskim 2013-11-04
  • 打赏
  • 举报
回复
引用 7 楼 DrSmart 的回复:
楼主怎么总是在zip上做文章,考虑下花指令才对啊
花指令 算是代码高级混淆的。。。 不过我说的 花指令,主要是防止工具查看源码的, 是运用了花指令的思路。。因为花指令来源是汇编的。。我这只是模仿 那种思路。。
Faskim 2013-11-04
  • 打赏
  • 举报
回复
引用 7 楼 DrSmart 的回复:
楼主怎么总是在zip上做文章,考虑下花指令才对啊
花指令也是我想说的 保护之一。。 本来准备 分 1.防止工具反编译 2.代码高级混淆 3.运行时验证 4.防止内存修改 4个方法 来说的。。。 结果发现感兴趣的人不多 就没有更新的动力了。。
  • 打赏
  • 举报
回复
敬仰了!!!!
Faskim 2013-11-04
  • 打赏
  • 举报
回复
引用 10 楼 DrSmart 的回复:
有道理,你的想法很不错
我在 apkbus做了一个 专家讲堂 关于apk安全的。。 http://www.apkbus.com/android-145245-2-1.html 感兴趣可以去那看看 有任何问题 可以提问的
DrSmart 2013-11-04
  • 打赏
  • 举报
回复
有道理,你的想法很不错
DrSmart 2013-11-02
  • 打赏
  • 举报
回复
楼主怎么总是在zip上做文章,考虑下花指令才对啊
加载更多回复(6)

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧