最近在研究安卓的混淆和反编译,发现自带的proguard只是改改类名和变量名,没多大意义,见我的博客http://www.cnblogs.com/weipt/archive/2012/04/09/2438558.html。
同时也在网上搜索了好几天,答案是基本就只能这样了,基本的继承类是不能混淆的,
但是我看一些大的公司如腾讯做的安卓软件都不能反编译,有人说是用c++写的什么程序接口的,没有详细资料,麻烦问下谁有这方面经验的,给解决一些程序混淆和代码保护的问题
希望不要只是复制粘贴或者人云亦云,自己真正测试通过可行的说说自己的解决方案。
关键代码用C++来写,然后java通过jni调用。
我之前也听说这样过,但是不知道怎么搞,你若成功了,麻烦把方法贴出了看看
@weipt: 本来就是这样,做android开发或者游戏开发中客户端使用lua脚本搭建都会面临这样的问题,如果你担心自己的代码会泄漏,那么都可以采用c或者cpp来写重要逻辑,java和lua或者其他的脚本语言都可以和c交互,如果你不知道jni怎么写,那没办法,太基本的东西。
用Clojure,scala等罕用java平台语言,可实现一定程度的流程混淆
@Wang Hui你说的这两个,实在没有看懂,是什么东西啊,我看好像是一个开发语言,那和安卓有什么关系,希望明示
@weipt: 安卓的native语言是c/c++,提供给开发人员有两种途径,java或者是native,对于java程序员面临着代码保护问题,但是对于native开发则不存在这个问题,所以关键代码用native实现,效率也比较高,也可以保护核心代码。