本篇博客目的
本篇内容针对于和我一样是Android逆向未入门初学者;若有建议或者博客中有错误的地方请留下你的评论。
能获得的知识内容:抓包、代码关键处定位
首先来了解去广告的原理:定位到程序加载广告链接的地方,修改smali代码让链接地址返回空,然后进行重打包安装。其中最主要的地方就是要找到代码的关键位置。
关键位置的寻找
- 首先想到广告是一个链接地址,那么久自然的想到要抓包分析
- 再根据抓包的结果搜索关键字段,迅速定位到关键代码
- 修改关键代码、重打包、安装、验证去除广告
开始抓包分析
安装Charles抓包软件,把测试机的网络代理设置为电脑的IP(注意:测试机和电脑必须在同一个网段下)。
-
安装破解程序点击视频播放,在Charles中可看到抓包信息。
分析发现http://de.as.****.com网址比较可疑,我们把这个网址重定向到另一个地方,在Charles中选中网址——>右键——>MapLocal——>LocalPath选择一个Txt文件(选择什么都可以)。
重新点击视频你会发现广告去除了。好,现在我们去修改Smali源码,给它永久去广告。
3.打开AndroidKill,把APK文件拖入反编译。搜索关键字http://de.as.****.com然后替换为空就ok啦!!!
编译——>签名重装搞定。
-----------------------------下面再来一个难一点的APP--------------------
同样先抓包分析:
通过MapLocation确定是fives.l.**.com这个广告网址。
但是接下来在Androidkill中并没有搜索到这个广告地址关键字那接下来怎么办呢?
看看有没有其它关键字或者直接分析Smali代码了。不卖关子了,点击抓包地址前面的“+”,这里有一个关键字的地方"livemsg";
这是用Jeb打开,搜索"livemsg"....
看这里它进行了网址的重组,难怪搜不到了。我们来想一下这里是不是可以清空,之后程序得不了完整的地址广告就去除了呢?尝试一下。
(哭)然后是我们太天真,不行还是有广告,说明它在别的地方也有网址拼凑。接着往下分析......
抓包数据有返回数据APP里面肯定会有对它处理的地方,那么根据返回数据的一些关键值能不能把范围进一步缩小呢?(逆向不要盲目去做,思路很重要)
这里是服务器返回的数据,我们猜想一下adList会不会是我们所要的关键地方呢?去搜索.......
发现在这里的处理数据和抓包的adList很像
确定就在这个地方了,这样大大减小了分析要分析的地方,接着往下走......
最后经过分析这儿while循环中的add()方法是拼凑网址的地方,那么让程序不运行add(),那么APP返回的网址就为空了,达到了我们的目的。那么来尝试一下。
编译——>签名——>安装——>广告去除成功。
/////撒花////撒花//////