文档章节

Android当道,不加密的APP必死

lorinnn
 lorinnn
发布于 2014/05/08 21:33
字数 1884
阅读 9261
收藏 44

本文已经摘录到本人的独立博客:http://www.ourunix.org/post/386.html

我并没有体验过爱加密本身提供的服务,所以并不知道他们具体怎么实现的,更不知道加密程度如何,但是作为一个移动软件行业的攻城狮来说,我愿意去体验你们的服务,看看是不是真的能够为我们的Android APP加上保护壳,我已经注册帐号,欢迎联系! 

我的题目有点夺人眼球,也当然有喷喷不平者觉得我是危言耸听,那就好好听听我说的是不是有那么一丁点道理。 

标题中的APP请排除那些只想靠APP推送广告的小众开发者,诚然这些开发者的出发点并不高,只是想靠Android平台简单易上手的APP开发挣两个小广告钱(当然也包括我自己),他们目标并不是开发出一款高质量、饱含创意、凝结心血的APP,如果一款APP是由那些满腔热血、热心创业并凝结无数心血的创业团队、公司或者个人开发出来的,那我可以很负责的告诉你如果你的APP不加密那只有三种结局

第一种结局:尽管你的APP是你日夜不辞辛劳开发而出的,但是本身质量不高、毫无新意或者本身同质化很严重,那你这个APP投到市场上就像是大海里面扔出的一颗石子,并无多回报,加密不加密无所谓,真所谓死的无怨无悔啊。

第二种结局:立意新颖、创意十足、目前软件市场几乎没有同类产品,并且能快速被大众认可接受,如果你不加密、不申请专利,那这个不加密的APP必死。 因为人在山寨之国,小小的团队方案,不是被收购就是直接被一个一模一样的替代品吃死!!! 那么如果你宁死不屈不想被收购并且不想被一个一模一样的替代品吃死的话,你的APP就必须要加密,因为不加密你的APP被人一研究,那好无需多日你会发现你的好idea你的心血全部付之东流。

第三种结局:没有必要山寨你的APP,但是你提供的服务我很感兴趣哦,如果不是要注册就好了?如果能把你提供资源直接全部拿出来共享就就好了,嘻嘻~~哦,对了我会破解:)嘻嘻~~如果不加密,被破解后果也很严重啊,以内容为王的APP,得小心了。 

下面谈谈爱加密提供的服务吧:爱加密推出“APK源代码安全保护”平台,目前的三层加密保护:DEX加壳保护DEX指令动态加载保护,高级混淆保护。可以有效防止APP的动态破解和静态破解,黑客将没有机会进行任何破解。爱加密更在年前推出了SO库保护,使C++层面的代码也得到了保护。 还是结合实例来一一说说这三个需要保护的地方吧,如果不保护会出现什么情况:

DEX指令改写,破解你的程序没商量

Android的DEX指令(确切的叫Dalvik指令更合适)和smali文件格式很相似,利用baksmali和smail就可以直接改写你的Android: 这里使用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.dex

只要对smali格式有所认识,那么破解你的程序真的没有商量: 这里示范有一款集成smali和baksmail的工具apktool,如果已经有了Android开发环境就能很快使用上apktool了,这里假设你已经可以直接使用apktool了。

反编译decode

walfred@ubuntu:~/lab/apktool$ apktool d HelloOurAndroid.apk

使用android-apktool来逆向使用APK

这时我们可以看到在当前目录下已经生成HelloOurAndroid/文件夹了,我们来查看下反编译后的AndroidManifest.xml文件和strings.xml文件: AndroidManifest.xml文件反编译之后和工程下的时候几乎是一模一样,所以我们可以来check下该Android应用的所有权限。使用android-apktool来逆向使用APK

同样可以查看这些hardcode的内容:

使用android-apktool来逆向使用APK

rebuild重打包

重打包刚刚修改过的HelloOurAndroid.apk,我们就修改strings.xml目录下的“hello”为:Hello,OurUnix!使用android-apktool来逆向使用APK

然后使用apktoo重新打包,命令如下:

walfred@ubuntu:~/lab/apktool$ apktool b HelloOurAndroid

使用android-apktool来逆向(反编译)使用APK

最后将重新编译之后的APK进行签名就可以运行了,DEX被破解之后,将有可能 

1 修改AndroidManifest.xml文件中广告投放代码; 

2 修改注册条件,强心登入等。

dex2jar 你的dex被一览无余

如果程序的dex没有被加壳保护,你的dex没有经过混淆,你的dex将被一览无余,你的逻辑,你的idea,你的心血,天哪,将被赤裸裸的被别人看个透!

 dex2jar我想Android开发者都知道吧,在次不赘述这个查看别人程序代码的利器。

SO库不保护,你在为他人做嫁衣

dex风险太大了,很多人有转向了使用native code编写关键代码,觉得so不好破解的同时又能提高性能并不受内存的制约,什么ida什么elf之类的工具也无法从容的查看代码,所以so成了上上策。可是我觉得你的jni一旦被别人攻下,那么恭喜你的so,我直接拿来用!!破解Android JNI  

之前破解了某一数一数二的杀毒软件,其代码混淆程度高,关键代码都用了so,可是殊不知这个JNI接口信息却被我找出来了,有了这些接口,你的so就是我的了,我也能山寨一个和你一样的程序

 以上这三种Android程序开发常用破解手段,我看爱加密都有提到,可是不知道他们的治疗效果究竟咋样,真想好好体验下。 

另外一种话题中也提高的动态破解,我稍微带下,毕竟这个使用方式更高,破解更容易,运行你的APP,你的行为,你的debug log(呵呵,我改你的smali打开你的debug开关),当然如果想获取网络资源,使用我之前写的一篇文章:详解使用tcpdump、wireshark对Android应用程序进行抓包并分析。真是so easy。

© 著作权归作者所有

共有 人打赏支持
lorinnn
粉丝 2
博文 2
码字总数 5665
作品 0
南京
加载中

评论(1)

fykyx521
fykyx521
数据源才是主要的 加密不加密倒是不要紧
Android当道,不加密的APP必死

我的题目有点夺人眼球,也当然有喷喷不平者觉得我是危言耸听,那就好好听听我说的是不是有那么一丁点道理。 标题中的APP请排除那些只想靠APP推送广告的小众开发者,诚然这些开发者的出发点并...

科技创造
2014/09/24
0
2
加密传输才是王道!谷歌在 Android P 上默认启用 TLS

上周四谷歌表示,为保证用户数据和设备的安全,针对下一代 Android 系统(Android P) 的应用程序,将要求默认使用加密连接,这意味着 Android P 将禁止 App 使用所有未加密的连接,因此运行 ...

局长
04/16
0
0
易安卓携手爱加密,畅享安全服务,参与赢取好礼!

在2014上半年采集的2440万份样本文件中,发现有220万份属于恶意应用,增长速率是2013年全年的2.5倍,是2012年数量的20多倍。对众多移动应用开发者来说应用山寨、篡改植入、恶意破解打包等给用...

科技创造
2014/10/17
0
0
安卓反编译揭秘,伪加密APK文件如何被破坏

源码混淆 如上图,对Android APP的源码进行混淆后混淆器将代码中的所有变量、函数、类的名称加密为简短的英文字母代号,在APP被破解后增加破解者对代码的阅读难度。 但是混淆的功效只能运作在...

科技创造
2014/09/05
0
1
大家一起看一看新的Android P将引入哪些安全性改进

        根据Google的Android开发团队发布的新版本Android系统概述,下一个Android版本(Android P或Android 9.0)大家应该很快就可以“吃”上了。文件表示,Google在2018年第三季度的...

FreeBuf
08/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JS:异步 - 面试惨案

为什么会写这篇文章,很明显不符合我的性格的东西,原因是前段时间参与了一个面试,对于很多程序员来说,面试时候多么的鸦雀无声,事后心里就有多么的千军万马。去掉最开始毕业干了一年的Jav...

xmqywx
今天
0
0
Win10 64位系统,PHP 扩展 curl插件

执行:1. 拷贝php安装目录下,libeay32.dll、ssleay32.dll 、 libssh2.dll 到 C:\windows\system32 目录。2. 拷贝php/ext目录下, php_curl.dll 到 C:\windows\system32 目录; 3. p...

放飞E梦想O
今天
0
0
谈谈神秘的ES6——(五)解构赋值【对象篇】

上一节课我们了解了有关数组的解构赋值相关内容,这节课,我们接着,来讲讲对象的解构赋值。 解构不仅可以用于数组,还可以用于对象。 let { foo, bar } = { foo: "aaa", bar: "bbb" };fo...

JandenMa
今天
1
0
OSChina 周一乱弹 —— 有人要给本汪介绍妹子啦

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享水木年华的单曲《中学时代》@小小编辑 手机党少年们想听歌,请使劲儿戳(这里) @须臾时光:夏天还在做最后的挣扎,但是晚上...

小小编辑
今天
21
5
centos7安装redis及开机启动

配置编译环境: sudo yum install gcc-c++ 下载源码: wget http://download.redis.io/releases/redis-3.2.8.tar.gz 解压源码: tar -zxvf redis-3.2.8.tar.gz 进入到解压目录: cd redis-3......

hotsmile
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部