前言

Untitled

添加代理后 Potatso 弹出了谷歌广告,下面通过逆向分析去除应用中的谷歌广告。

逆向

巴斯这里采用一种简单去广告的思路:暴力移除广告相关代码。

砸壳后拖进 Hopper 分析,搜索广告的关键词:adv, adver:

Untitled

没搜索到相关的内容,应该是对App进行混淆,加载的 Framework 也都做了混淆搜索不到关键字。

Untitled

正向开发角度

iOS应用使用AdMob SDK 展示google广告:

https://developers.google.com/admob/ios/quick-start?hl=zh-cn

  1. 在 Info.plist 中添加 GADApplicationIdentifier
  2. 初始化移动广告 SDK

检查Potatsolite是否使用 AdMob SDK:

  1. $ cat Info.plist| grep -3 GADApplicationIdentifier

    		</array>
      </dict>
    </array>
    <key>GADApplicationIdentifier</key>
    <string>ca-app-pub-4158xxx573xxx~75xxxxx5xxxx1</string>
    <key>CFBundleIcons</key>
    <dict>
    
    
  2. $ frida-trace -U -m "*[GAD* *]" -f com.touchingapp.potatsolite

    动态分析发现 GADApplicationGADMobileAds 相关类。

直接移除GADApplication init 函数,用 Interceptor.replace 替换为空函数:

if (typeof (ObjC.classes.GADApplication) !== 'undefined') {
    Interceptor.replace(ObjC.classes.GADApplication['- init'].implementation, new NativeCallback(function () {
        console.log("跳过广告加载 GADApplication init");
        return;
    }, 'void', []));

    Interceptor.attach(ObjC.classes.GADApplication['- init'].implementation, {
        onEnter: function (args) {
            console.log('进入广告加载函数调用');
        },
        onLeave: function (retval) {
            console.log('退出广告加载函数调用');
        }
    });
};

$ frida -U -f com.touchingapp.potatsolite -l fgad.js 测试结果如下:

Untitled


Powered by Kali-Team