前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android静态分析之初级篇(二)

Android静态分析之初级篇(二)

作者头像
FB客服
发布2019-06-18 12:27:24
8120
发布2019-06-18 12:27:24
举报
文章被收录于专栏:FreeBufFreeBufFreeBuf

接着《Android静态分析之初级篇》来,这次来看看如何在反编译后的apk包中添加一个页面,类似植入广告~

在app中进行广告植入,正常思路是:在app开始启动时增加一个广告的页面,代码里就是新建一个Activity文件,并将其设置为入口Activity。

假设我们没有原apk的源代码,那我们需要新建一个跟这个apk包一样的项目目录,包名要跟我们要插入广告页面的apk一致:

添加一个HackActivity页面,代码如下图:

效果如下:

打包,签名,反编译后,查看smali文件夹:

可以看到有两个HackActivity的smali文件,将这两个文件copy到原apk反编译后的hellosmali文件夹下:

同时,去修改它的AndroidManifest.xml文件,将入口Activity改为HackActivity:

保存,重新回编译,同样使用jarsigner进行签名,将生成的安装包安装到Android机上,看看效果:

可以看到是一个空白页,现在我们想办法给这个空白页添加点内容进去。

在我们新建的项目里添加一个页面add.xml:

重新打包,签名,并反编译,重新将反编译后的两个HackActivity的smali文件放到smali文件夹下,同时,还要把新添加的xml文件放到原apk反编译后的layout文件夹下:

然后,在R$layout.smali文件中添加add.xml的ID:

注意值不要跟前面的重复了,可以跟着最后的ID值累加。

add.xml布局文件在HackActivity文件中也有用到,我们去看看,add.xml是在onCreate方法中到的,我们去找onCreate方法:

看到一个很像ID的东东,我们修改成刚才在R$layout.smali中的值,保存。

应该没有要改的东西了,我们回编译试试,看看有没有达成效果,最终结果(丑是丑了些,大家理解意思就行哈):

好,总结一下步骤:

1、 将HackActivity.smali文件放入hellosmali文件夹; 2、 将新添加的页面add.xml放入laout文件夹; 3、 在R$layout.smali文件中添加add.xml的ID; 4、 修改HackActivity.smali文件中add.xml的ID; 5、 修改AndroidManifest.xml文件,将入口Activity改为HackActivity。

那么如何防止别人反编译我们的apk包呢?我们先使用代码混淆技术看看效果。

在build.gradle文件中可以看到设置代码混淆的参数,默认设置为false,我们修改为true再打包试试:

打包之后反编译,跟之前未开启混淆反编译的代码进行对比,直接去看smali文件夹,有明显的不同:

代码混淆后只有一个MainActivity.smali文件,直接打开看看,跟未混淆之前的来个对比(左边是混淆过的,右边是未混淆的):

我们再按照之前未混淆时候的操作步骤对正常的代码混淆过的apk进行广告页的添加,看看能不能添加成功:

1、 将HackActivity.smali文件放入hellosmali文件夹,完成; 2、 将新添加的页面add.xml放入laout文件夹,完成; 3、 在R$layout.smali文件中添加add.xml的ID,呃,没有这个文件呢,那就不要add.xml文件了,将HackActivity.kt中的setContentView注释掉 ,那第二步其实就不需要了。 4、 修改HackActivity.smali文件中add.xml的ID,这步也不需要了 5、 修改AndroidManifest.xml文件,将入口Activity改为HackActivity

回编译,签名,安装,打开,直接crash了:

Android Studio是怎么混淆的呢?

在build.gradle文件中可以看到有用到混淆文件proguard-android-optimize.txt(在\sdk\tools\proguard文件夹下):

从proguard-android-optimize.txt文件中可以看到各种混淆设置:

目前暂时卡到这里了,待我研究研究怎么破解再分享给大家~

*本文作者:梦里不知哪儿是哪儿,转载请注明来自FreeBuf.COM

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档