反外挂SDK接入

iOS加固工具请在注册邮箱中下载

导入RiskPerception SDK

1.导入RiskPerception.framework文件到您的工程。

2.添加配置:

一、在UnityFramework Target下添加 build settings ->other linker flags,添加 -ObjC-lz-fprofile-instr-generate

如不存在UnityFramework Target在Unity-iPhone target下添加配置项。

image title

二、target -> Build Phase -> Link Binary With Libraries,添加以下库:

AdSupport.framework

AvFoundation.framework

CoreTelephony.framewrok

SystemConfiguration.framework

libc++.tbd

三、在info.plist文件中添加 Privacy - Location Always and When In Use Usage Description。

四、添加头文件

请将以下代码添加到 AppDelegate.m 引用头文件的位置。

#import <RiskPerception/NTESRiskPerception.h>

使用SDK

  1. 初始化:

在AppDelegate.m文件 didFinishLaunchingWithOptions方法中添加以下初始化代码

中国大陆地区应用

KpelleAzuriteCues* risk = [KpelleAzuriteCues fomentBevelDeadengo];
[risk deadengoBevel:@"你的APPID"];

台湾地区应用

KpelleAzuriteCues* risk = [KpelleAzuriteCues fomentBevelDeadengo];
[risk changeViewDetailStar:2];
[risk deadengoBevel:@"你的APPID"];

其他地区应用

KpelleAzuriteCues* risk = [KpelleAzuriteCues fomentBevelDeadengo];
[risk changeViewDetailStar:3]; 
[risk deadengoBevel:@"你的APPID"];

app_id 不同用户或游戏的唯一标识(非bundleID),可在智能反外挂下的服务管理查询AppID,或者可在群里咨询技术支持人员。AppID示例:I003722234

  1. 在用户登录调用如下代码:
[[KpelleAzuriteCues fomentBevelDeadengo] sheldonstirpAlunitego:@"xxx"                 
                              UserName:@"xxx" 
                           UserAccount:@"xxx" 
                            UserServer:@"xxx" 
                              GameJson:@"xxx"];

通用接口说明

初始化

  • 函数原型

直传模式

- (BOOL)deadengoBevel:(NSString *)app_id

透传2.0模式

- (BOOL)deadengoBevel:(NSString *)app_id withDefineSpaces:(NSString *)url
  • 接口说明

正常环境下,使用直传方式。如需接入透传模式,需联系技术支持人员,设置相应的透传服务器。 透传2.0客户端会自动转发到被拦截的请求。

以上接口无需重复调用

  • 参数说明

app_id 不同用户或游戏的唯一标识(非bundleID),可在智能反外挂下的服务管理查询AppID,或者可在群里咨询技术支持人员。AppID示例:I003722234。 url 透传服务器地址。url示例"https://www.netease163.com"

  • 返回值说明

初始化结果返回 1. YES 初始化成功 2. NO 初始化失败

设置自动化透传类型

- (void)readyForOpportunity:(NSInteger)type
  • 接口说明

如使用自动化透传,可以设置自动化透传的类型。(自助化透传见下方文档)

  • 参数说明

type:1、自动透传模式 2、强制透传模式。默认状态为自动透传模式。

自动透传模式:会自动根据网络情况选择正常的网络方案或者透传方案。

强制透传模式:直接使用透传方案。

登陆接口/设置角色信息

- (void)sheldonstirpAlunitego:(NSString *)user_id 
             UserName:(NSString *)user_name 
          UserAccount:(NSString *)user_account  
           UserServer:(NSString *)user_server 
             GameJson:(NSString *)game_json;

  • 参数说明
参数释义
user_id用户ID,建议使用唯一ID。必传参数
user_name用户姓名。
user_account用户账号
user_server用户所在服务器
game_json自定义数据。请使用字符串类型
  • 返回值说明

返回的数据即为原始数据的密文,开发者需要自行对加密后的数据进行本地存储

  • 调用示例
[self.risk sheldonstirpAlunitego:@"163163" UserName:@"网易易盾" UserAccount:@"wangyiyidun" UserServer:@"反外挂专区" GameJson:@"自定义内容"]

设置区域信息

- (void)changeViewDetailStar:(NSInteger)type;

  • 参数说明

type 服务器地区类型 1、中国大陆 2、台湾地区 3、非中国大陆地区。

  • 调用示例
台湾地区应用
[self.risk changeViewDetailStar:2];
非中国大陆和台湾地区应用
[self.risk changeViewDetailStar:3];

注意

非中国大陆应用和台湾地区,需要调用此接口。如不按规范设置,可能会有数据丢失问题存在。设置时,请与技术支持确认。

退出登陆

如果账号退出登陆可以使用以下接口,如果切换账号可以直接使用“设置角色信息”接口,会自动退出自己登陆的账号。

- (void)devastatedMovement;

  • 调用示例
[[KpelleAzuriteCues fomentBevelDeadengo] devastatedMovement];`

心跳系统

随着安全对抗的日益激烈,网易易盾不断提升反外挂服务的自身安全强度,保障反外挂服务的安全,但也可能存在易盾反外挂服务被中止或者被剥离的风险。

为避免反外挂服务被恶意破坏,易盾提供“心跳系统”,定时向游戏方反馈心跳信息,告知游戏方当前反外挂运行状态,既方便游戏方实时掌握反外挂运行状态,也能保障易盾反外挂服务的正常运行。

设置心跳回调。心跳系统每十秒调用一次或者出现异常的情况下会触发回调。(心跳系统在非主线程中运行,如需进行UI操作请切回到主线程中。)

回调结果需要进行解密。对接时请联系运营同学,获取相应的解密文件。

- (void)counselbeaAction:(heartBeatBlock)block;

心跳回调参数释义
seq心跳序号从1开始递增
t时间戳(秒级)
net网络状态 1正常 0异常
  • 调用示例
[[KpelleAzuriteCues fomentBevelDeadengo] counselbeaAction:^(NSString *result) {
        
 }];

举报系统

游戏场景下,若玩家A发现玩家B有存在使用外挂嫌疑,玩家A可通游戏举报系统举报B。游戏方举报系统可接入易盾举报验证功能判断B游戏用户是否使用了外挂。

接入易盾举报系统后,游戏方接入举报系统后,可做数据清洗,筛选出有用举报信息,并及时处理;也可凭借易盾智能反外挂挖掘类似恶意玩家。

- (void)sheldonstirpAlunitego:(NSString *)user_id 
             UserName:(NSString *)user_name 
          UserAccount:(NSString *)user_account  
           UserServer:(NSString *)user_server 
             GameJson:(NSString *)game_json;

  • 参数说明
参数释义
user_id被举报者id
user_name被举报者name(可为空)
user_account被举报者account
user_server被举报者服务器(可为空)
report_desc举报描述
verification_span查询时间维度。以小时为单位,最大为24小时。建议设置为1
report_type外挂 :NTESRiskReportPlug 工作室:NTESRiskReportStudio
  • 调用示例
[[KpelleAzuriteCues fomentBevelDeadengo] successOpportunityComes:@"user_id" UserName:@"user_name" UserAccount:@"userAccount" UserServer:@"userServer"  Report_desc:@"report_desc" VerificationSpan:1 ReportType: NTESRiskReportPlug];

数据签名

- (NSString *)alunitegoStirkStirp:(NSString *)data;

  • 接口说明

需要进行签名的数据,可以使用此接口获取签名。 data不能为空,若为空,返回nil。 服务端解密代码需要联系运营同学获取。

  • 调用示例
[[KpelleAzuriteCues fomentBevelDeadengo] alunitegoStirkStirp:@"需要加密的数据"];

数据查询

- (NSString *)opportunitiesLikeSunrises:(NTESRiskQueryType)queryType withData:(NSString *)data;

  • 接口说明

通过查询类型获取指定的数据。

  • 参数说明
参数释义
queryTypeNTESRiskQuerySignInfo 签名信息
NTESRiskQueryRootStatus 越狱状态
NTESRiskQuerySDKVersion sdk版本
data预留参数、暂不需要传入
  • 调用示例
NSString *result = [[KpelleAzuriteCues fomentBevelDeadengo] opportunitiesLikeSunrises:NTESRiskQuerySignInfo withData:nil];

自助式透传

  • 自助式透传说明

需要通过数据查询接口获取透传数据。

游戏方自行选择获取数据的时机。

建议通过讲数据合并到其他加密数据中,发送到游戏服务器,通过请求发送到易盾服务器。 此处获取的数据为body数据。服务端相关设置内容参考服务端接口文档

  • 调用示例
NSString *result = [[KpelleAzuriteCues fomentBevelDeadengo] opportunitiesLikeSunrises:NTESRiskQueryPassthroghData withData:nil];

实时风控

- (void)memorizerAlarmSpeedometer:(NSInteger)timeout complectionHandler:(actualRiskBlock)block;

  • 接口说明

获取实时风控结果。此接口获取的为查询token。客户服务端调用相关的查询接口获取查询结果。 服务端接口说明

  • 参数说明
参数释义
timeout超时时间(100ms-10000ms)。默认3000ms。
blockactualRiskBlock
  • 调用示例
    [[KpelleAzuriteCues fomentBevelDeadengo] memorizerAlarmSpeedometer:3000 complectionHandler:^(NSInteger code, NSString *token) {

    }];;

IDFA配置

提交 AppStore 审核时关于 IDFA 的选项,如下图所示:

image title

以上4项代表的含义

  • 在 App 内投放广告

服务应用中的广告。如果你的应用中集成了广告的时候,你需要勾选这一项。

  • 将此 App 安装归因于先前投放的特定广告

跟踪广告带来的安装。如果你使用了第三方的工具来跟踪广告带来的激活以及一些其他事件,但是应用里并没有展示广告你需要勾选这一项。

  • 将此 App 中发生的操作归因于先前投放的特定广告

跟踪广告带来的用户的后续行为。如果你使用了第三方的工具来跟踪广告带来的激活以及一些其他事件。

  • iOS 中的“限制广告跟踪”设置

对您的应用使用 IDFA 的目的做下确认,只要您获取了 IDFA,那么这一项都是需要勾选的。

总结

  • SDK获取了IDFA参数,提交审核时需要对IDFA相关设置进行设置。
  • 如果您的应用里只是集成了广告,不追踪广告带来的激活行为,那么选择 1 和 4。
  • 如果您的应用没有广告。我们建议选择 2 和 4。