android 游戏sdk嫁接方式

检测是不是模拟器

# direct methods

.method static constructor <clinit>()V
    .locals 1

    sget-object v0, Lcom/google/android/gms/ads/AdRequest;->DEVICE_ID_EMULATOR:Ljava/lang/String;

    sput-object v0, Lcom/google/ads/AdRequest;->TEST_EMULATOR:Ljava/lang/String;

    return-void
.end method
  1. 最恶心的一种嫁接方式,就是在启动页面的activity中加入代码,判断他的应用是否存在,不存在就不跳转,
什么也不做,造成游戏玩不了!7723
.method public isMobile_lewanExist()Z

##

if-lt v1,v0,  :cond_0

:goto_1

const/4 v2,0x1

return v2

##
2. 还有就是toast !7723、当乐a.d.cn
string v0,"\u78a.d.cn"

##

.show()

##

把.show()去掉就可以去除toast

3. 启动页面的修改!当乐a.d.cn、安智、拇指玩

直接就把启动页修改,执行完自己的代码,跳回原来。

origin:

<activity android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:name="com.icecry.launcher.GoloRunnerStart" android:screenOrientation="landscape" android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
            <intent-filter>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
  </activity>

modify:

<activity android:name="com.muzhiwan.sdk.MzwShellActivity" android:screenOrientation="landscape" android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
            <intent-filter>
             <action android:name="android.intent.action.MAIN"/> 主函数
                <category android:name="android.intent.category.LAUNCHER"/>启动页表示
            </intent-filter>
            <intent-filter>
                <category android:name="android.intent.category.LEANBACK_LAUNCHER"/>随后启动
            </intent-filter>
      </activity>

上边application  标签下的第一个Activity就有可能是原来的启动界面、启动类

<intent-filter/>可能就是原来启动标签写的位置

4. 拇指玩的签名检验,在修改完启动页之后游戏出现闪退!Signature

先搜索Signature,


.method private static getSign(Landroid/content/Context;)I
    .locals 5
    .param p0, "context"    # Landroid/content/Context;

    .prologue
    .line 12
    :try_start_0
    invoke-virtual {p0}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;

    move-result-object v2

    .line 13
    invoke-virtual {p0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;

    move-result-object v3

    const/16 v4, 0x40

    .line 12
    invoke-virtual {v2, v3, v4}, Landroid/content/pm/PackageManager;->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;

    move-result-object v1

    .line 14
    .local v1, "info":Landroid/content/pm/PackageInfo;
    iget-object v2, v1, Landroid/content/pm/PackageInfo;->signatures:[Landroid/content/pm/Signature;

    const/4 v3, 0x0

    aget-object v2, v2, v3

    invoke-virtual {v2}, Landroid/content/pm/Signature;->toCharsString()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {v2}, Ljava/lang/String;->hashCode()I
    :try_end_0
    .catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_0} :catch_0

    move-result v2

    .line 18
    .end local v1    # "info":Landroid/content/pm/PackageInfo;
    :goto_0
    return v2

    .line 15
    :catch_0
    move-exception v0

    .line 16
    .local v0, "e":Ljava/lang/Throwable;
    invoke-virtual {v0}, Ljava/lang/Throwable;->printStackTrace()V

    .line 18
    const/4 v2, -0x1

    goto :goto_0
.end method

这个获取签名,然后搜索getSign,在sdk/utils/Env.smali中有俩个getSign,分别是上边那个和下边这个

.method public static checkSign(Landroid/app/Activity;)V
    .locals 3
    .param p0, "context"    # Landroid/app/Activity;

    .prologue
    .line 22
    invoke-static {p0}, Lcom/muzhiwan/sdk/utils/Env;->getSign(Landroid/content/Context;)I

    move-result v0

    .line 24
    .local v0, "sign":I
    const v1, 0x396f215

    #if-ne v0, v1, :cond_0

    .line 31
    :goto_0
    return-void

    .line 29
    :cond_0
    sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream;

    const-string v2, "wrong sign!"

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

    .line 30
    invoke-virtual {p0}, Landroid/app/Activity;->finish()V

    goto :goto_0
.end method

改掉判断 end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值