吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6160|回复: 22
收起左侧

[Android 分享] 小白分析之部分去广告分析

  [复制链接]
小色 发表于 2018-8-15 13:04
本帖最后由 小色 于 2018-8-16 19:58 编辑

本人程序绝对小白,之前也只是在某校学习过java的部分基础,而且十来年过去了基本已经遗忘。
近期因朋友得到某款软件看视频的软件,但是需要购买会员才可以流畅观看
因为平时就喜欢看咱们吾爱破解论坛,所以想根据论坛内的讲解来去破解。
用到的软件 Android Killer 可以从 论坛爱盘下载。(以下Android Killer  用AK代替
首先第一个来先分析他这个所谓的VIP线路
因为VIP线路是对会员开放的,
首先在模拟器或者手机安装此软件注册账号
自己来查看 如何去切换线路
这个软件登录账号之后 点击某处出现工具栏,
工具栏中有“线路”这两个关键字
咱们从AK里面搜索 线路 关键词
搜索后我们发现只有两个.XML文件内包涵,
但这并不是我们想搜索到的。我们需要搜索到。smali 类
所以在关键词这里 使用 文本转换Unicode 功能 将线路  转换成 \u7ebf\u8def  
我们来继续搜索得到如下图
1.png

图内这里的就是 软件内 切换线路的smali代码。


我们来分析这个代码


[Asm] 纯文本查看 复制代码
.method public onViewClicked(Landroid/view/View;)V
    .locals 5
    .annotation build Lbutterknife/OnClick;
        value = {
            0x7f100122,
            0x7f1000ac,
            0x7f1000ae
        }
    .end annotation

    const v4, 0x7f0200c4

    const v3, 0x7f0200c3

    const/4 v2, 0x0

    invoke-virtual {p1}, Landroid/view/View;->getId()I

    move-result v0

    sparse-switch v0, :sswitch_data_0

    :goto_0
    return-void

    :sswitch_0
    invoke-virtual {p0}, Lcom/xxx/svideo/ui/home/activity/PlayLineActivity;->closeActivity()V

    goto :goto_0

    :sswitch_1
    invoke-static {}, Lcom/xxx/svideo/utils/UserUtils;->getUserInfo()Lcom/xxx/svideo/model/UserModel;

    move-result-object v0

    invoke-virtual {v0}, Lcom/xxx/svideo/model/UserModel;->getIs_vip()Ljava/lang/String;

    move-result-object v0

    const-string v1, "1"

    invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    iget-object v0, p0, Lcom/xxx/svideo/ui/home/activity/PlayLineActivity;->generalSelect:Landroid/widget/ImageView;

    invoke-virtual {v0, v4}, Landroid/widget/ImageView;->setImageResource(I)V

    iget-object v0, p0, Lcom/xxx/svideo/ui/home/activity/PlayLineActivity;->vipSelect:Landroid/widget/ImageView;

    invoke-virtual {v0, v3}, Landroid/widget/ImageView;->setImageResource(I)V

    const-string v0, "line"

    const-string v1, "1"

    invoke-static {v0, v1}, Lcom/orhanobut/hawk/Hawk;->put(Ljava/lang/String;Ljava/lang/Object;)Z

    sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;

    const-string v1, "line"

    invoke-static {v1}, Lcom/orhanobut/hawk/Hawk;->get(Ljava/lang/String;)Ljava/lang/Object;

    move-result-object v1

    invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V

    const-string v0, "\u5df2\u5207\u6362\u5230\u666e\u901a\u7ebf\u8def"

    invoke-static {p0, v0, v2}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;

    move-result-object v0

    invoke-virtual {v0}, Landroid/widget/Toast;->show()V

    goto :goto_0

    const-string v0, "\u53ea\u6709VIP\u7528\u6237\u624d\u80fd\u5207\u6362\u7ebf\u8def"

    invoke-static {p0, v0, v2}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;

    move-result-object v0

    invoke-virtual {v0}, Landroid/widget/Toast;->show()V

    goto :goto_0

    :sswitch_2
    invoke-static {}, Lcom/xxx/svideo/utils/UserUtils;->getUserInfo()Lcom/xxx/svideo/model/UserModel;

    move-result-object v0

    invoke-virtual {v0}, Lcom/xxx/svideo/model/UserModel;->getIs_vip()Ljava/lang/String;

    move-result-object v0

    const-string v1, "1"

    invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    iget-object v0, p0, Lcom/xxx/svideo/ui/home/activity/PlayLineActivity;->generalSelect:Landroid/widget/ImageView;

    invoke-virtual {v0, v3}, Landroid/widget/ImageView;->setImageResource(I)V

    iget-object v0, p0, Lcom/xxx/svideo/ui/home/activity/PlayLineActivity;->vipSelect:Landroid/widget/ImageView;

    invoke-virtual {v0, v4}, Landroid/widget/ImageView;->setImageResource(I)V

    const-string v0, "line"

    const-string v1, "2"

    invoke-static {v0, v1}, Lcom/orhanobut/hawk/Hawk;->put(Ljava/lang/String;Ljava/lang/Object;)Z

    sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;

    const-string v1, "line"

    invoke-static {v1}, Lcom/orhanobut/hawk/Hawk;->get(Ljava/lang/String;)Ljava/lang/Object;

    move-result-object v1

    invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V

    const-string v0, "\u7ebf\u8def\u5207\u6362\u6210\u529f\uff0c\u9a9a\u5e74\u98de\u8d77\u6765\uff01"

    invoke-static {p0, v0, v2}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;

    move-result-object v0

    invoke-virtual {v0}, Landroid/widget/Toast;->show()V

    goto :goto_0

    const-string v0, "\u53ea\u6709VIP\u7528\u6237\u624d\u80fd\u5207\u6362\u7ebf\u8def"

    invoke-static {p0, v0, v2}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;

    move-result-object v0

    invoke-virtual {v0}, Landroid/widget/Toast;->show()V

    goto/16 :goto_0

    :sswitch_data_0
    .sparse-switch
        0x7f1000ac -> :sswitch_1
        0x7f1000ae -> :sswitch_2
        0x7f100122 -> :sswitch_0
    .end sparse-switch
.end method




这个代码是已经修改好的代码,原谅我不小心把源文件删除了,得不到源文件了  所以不再讲述此处过程,此处过程使用了一个月的时间去学习,因为本人真的没有一点点的功底。。。
但是这个是根据论坛内帖子学习到   https://www.52pojie.cn/thread-306127-1-1.html   此帖子可以供大家学习


OK 咱们继续往下说 去除广告的分析  大家可以先看看论坛内大神们发出的教程
https://www.52pojie.cn/thread-718208-1-1.html
https://www.52pojie.cn/thread-777581-1-1.html
等等等等,还有很多教程大家都可以去观看
顺便说一句 善用论坛搜索功能  可以更快的得到咱们所需要学习的帖子

虽然学习了以上帖子的内容,但是发现在去除广告是并没有https 等 这样的关键词
此软件内的广告是从服务器直接获取(其实还可以根据服务器的指向屏蔽,不过暂时还在学习中,根据其他帖子的经验,貌似是需要查看连接到服务器的那个文件获得回传文件,此处我还是没有学会)
如果屏蔽了服务器,那么此软件我就不能打开正常浏览
但是突然想到是不是XML文件可以将广告缩小或者跳过或者替换?
这个软件的广告就在软件进入主界面后的有个广告 ,但是广告内可以跳转
我们由AK  得到 主程序入口是SplashActivity.smali
正常情况下 这里需要用到的XML文件都在
AK 软件内  工程搜索  下的  RES / layout文件内 我们来查看这里的XML文件名称
2.png
这里和咱们得到的 SplashActivity.smali  名字 是相反的,具体是什么意思 别问我-。- 我也不清楚,这个得问度娘或者论坛内的大佬,还有那些学习的帖子


打开查看 我们得到了这个
[Asm] 纯文本查看 复制代码
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@id/relativelayout_welcome" android:layout_width="fill_parent" android:layout_height="fill_parent"
  xmlns:android="http://schemas.android.com/apk/res/android">
    <Button android:textColor="@color/white" android:gravity="center" android:id="@id/jump_bt" android:background="@drawable/default_image_bg" android:layout_width="80.0dip" android:layout_height="38.0dip" android:layout_marginTop="20.0dip" android:layout_marginRight="20.0dip" android:text="跳转" android:layout_alignParentRight="true" />
    <ImageView android:id="@id/splash_img" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/default_image_bg" android:scaleType="fitXY" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_alignParentStart="true" />
</RelativeLayout>


android:id="@id/splash_img" 是  跳转按钮的背景图  这个的指向是  android:src="@drawable/default_image_bg  在drawable文件夹中的 default_image_bg文件 因为default_image_bg还是XML文件,那么我们先去自己随便做一张图片
然后在我的电脑中找到 default_image_bg文件的位置  吧图片的名字和default_image_bg.xml 文件更改成一样的  但是图片的后戳是.png 等 我们只需要删除 default_image_bg.xml 文件, 把图片黏贴到这里 名字也要改成default_image_bg.png
继续回来AK 软件内 编译 安装软件看看咱们是否成功
打开软件后发现还是有广告,嗯,,,
不能够,但是咱们替换的图片一闪而过
肯定还有其他的代码可以获得此广告,但是别心急  因为跳转这个按钮是 浮于 广告图片的上方  所以咱们可以来更改  跳转按钮的背景图还有将这个按钮扩大到全屏幕,这样就可以防止不小心还是电脑广告上 弹出广告

android:background="@drawable/default_image_bg"  这个是自己添加进去了的  ,仔细看看为什么这个和 广告图片内的指向代码不一样 广告图片的是android:src (百度或者学习论坛内的教程)

android:layout_width="80.0dip" android:layout_height="38.0dip" 再将这个改成  android:layout_width="fill_parent" android:layout_height="fill_parent" 这样这个按钮就是全屏幕了
广告也不现实了,编译软件后 安装到手机发现已经可以了 但是还是有点距离
我们再将android:layout_marginTop="20.0dip" android:layout_marginRight="20.0dip"  改成android:layout_marginTop="0dip" android:layout_marginRight="0dip"
继续编译软件 安装到手机 这下彻底的变成全屏幕跳转

进入软件后 发现播放视频时 跳转到广告那里去了   还是根据上面的方法   来操作  但是需要关键词去搜索到这个  Activity  找到后根据代码提示 找到xml文件修改

第一次写这样的东西,完全写不好,以后会继续学习,把自己的经验分享给大家。
谢谢



2018年8月16日 19:54:23
看到了很多人回复说看不懂,
其实所有的教程不是完全帮助你去做某些事情,而是需要自己去学习利用。 某些代码的意思不懂就百度,在看不懂就买书。
真正想学习的朋友都会自己去研究,他用着自己破解的软件就会很有成就感。当然也仅限于他自己使用,不能破坏软件的自身利益。












免费评分

参与人数 1吾爱币 +6 热心值 +1 收起 理由
qtfreet00 + 6 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 小色 发表于 2018-8-15 13:07
那个 成品的软件就不发出来了,因为涉及到很多问题,所以不会发出,男人们都懂,这个帖子仅此纪念在 吾爱破解 学习安卓逆向的一点心得。喜欢的朋友给点吾爱币热心什么的~爱你们么么哒。
养只猫叫萨摩耶 发表于 2018-8-15 14:40
wenglk 发表于 2018-8-15 15:34
Sky℃ 发表于 2018-8-15 15:51
看不懂,感觉很厉害的样子
ion 发表于 2018-8-15 16:23
厉害厉害
夜步城 发表于 2018-8-15 17:02
哈哈,我知道是什么软件
cyhcuichao 发表于 2018-8-15 20:35
说真的没看懂
zhanglongfu 发表于 2018-8-15 21:52
技术无罪,加油!
disikejj 发表于 2018-8-15 21:58
围观学习
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 22:36

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表