小色 发表于 2018-8-15 13:04

小白分析之部分去广告分析

本帖最后由 小色 于 2018-8-16 19:58 编辑

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


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


我们来分析这个代码


.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文件名称

这里和咱们得到的 SplashActivity.smali名字 是相反的,具体是什么意思 别问我-。- 我也不清楚,这个得问度娘或者论坛内的大佬,还有那些学习的帖子


打开查看 我们得到了这个
<?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
看到了很多人回复说看不懂,
其实所有的教程不是完全帮助你去做某些事情,而是需要自己去学习利用。 某些代码的意思不懂就百度,在看不懂就买书。
真正想学习的朋友都会自己去研究,他用着自己破解的软件就会很有成就感。当然也仅限于他自己使用,不能破坏软件的自身利益。












小色 发表于 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

哈哈,我知道是什么软件{:301_986:}

cyhcuichao 发表于 2018-8-15 20:35

说真的没看懂

zhanglongfu 发表于 2018-8-15 21:52

技术无罪,加油!

disikejj 发表于 2018-8-15 21:58

围观学习{:1_937:}
页: [1] 2 3
查看完整版本: 小白分析之部分去广告分析