Andorid 安全攻防战-反编译及加固[Mac版]

首先必须得承认如果通过反编译直接窃取别人的劳动成果是有那么点不道德!所以我们一定一定一定要学好反编译,这样我们就可以尽情地窃取别人的劳动成果,并且防止我们自己的技术不被反编译啦(开个玩笑啦,别当真)~~

好吧,下面单纯从技术的角度一起谈谈我们的android安全攻防大战吧:

如上图,迎面向我们走来的是本文的两大重要环节攻与防,也就是我们所说的反编译和混淆加固啦;反编译(攻)一般分为两种情况:

  • 1.资源反编译,针对喜欢高仿但是不会P图的广大程序员屌丝们;
  • 2.源代码反编译,可以看看别人的代码和实现手段;

混淆加固(防)也分为两种手法:

  • 1.混淆,这种情况比较麻烦,引入第三方还要避免混淆别人的代码,并且混淆后的代码还是可以看得出大致使用的技术和逻辑,所以不推荐使用;
  • 2.加固,360加固全部自动化打包,但是现在应用商店似乎对加固软件进行了限制,比如之前工作上传百度应用市场的时候居然提示我们要用百度加固~~,baidu,坑爹!

赛前准备

工欲善其事,必先利其器。选择一个好的工具可以使我们的工作:

问题一:apktool安装配置,作为mac盲的我展示下零基础怎么配置以及遇到的一些问题吧:

  • 1.右键保存链接为 apktool 所有格式文本wrapper script

  • 2.apktool.jar 下载地址打开可以看到历史版本列表,可以选择最新版本的,此教程使用的版本为:2.2.3 下载成功重命名为apktool.jar.

  • 3.将 apktool.jar 和 apktool 拷贝到 /usr/local/bin(需要 root 权限)

sudo cp apktool apktool.jar /usr/local/bin [此目录是 mac 中管理员可执行命令]

  • 4.修改这两个文件的权限: sudo chmod + x file名

  • 5.现在就可以在终端运行 apktool 命令了

验证安装 apktool 是否安装成功的时候发现错误:
Error: Invalid or corrupt jarfile /usr/local/bin/apktool.jar

Google了一下,检测jar包是否正常的命令:

java -jar jar包名

报出同样的错误,删除原本 /usr/local/bin/ 目录下的文件,重新配置,获得成功:

问题二:dex2jar 需要授权:

切换到 dex2jar 目录下,执行命令:chmod a+x *.sh

注:否则直接执行会提示:

d2j-dex2jar.sh: line 36: ./d2j_invoke.sh: Permission denied

反编译

为了能够更好地串联整个过程也本着尊重版权的原则,我们写了一个简易的demo:

好的,下面就围绕这个demo进行展开吧~~

出于文件整理的考虑,我们将apk文件和授权完成的dex2jar放入同一目录下:

源代码反编译

思路:我们知道 android 的源代码是以 .dex 文件的形式存在的,也就是说我们要查看源码,我们需要将.dex -> java 代码;但是目前还没有找到比较好的直接转换工具,所以我们套用原有套路:.dex -> .jar->java源码;

说干就干,执行命令:

sh dex2jar-2.0/d2j-dex2jar.sh app-release.apk

通过dex2jar我们获得以下文件:

右击app-release-dex2jar.jar文件选择用JD-GUI打开查看源码即可,让我们来看看我们的成果吧:


做到这里大家不知道有没有好奇,没毛病啊~~图片什么的都有啦,源代码也有啦,打开 .xml 文件一看,目瞪口呆:

所以咋们都资源反编译也就应运而生啦~~

资源反编译

正如上面提到的,资源反编译针对的主要是 xml 资源文件,我们使用的工具也就是 apktool ,切换到上图目录下废话不多说来行命令压压惊:

apktool d app-release.apk

xml完美呈现:

这个时候我们可以打开smali文件夹改些文本什么的,重新拿个证书打个包,就是一个添加了我们 tag 的 app 啦~~

切换目录到demo下,执行命令

apktool b app-release

兴冲冲装到自己手机上,结果发现安装不了,原来是没有证书,没有条件就去创造下条件从AS中生成一个自己的证书,然后用该证书给咋们的app打个包就OK啦。

执行命令:

jarsigner -verbose -keystore android.keystore -signedjar app-release-1.apk app-release.apk android.keystore

效果如下:

加固

好啦,我们成功破解所有套路之后,我们来看看如何反套路吧,目前市面上对代码进行混淆或者加固。本文选择运用加固技术对我们的app进行保护。如果需要加固助手的同学可以360官网下载到加固助手,另外它还需要注册账号,个人配置密钥证书和下载渠道,参考帮助手册进行操作即可。

如果你看到这个界面那么咋们就可以开始加固打我们的渠道包啦,暂时我们只添加了腾讯应用宝、百度手机助手和360市场打包成功后我们可以获取每个渠道的app。

下面我们还是用上面的方法对我们的渠道包进行反编译,我们会发现很安全因为整个逻辑根本就看不清楚啦~~

好啦,Android 攻防战到此结束,如果有朋友有更好玩的欢迎微博或者简书私信我偶~~

参考文章:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,681评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,710评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,623评论 0 334
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,202评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,232评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,368评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,795评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,461评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,647评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,476评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,525评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,226评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,785评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,857评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,090评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,647评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,215评论 2 341

推荐阅读更多精彩内容