新手小白抖*逆向学习探索(去内部广告)-第二弹

查看 110|回复 10
作者:zl6821   
新手小白抖*逆向学习探索(去内部广告)-第二弹
上一章电梯:
新手小白抖逆向学习探索(去抖广告)
https://www.52pojie.cn/thread-1954379-1-1.html
(出处: 吾爱破解论坛)
1、apk基础信息


image-20240814092327915.png (43.61 KB, 下载次数: 0)
下载附件
2024-8-14 20:10 上传

2、软件分析


image-20240814111701084.png (250.62 KB, 下载次数: 0)
下载附件
2024-8-14 20:10 上传

在上一集,我已经把开屏广告搞定了,打开后,又是两个弹窗广告加一个系统公告,还必须要手动关闭才可以。这一集就干它


image-20240814192417468.png (116.02 KB, 下载次数: 0)
下载附件
2024-8-14 20:11 上传



image-20240814192505751.png (94.77 KB, 下载次数: 0)
下载附件
2024-8-14 20:11 上传



image-20240814192544189.png (125 KB, 下载次数: 0)
下载附件
2024-8-14 20:11 上传

3、开干!
根据论坛新手指导《安卓逆向那档事》广告浮窗就不是看activity,而是用算法助手日志锁定堆栈。然后把show方法干掉。


image-20240814193220072.png (78.9 KB, 下载次数: 0)
下载附件
2024-8-14 20:11 上传

总共四个弹窗,第一个弹窗是启动窗口,后面三个才是,现在看第一个堆栈


image-20240814193343818.png (132.08 KB, 下载次数: 0)
下载附件
2024-8-14 20:11 上传

第一个弹窗黑丝小姐姐,com.niming.framework.base.a.onStart,使用jadex看下,锁定关键show函数。


image-20240814193655429.png (33.34 KB, 下载次数: 0)
下载附件
2024-8-14 20:11 上传

    public int show(m transaction, String tag) {
        InterfaceC0335a interfaceC0335a = this.J0;
        if (interfaceC0335a != null) {
            interfaceC0335a.b();
        }
        return super.show(transaction, tag);
    }
    @Override // androidx.viewpager.widget.b.a, androidx.fragment.app.b
    public void show(androidx.fragment.app.g manager, String tag) {
        InterfaceC0335a interfaceC0335a = this.J0;
        if (interfaceC0335a != null) {
            interfaceC0335a.b();
        }
        super.show(manager, tag);
    }
嗯,两个,本人java菜鸡,只知道可以两个函数重构,但是这个黑丝小姐姐到底是那个show出来的????
本着宁杀错,不放过原则。计划将show1(上面的那个)
return super.show(transaction, tag);
改为
return 1;//毕竟还是有返回值,给一个象征一下吧


image-20240814195718050.png (120.09 KB, 下载次数: 0)
下载附件
2024-8-14 20:11 上传

下面的直接清空,反正也没有返回值
super.show(manager, tag);


image-20240814195618271.png (106.78 KB, 下载次数: 0)
下载附件
2024-8-14 20:11 上传

保存-编译-签字-打包-安装
经过测试,3个全军覆没,看来用的是一个函数去生成的。
4、回顾
有朋友可能会有疑问,调用堆栈不是com.niming.framework.base.a.onStart里面的onstart函数,那就多看看他在干什么?
    public void onStart() {
        //调用父类onstart函数
        super.onStart();
        //生成一个window窗口
        Window window = getDialog().getWindow();
        if (window != null) {
            //设置窗口为全透明
            window.setBackgroundDrawable(new ColorDrawable(0));
            //提取窗口属性参数
            WindowManager.LayoutParams layoutParams = window.getAttributes();
            if (Z()) {
                //设置动画参数
                layoutParams.windowAnimations = R.style.BottomDialogFragmentAnimation;
            }
            //设置动画宽
            layoutParams.width = W(getActivity());
            //设置动画高
            layoutParams.height = I();
            //设置动画遮罩
            layoutParams.dimAmount = R();
            //设置动画重力
            layoutParams.gravity = T();
            //生效以上属性
            window.setAttributes(layoutParams);
        }
    }
最开始的时候,我以为我需要修改的程序是这里,但是经过实验,发现清空了这里面的函数,会造成函数出错,我个人认为这里其实不是创建广告,而是创建广告的画布,后面的程序在这个画布上画上小姐姐,这样就知道为什么会报错了,画布都没有了,画的时候肯定报错,也不知道这样理解是否正确。
   public Dialog onCreateDialog(Bundle savedInstanceState) {
        return super.onCreateDialog(savedInstanceState);
    }
    @Override // androidx.fragment.app.Fragment
    @Nullable
    public View onCreateView(LayoutInflater inflater, @nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        Bundle bundle = getArguments();
        if (bundle != null) {
            Y(bundle);
        }
        View view = K(inflater, container);
        return view;
    }
经过我的推断,应该这个程序就是在画布上创建黑丝小姐姐的函数。为什么会有两个,
经过百度:使用 DialogFragment 至少需要实现 onCreateView 或者 onCreateDialog 方法,这俩个是二选一,所以就能理解为什么onCreateDialog函数只是个皮包,并没有重写。
抖*去广告系列结束啦,感谢各位大大的帮助,后面会继续给大家更新小白学习系列。

下载次数, 下载附件

tomliu   

最后一张图, 右下角码没打全
caisonglinlove   

这马赛克打得非常牛,必须给楼主点赞。
myconan   

这个软件还有少儿不宜画面????
know1234   

搞黄色才是第一生产力
zx9   

大佬带我
Bakerhacker   


myconan 发表于 2024-8-15 17:49
这个软件还有少儿不宜画面????

这是抖~阴~不是抖音
cxp521   

看着就鸡动起来了
elinkmi   

过来学习一下
zl6821
OP
  


tomliu 发表于 2024-8-15 20:47
最后一张图, 右下角码没打全

福利,点出来就没意思了 兄弟
您需要登录后才可以回帖 登录 | 立即注册

返回顶部