返回列表 发新帖

[悬赏求助] 内测游戏谷歌许可证验证

[复制链接]

6

主题

192

帖子

588

积分

初中生

Rank: 3Rank: 3

金币
222
好评
0
贡献
0
发表在  2021-4-29 11:02:14 来自手机  | 显示全部楼层 | 阅读模式
30金币
大佬们路过看看,帮忙去一下,谢谢
转换为java

pacakge com.singular.sdk.internal;

import android.content.ComponentName;
import android.content.Context;
import android.content.ServiceConnection;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.IBinder;
import android.os.RemoteException;
import com.android.vending.licensing.ILicensingService;
import com.android.vending.licensing.ILicensingService.Stub;
import com.singular.sdk.internal.LicenseApiHelper.LicenseResultHandler;
import java.security.SecureRandom;

public class LicenseChecker implements ServiceConnection {
    private static final int ERROR_RESPONSE_CODE = -1;
    private static final SecureRandom RANDOM = new SecureRandom();
    private static final SingularLog logger = SingularLog.getLogger(LicenseApiHelper.class.getSimpleName());
    private final LicenseResultHandler handler;
    private final Context mContext;
    private Handler mHandler;
    private final String mPackageName = this.mContext.getPackageName();
    private ILicensingService mService;

    public LicenseChecker(Context context, LicenseResultHandler licenseResultHandler) {
        HandlerThread handlerThread = new HandlerThread("license_checker");
        handlerThread.start();
        this.mContext = context;
        this.mHandler = new Handler(handlerThread.getLooper());
        this.handler = licenseResultHandler;
    }

    private void cleanupService() {
        if (this.mService != null) {
            try {
                this.mContext.unbindService(this);
            } catch (IllegalArgumentException unused) {
                logger.error("Unable to unbind from licensing service (already unbound)");
            }
            this.mService = null;
        }
    }

    private int generateNonce() {
        return RANDOM.nextInt();
    }

    public synchronized void checkAccess() {
        if (this.mService == null) {
            logger.info("Binding to licensing service.");
            try {
                if (!this.mContext.bindService(new HandlerThread("com.android.vending.licensing.ILicensingService").setPackage("com.android.vending"), this, 1)) {
                    logger.error("Could not bind to service.");
                    this.handler.handle(ERROR_RESPONSE_CODE, "Binding failed", "");
                }
            } catch (SecurityException e) {
                logger.error("SecurityException", e);
                this.handler.handle(ERROR_RESPONSE_CODE, String.format("Exception: %s, Message: %s", new Object[]{e.toString(), e.getMessage()}), "");
            }
            logger.info("Binding done.");
        } else {
            try {
                this.mService.checkLicense((long) generateNonce(), this.mPackageName, new ResultListener(this, null));
            } catch (RemoteException e2) {
                logger.error("RemoteException in checkLicense call.", e2);
                this.handler.handle(ERROR_RESPONSE_CODE, String.format("Exception: %s, Message: %s", new Object[]{e2.toString(), e2.getMessage()}), "");
            }
        }
    }

    public synchronized void onDestroy() {
        cleanupService();
        this.mHandler.getLooper().quit();
    }

    public synchronized void onServiceConnected(ComponentName componentName, IBinder iBinder) {
        logger.info("onServiceConnected.");
        this.mService = Stub.asInterface(iBinder);
        try {
            this.mService.checkLicense((long) generateNonce(), this.mPackageName, new ResultListener(this, null));
            logger.info("checkLicense call done.");
        } catch (RemoteException e) {
            logger.error("RemoteException in checkLicense call.", e);
            this.handler.handle(ERROR_RESPONSE_CODE, e.toString(), "");
        }
    }

    public synchronized void onServiceDisconnected(ComponentName componentName) {
        logger.info("Service unexpectedly disconnected.");
        this.mService = null;
    }
}









这个是安卓代码

# virtual methods
.method public declared-synchronized checkAccess()V
    .registers 11

    monitor-enter p0

    :try_start_1
    iget-object v0, p0, Lcom/singular/sdk/internal/LicenseChecker;->mService:Lcom/android/vending/licensing/ILicensingService;

    const/4 v1, 0x0

    const/4 v2, 0x2

    const/4 v3, 0x1

    const/4 v4, -0x1

    if-nez v0, :cond_61

    sget-object v0, Lcom/singular/sdk/internal/LicenseChecker;->logger:Lcom/singular/sdk/internal/SingularLog;

    const-string v5, "Binding to licensing service."

    invoke-virtual {v0, v5}, Lcom/singular/sdk/internal/SingularLog;->info(Ljava/lang/String;)I
    :try_end_10
    .catchall {:try_start_1 .. :try_end_10} :catchall_99

    :try_start_10
    iget-object v0, p0, Lcom/singular/sdk/internal/LicenseChecker;->mContext:Landroid/content/Context;

    new-instance v5, Landroid/content/Intent;

    const-string v6, "com.android.vending.licensing.ILicensingService"

    invoke-direct {v5, v6}, Landroid/content/Intent;-><in

最佳答案

查看完整内容

测试名额不是有限的嘛
回复

使用道具 举报

0

主题

411

帖子

3550

积分

大学生

Rank: 5Rank: 5

金币
752
好评
0
贡献
0

MT论坛帅哥

发表于 2021-4-29 11:02:15 来自手机  | 显示全部楼层
测试名额不是有限的嘛
回复

使用道具 举报

6

主题

192

帖子

588

积分

初中生

Rank: 3Rank: 3

金币
222
好评
0
贡献
0
发表于 2021-4-29 11:10:23 来自手机  | 显示全部楼层
invoke-direct {v5, v6}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V

    const-string v6, "com.android.vending"

    invoke-virtual {v5, v6}, Landroid/content/Intent;->setPackage(Ljava/lang/String;)Landroid/content/Intent;

    move-result-object v5

    invoke-virtual {v0, v5, p0, v3}, Landroid/content/Context;->bindService(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z

    move-result v0

    if-nez v0, :cond_59

    sget-object v0, Lcom/singular/sdk/internal/LicenseChecker;->logger:Lcom/singular/sdk/internal/SingularLog;

    const-string v5, "Could not bind to service."

    invoke-virtual {v0, v5}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;)I

    iget-object v0, p0, Lcom/singular/sdk/internal/LicenseChecker;->handler:Lcom/singular/sdk/internal/LicenseApiHelper$LicenseResultHandler;

    const-string v5, "Binding failed"

    const-string v6, ""

    invoke-virtual {v0, v4, v5, v6}, Lcom/singular/sdk/internal/LicenseApiHelper$Licen
回复

使用道具 举报

6

主题

192

帖子

588

积分

初中生

Rank: 3Rank: 3

金币
222
好评
0
贡献
0
发表于 2021-4-29 11:10:42 来自手机  | 显示全部楼层
invoke-virtual {v0, v4, v5, v6}, Lcom/singular/sdk/internal/LicenseApiHelper$LicenseResultHandler;->handle(ILjava/lang/String;Ljava/lang/String;)V
    :try_end_35
    .catch Ljava/lang/SecurityException; {:try_start_10 .. :try_end_35} :catch_36
    .catchall {:try_start_10 .. :try_end_35} :catchall_99

    goto :goto_59

    :catch_36
    move-exception v0

    :try_start_37
    sget-object v5, Lcom/singular/sdk/internal/LicenseChecker;->logger:Lcom/singular/sdk/internal/SingularLog;

    const-string v6, "SecurityException"

    invoke-virtual {v5, v6, v0}, Lcom/singular/sdk/internal/SingularLog;->error(Ljava/lang/String;Ljava/lang/Throwable;)I

    iget-object v5, p0, Lcom/singular/sdk/internal/LicenseChecker;->handler:Lcom/singular/sdk/internal/LicenseApiHelper$LicenseResultHandler;
回复

使用道具 举报

6

主题

192

帖子

588

积分

初中生

Rank: 3Rank: 3

金币
222
好评
0
贡献
0
发表于 2021-4-29 11:11:08 来自手机  | 显示全部楼层
const-string v6, "Exception: %s, Message: %s"

    new-array v2, v2, [Ljava/lang/Object;

    invoke-virtual {v0}, Ljava/lang/SecurityException;->toString()Ljava/lang/String;

    move-result-object v7

    aput-object v7, v2, v1

    invoke-virtual {v0}, Ljava/lang/SecurityException;->getMessage()Ljava/lang/String;

    move-result-object v0

    aput-object v0, v2, v3

    invoke-static {v6, v2}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;

    move-result-object v0
回复

使用道具 举报

0

主题

411

帖子

3550

积分

大学生

Rank: 5Rank: 5

金币
752
好评
0
贡献
0

MT论坛帅哥

发表于 2021-4-29 11:20:08 来自手机  | 显示全部楼层
发这么多,不如直接发游戏
回复

使用道具 举报

0

主题

411

帖子

3550

积分

大学生

Rank: 5Rank: 5

金币
752
好评
0
贡献
0

MT论坛帅哥

发表于 2021-4-29 11:38:25 来自手机  | 显示全部楼层
把游戏发出来可能还有人看,你这样发估计没人理你
回复

使用道具 举报

6

主题

192

帖子

588

积分

初中生

Rank: 3Rank: 3

金币
222
好评
0
贡献
0
发表于 2021-4-29 11:47:46 来自手机  | 显示全部楼层
✨北篱下✨ 发表于 2021-4-29 11:38
把游戏发出来可能还有人看,你这样发估计没人理你

有道理,感谢
回复

使用道具 举报

6

主题

192

帖子

588

积分

初中生

Rank: 3Rank: 3

金币
222
好评
0
贡献
0
发表于 2021-4-29 11:48:13 来自手机  | 显示全部楼层
https://share.weiyun.com/8ioKwzvW
回复

使用道具 举报

6

主题

192

帖子

588

积分

初中生

Rank: 3Rank: 3

金币
222
好评
0
贡献
0
发表于 2021-4-29 11:49:06 来自手机  | 显示全部楼层
链接是游戏安装包
回复

使用道具 举报

6

主题

192

帖子

588

积分

初中生

Rank: 3Rank: 3

金币
222
好评
0
贡献
0
发表于 2021-4-29 19:48:10 来自手机  | 显示全部楼层
✨北篱下✨ 发表于 2021-4-29 19:42
测试名额不是有限的嘛

是有限的,我之前看有游客登录,ea登录,以为可以进,没想到还是不行
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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