本文目录一览:
Android APP破解技术有哪些
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很可能从此被市场所抛弃。
SMali什么意思?
smali
Smali,Baksmali分别是指安卓系统里的Java虚拟机(Dalvik)所使用的一种.dex格式文件的汇编器,反汇编器。其语法是一种宽松式的Jasmin/dedexer语法,而且它实现了.dex格式所有功能(注解,调试信息,线路信息等)。
Smali,Baksmali分别是冰岛语中编译器,反编译器叫法。也许你会问为什么是冰岛语呢,因为Dalvik是一个冰岛渔村名字。
安卓反编译出来的都是.smali文件,怎么反编译位原工程啊?修改后还能重新编译回去
反编译步骤:
下载apktool 并设置环境变量
命令行进入apk目录执行:apktool d xx.apk (如果遇到一些错误说明apk做了防破解处理)
执行成功后会生成xx文件夹,进入xx文件夹修改需要修改的内容,如果需要修改代码,进入xx\smali\里面,需要懂一些smali语法
修改完后回到命令行,执行:apktool b xx ,会在xx文件夹里面生成一个dist文件夹,里面的apk就是回编译的,这个apk是没有签名的
下载网上的签名工具对apk签名,完了就可以安装了(如果你下载了源码或者sdk,里面自带一个signapk也可以签名)