安卓编译破解
‘壹’ Android APP的破解技术有哪些如何防止反编译
Android APP破解主要依靠利用现有的各种工具,如下:
1)APKtool
2)dex2jar
3)jd-gui
4)签名工具
防止反编译,介绍一种有效对抗native层代码分析的方法——代码混淆技术。
代码混淆的学术定义如下:
代码混淆(code obfuscation)是指将计算机程序的代码,转换成一种功能上等价,所谓功能上的等价是指其在变换前后功能相同或相近。其解释如下:程序P经过混淆变换为P‘,若P没有结束或错误结束,那么P’也不能结束或错误结束;而且P‘程序的结果应与程序P具有相同的输出。否则P’不是P的有效的混淆。
目前对于混淆的分类,普遍是以Collberg 的理论为基础,分为布局混淆(layout obfuscation)、数据混淆(data obfuscation)、控制混淆(control obfuscation)和预防混淆(preventive obfuscation)这四种类型。
腾讯御安全保护方案提供了以上所述四种混淆分类的多维度的保护,布局混淆方面,御安全提供了针对native代码层中的函数名进行了混淆删除调试信息等功能;数据混淆方面,御安全提供了针对常量字符串加密及全局变量的混淆的功能;控制混淆方面,御安全针对代码流程上,提供了扁平化,插入bogus 分支以及代码等价变换等功能;预防混淆方面,御安全在混淆过程中加入了针对主流反编译器的预防混淆的代码,能够有效地抵抗其分析。御安全还对应用开发者提供不同等级的保护力度及多种混淆方式的功能的选择,用户可以根据自己的需求定制不同的混淆功能保护。
同时,御安全保护方案除了提供代码混淆保护方面的技术,还提供代码虚拟化技术及反逆向、反调试等其他安全保护方案,综合使用多种保护方案可以有效地提高代码安全。
‘贰’ 怎样用apk反编译工具破解游戏
打开Androidfby中的Android反编译工具,开始直接反编译,选中你要反编译的apk,反编译即可,这样就可以得到软件中图片,xml,dex文件,或者直接用解压文件解压,但是不能保证xml正常显示,所以我们最好是结合一起用
打开反编译之后的文件夹,找到classes.dex,将其复制到dex2jar的文件夹目录下面,与dex2jar.bat在同一目录即可。打开命令提示符,一直打开到dex2jar目录,执行以下命令dex2jar.bat classes.dex
这时会在dex2jar目录下生成一个classes_dex2jar.jar文件,这时运行jd-gui目录下的jd-gui.exe,选择File-----》Openfile------》classes_dex2jar.jar,即可查看java代码了
‘叁’ 经过360加固的安卓程序该如何破解反编译后什么代码都找不到
1)APKtool 2)dex2jar 3)jd-gui 4)签名工具 相关技术的基本要求 1)具有一定的阅读JAVA代码的能力 2)稍微有点Android基础,越多越好 3)会用eclipse的一些Android调试的相关工具 4)了解一下smali的语法规范和字段的自定范围 5)有点应变能力思想转换能力、 6)虽然代码的修改是修改其smali文件(用到smali语法),虽然其语言是非常复杂的,但是我们能够变通就行了,但是要求了解一下smali的语法规范和字段的自定范围。 了解以上方法可以非常简单破解Android APK,破解后,应用里的页面布局、代码逻辑、结构算法等都能一目了然。所以为了避免被他人,尤其是竞争对手了解到这些,防破解和反编译尤为重要。我试过代码混淆,但是代码混淆只是对类名进行了变换,增加了破解者的阅读难度,并不能真正阻止反编译工程。下面是进行过代码混淆的APK代码结构,能看到只是对类名做了变换,变成a、b、c等这样的名称。但是仍然可以进行反编译。 后来又尝试使用360加固保对APK进行加固保护,发现原有的代码程序被隐藏起来了,没法再进行反编译工作。 所以作为移动应用开发者,适当了解一些破解和反编译工作有利于保护自己的应用安全。如果不防患于未然,一旦出现盗版情况,那么你的APP很可能从此被市场所抛弃。
‘肆’ 如何使用反编译软件破解android的布局文件
工具:
apktool,作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看
dex2jar,作用:将apk反编译成java源码(classes.dex转化成jar文件)
jd-gui,作用:查看APK中classes.dex转化成出的jar文件,即源码文件
反编译流程:
一、apk反编译得到程序的源代码、图片、XML配置、语言资源等文件
下载上述工具中的apktool,解压得到3个文件:aapt.exe,apktool.bat,apktool.jar ,将需要反编译的APK文件放到该目录下,
打开命令行界面(运行-CMD) ,定位到apktool文件夹,输入以下命令:apktool.bat d -f test.apk test
(命令中test.apk指的是要反编译的APK文件全名,test为反编译后资源文件存放的目录名称,即为:apktool.bat d -f [apk文件 ] [输出文件夹])
获取成功之后,发现在文件夹下多了个test文件,点击便可以查看该应用的所有资源文件了。
如果你想将反编译完的文件重新打包成apk,那你可以:输入apktool.bat b test(你编译出来文件夹)便可
之后在之前的test文件下便可以发现多了2个文件夹:
build
dist(里面存放着打包出来的APK文件)
二、Apk反编译得到Java源代码
下载上述工具中的dex2jar和jd-gui ,解压
将要反编译的APK后缀名改为.rar或则 .zip,并解压,得到其中的额classes.dex文件(它就是java文件编译再通过dx工具打包而成的),将获取到的classes.dex放到之前解压出来的工具dex2jar-0.0.9.15 文件夹内,
在命令行下定位到dex2jar.bat所在目录,输入dex2jar.bat classes.dex,
在改目录下会生成一个classes_dex2jar.jar的文件,然后打开工具jd-gui文件夹里的jd-gui.exe,之后用该工具打开之前生成的classes_dex2jar.jar文件,便可以看到源码了