前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于反编译的搜索

android反编译和防止反编译的方法 -ChinaUnix技术开发频道 ChinaUnix首页 | 文库 | 论坛 | 博客 | 微博 | 求职 | 读书 | 培训 | 自测 | 下载 | IT采购 | 搜索 ChinaUnix.net 请 或 注册 ChinaUnix首页 | 文库 | 论坛 | 博客 | 微博 | 求职 | 读书 | 培训 | 自测 | 下载 | IT采购 | 搜索 ChinaUnix.net 当前位置:ChinaUnix 首页 > 技术开发频道 > android反编译和防止反编译的方法 android反编译和防止反编译的方法 2012年02月01日 09:40 来源:cnblogs 作者:大气象 编辑:景保玉   【IT168技术】android基于java的,而java反编译工具很强悍,所以对正常apk应用程序基本上可以做到100%反编译还原。  因此开发人员如果不准备开源自己的项目就需要知道怎样防止反编译反编译他人的项目来学习。  2.3版本以上在eclipse自动生成的default.properties文件中加上一句“proguard.config=proguard.cfg”可以对代码进行混淆,反编译后是很难看懂的。  2.3之前的SDK版本也没关系,把上面的proguard.cfg文件复制一份放到项目中,然后进行相同的操作即可。  有些应用反编译后java代码用jd-ui根本都无法打开,连混淆的代码都看不到的,本人尝试多次都做不到,希望知道的告知下怎么处理的。  注意:上面的功能只是把java代码混淆了,xml和资源文件、图片并没有混淆,有些游戏应用图片比较重要需要转换成dat文件 再加上自己的加密解密算法还原。  另外加了混淆功能后还有压缩的功能,混淆后的apk比原来的小(具体比例看你的代码重复量了)  说完防止反编译再来说说怎么反编译吧  先说一下反编译的流程和原理:  1.用apktool 把apk--> 资源包(java代码变成smali文件看不懂的),可以修改资源包里面的文件。  2.apk后缀名改成zip或rar解压,获取 classes.dex 文件,用dex2jar转换成jar包(注:直接解压出来的资源文件是不能直接打开的,要用第一步的反编译工具)。  3.用jd-ui等java反编译工具直接查看java代码。  4.把java代码和第一版的资源包整到一起重新组成一个新的应用。  5.用apktool 重新编译。  6.用签名工具重新签名。  7.重新发布带新的签名的应用。  注:如果不用改java代码,只是换换风格和汉化2.3.4步则不用做。  google code上的开源项目  apktool http://code.google.com/p/android-apktool/  dex2jar http://code.google.com/p/dex2jar/  另外有人做了个工具套装,集成了apktool dex2jar jd-ui,不过我下载了运行不了 不知道是不是相应环境没有配对导致的  hackapk http://code.google.com/p/hackapk/  另外有人把apktool做了个封装 弄成exe文件 图形界面的方便使用,截个图出来给大家看看吧    注:上面那个软件不能签名的,要用另外一个软件(APKSign)来进行签名,截图如下:    另给出上面两个工具的下载连接 机锋论坛上面的,估计直接点击连接下载不了  Xwindows,带图形界面: apktool.rar (3.33 MB) -->这个下载后可以自己到 http://code.google.com/p/android-apktool/ 下载最新版的apktool.jar替换原来的。  签名工具:Auto-sign.rar(312.45 KB)  另外还有些命令行的工具,本人给APK编辑器不同版本上面的说明不对应浪费了很多时间  1.普通apk文件(就是从各种网站上下载下来的第三方软件)  (1)把他放到place-apk-here-for-modding文件夹里面。(不要有空格和中文,中文的改成英文的)  (2)打开Script.exe,在CMD窗口中输入22或23(设置目前的工程),选择要编辑的apk文件的编号,回车确认  如上:有些版本设置目前的工程选项改成23了,但说明文件没有改过来,按22一直都无法选择apk,原因很不好找。  建议还是使用图形界面。 技术热点索引 C/C++ C语言 C++ 移动嵌入式 移动开发 嵌入式开发 Java Java开发 J2EE J2SE Web开发 Javascript HTML XML 开源编程 PHP开发 Shell开发 Perl开发 Python开发 软件工程 项目管理 软件测试 阅读过这篇文章的人还看过: 病毒导致500万Android用户遭信息泄露 Android震动系统结构 移植与调试的要点 苹果设计输给Android 遭用户批评 技术开发热议话题 [基于Epoll内置Leader-Follower服务端实现趣文:程序员/开发人员的真实生活急问线程退出的问题,取消点的函数都有哪【数据挖掘系列讨论】数据挖掘编程工具大《Linux多线程服务端编程:使用muduo C++【做技术的出国留学或者工作, 去日本还是IT世界,归根到底的,还是三大?【实测比较half-sync-half-async模式与le倚仗理性:今天,我停掉了我所有的社会保 热门博客 澳信传媒简介 | 关于IT168 | 合作伙伴 | 广告服务 | 使用条款 | 投稿指南 | 诚聘精英 | 联系我们 | 法律声明 | 网站导航 | 往日回顾 北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001 广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员