个人题目有点夺人眼球,也固然有喷喷不平者以为我是危言耸听,那就好好听听我说的是否是有那么一丁点道理。 标题中的APP请排除那些只想靠APP推送广告的小众开发者,诚然这些开发者的出发点并不高,只是想靠Android平台简单易上手的APP开发挣两个小广告钱(固然也包括我本身),他们目标并非开发出一款高质量、饱含创意、凝结心血的APP,若是一款APP是由那些满腔热血、热心创业并凝结无数心血的创业团队、公司或者我的开发出来的,那我能够很负责的告诉你若是你的APP不加密那只有三种结局: 第一种结局:尽管你的APP是你日夜不辞辛劳开发而出的,可是自己质量不高、毫无新意或者自己同质化很严重,那你这个APP投到市场上就像是大海里面扔出的一颗石子,并没有多回报,加密不加密无所谓,真所谓死的无怨无悔啊。 第二种结局:立意新颖、创意十足、目前软件市场几乎没有同类产品,而且能快速被大众承认接受,若是你不加密、不申请专利,那这个不加密的APP必死。 由于人在山寨之国,小小的团队方案,不是被收购就是直接被一个如出一辙的替代品吃死!!! 那么若是你宁死不屈不想被收购而且不想被一个如出一辙的替代品吃死的话,你的APP就必需要加密,由于不加密你的APP被人一研究,那好无需多日你会发现你的好idea你的心血所有付之东流。 第三种结局:没有必要山寨你的APP,可是你提供的服务我很感兴趣哦,若是不是要注册就行了?若是能把你提供资源直接所有拿出来共享就就行了,嘻嘻~~哦,对了我会破解:)嘻嘻~~若是不加密,被破解后果也很严重啊,之内容为王的APP,得当心了。
下面谈谈爱加密提供的服务吧:爱加密推出“APK源代码安全保护”平台,目前的三层加密保护:DEX加壳保护,DEX指令动态加载保护,高级混淆保护。能够有效防止APP的动态破解和静态破解,黑客将没有机会进行任何破解。爱加密更在年前推出了SO库保护,使C++层面的代码也获得了保护。html
仍是结合实例来一一说说这三个须要保护的地方吧,若是不保护会出现什么状况:java
DEX指令改写,破解你的程序没商量android
Android的DEX指令(确切的叫Dalvik指令更合适)和smali文件格式很类似,利用baksmali和smail就能够直接改写你的Android:ubuntu
这里使用HelloOurAndroid.apk程序做为sample,咱们可使用baksmali反编译dex文件来生成smali文件,以下:
一、walfred@ubuntu:reserve$ unzip -q HelloOurAndroid.apk -d HelloOurAndroid
二、walfred@ubuntu:reserve$ java -jar baksmali-1.4.2.jar HelloOurAndroid/classes.dex
这样就会在当前目录下生成一个out目录,out目录:
一、walfred@ubuntu:reserve$ ls out/org/ourunix/helloourandroid/
二、BuildConfig.smali R$attr.smali R$id.smali R$menu.smali R$string.smali
三、MainActivity.smali R$drawable.smali R$layout.smali R.smali R$style.smali
固然若是你熟悉smali语法规则的话,你就能够自由的修改这些smali文件,而后在经过smali工具从新生成dex文件:
一、walfred@ubuntu:reserve$ java -jar smali-1.4.2.jar out/ -o classes.dexsegmentfault
只要对smali格式有所认识,那么破解你的程序真的没有商量:
这里示范有一款集成smali和baksmail的工具apktool,若是已经有了Android开发环境就能很快使用上apktool了,这里假设你已经能够直接使用apktool了。安全
反编译decode
一、walfred@ubuntu:~/lab/apktool$ apktool d HelloOurAndroid.apkide
这时咱们能够看到在当前目录下已经生成HelloOurAndroid/文件夹了,咱们来查看下反编译后的AndroidManifest.xml文件和strings.xml文件:
AndroidManifest.xml文件反编译以后和工程下的时候几乎是如出一辙,因此咱们能够来check下该Android应用的全部权限。工具
一样能够查看这些hardcode的内容:post
rebuild重打包
重打包刚刚修改过的HelloOurAndroid.apk,咱们就修改strings.xml目录下的“hello”为:Hello,OurUnix!性能
而后使用apktoo从新打包,命令以下:
一、walfred@ubuntu:~/lab/apktool$ apktool b HelloOurAndroid
最后将从新编译以后的APK进行签名就能够运行了,DEX被破解以后,将有可能
1 修改AndroidManifest.xml文件中广告投放代码;
2 修改注册条件,强心登入等。
dex2jar 你的dex被尽收眼底
若是程序的dex没有被加壳保护,你的dex没有通过混淆,你的dex将被尽收眼底,你的逻辑,你的idea,你的心血,天哪,将被赤裸裸的被别人看个透!
dex2jar我想Android开发者都知道吧,很自豪这个工具开发者和我是同事。
SO库不保护,你在为他人作嫁衣
dex风险太大了,不少人有转向了使用native code编写关键代码,以为so很差破解的同时又能提升性能并不受内存的制约,什么ida什么elf之类的工具也没法从容的查看代码,因此so成了上上策。但是我以为你的jni一旦被别人攻下,那么恭喜你的so,我直接拿来用!!
以前破解了某一首屈一指的杀毒软件,其代码混淆程度高,关键代码都用了so,但是却不知这个JNI接口信息却被我找出来了,有了这些接口,你的so就是个人了,我也能山寨一个和你同样的程序!
以上这三种Android程序开发经常使用破解手段,咱们爱加密里都有提到,若是想看看治疗效果,那不如来好好体验下吧:www.ijiami.cn
原文连接:http://www.ourunix.org/post/386.html