产品文档 > 全平台端安全 > 防劫持SDK

防劫持SDK

一、产品简介

防劫持SDK是具备防劫持兼防截屏功能的SDK,可有效防范恶意程序对应用进行界面劫持与截屏的恶意行为。

二、iOS版本

2.1 环境要求

条目说明
兼容平台iOS 8.0+
开发环境XCode 4.0 +
CPU架构armv7, arm64, i386, x86_64
SDK依赖libz, libresolv, libc++

2.2 SDK接入

2.2.1 DxAntiHijack获取

从顶象技术官网下载SDK或者向销售人员直接获取,下面是SDK的目录结构

1.png

DXhijack_xxx_xxx_xxx_debug.zip 防劫持debug 授权集成库 DXhijack_xxx_xxx_xxx_release.zip 防劫持release 授权集成库

  • 解压DXhijack_xxx_xxx_xxx_xxx.zip 文件,得到以下文件
    • DXhijack 文件夹
      • DXhijack.a 已授权静态库
      • Header/DXhijack.h 头文件
      • dx_auth_license.description 授权描述文件
      • DXhijackiOS.framework 已授权framework 集成库

2.2.2 将SDK接入XCode

2.2.2.1 导入静态库及头文件

将SDK目录(包含静态库及其头文件)直接拖入工程目录中,或者右击总文件夹添加文件。 或者 将DXhijackiOS.framework 拖进framework存放目录

2.2.2.2 添加其他依赖库

在项目中添加 libc++.tbd 库,选择Target -> Build Phases,在Link Binary With Libraries里点击加号,添加libc++.tbd

2.2.2.3 添加Linking配置

在项目中添加Linking配置,选择Target -> Build Settings,在Other Linker Flags里添加-ObjC配置

2.3 DxAntiHijack使用

2.3.1 方法及参数说明

@interface DXhijack : NSObject

+(void)addFuzzy;   //后台模糊效果
+(void)removeFuzzy;//后台移除模糊效果
@end

2.3.2 使用示例

在对应的AppDelegate.m 文件中头部插入

#import "DXhijack.h"

//在AppDelegate.m 文件中applicationWillResignActive 方法调用增加
 - (void)applicationWillResignActive:(UIApplication *)application {
     [DXhijack addFuzzy];
 }

 //在AppDelegate.m 文件中applicationDidBecomeActive 方法调用移除
 - (void)applicationDidBecomeActive:(UIApplication *)application {
     [DXhijack removeFuzzy];
 }

2.4 问题错误汇总

错误码错误描述
-1000 , -1101授权失败,请联系顶象客服人员
-1102试用版本已过期,请联系顶象客服人员
-1103包名相关不正确,请校对包名信息是否跟生成库提供的包名一致

三、Android版本

3.1 环境要求

条目说明
开发目标Android 4.0+
开发环境Android Studio 3.0.1 或者 Eclipse + ADT
CPU架构ARM 或者 x86
SDK三方依赖

3.2 SDK接入

3.2.1 SDK获取

  1. 访问顶象技术官网,注册账号
  2. 登录控制台,访问“全流程端防控->安全键盘SDK”模块
  3. 新增App,填写相关信息
  4. 下载对应平台SDK

3.2.2 SDK文件结构

  • SDK目录结构 android-dx-hijack-sdk.png

    • dx-anti-hijack-${version}.jar Android jar包
    • armeabi, armeabi-v7a, arm64-v8a, x86 4个abi平台的动态库文件

3.2.3 Android Studio 集成

点击下载Demo

3.2.3.1 Android Studio导入jar, so

把dx-anti-hijack-x.x.x.jar, so文件放到相应模块的libs目录下

android-dx-hijack-as.png

  • 在该Module的build.gradle中如下配置:
 android{
     sourceSets {
         main {
             jniLibs.srcDirs = ['libs']
         }
     }

     repositories{
         flatDir{
             dirs 'libs'
         }
     }
 }


 dependencies {
     implementation fileTree(dir: 'libs', include: ['*.jar'])
 }

3.2.3.2 权限声明

Android 5.0(不包含5.0)以下需要在项目AndroidManifest.xml文件中添加下列权限配置:

 <uses-permission android:name="android.permission.GET_TASKS"/>
3.2.3.3 混淆配置
 -keep class com.dingxiang.mobile.dxantihijack.** {*;}

3.3 DxAntiHijack 类使用

3.3.1 方法及参数说明

 public boolean DxAntiHijacking.antiHijacking();
 Description:
 调用反劫持检测,通常在Activity的onPause与onStop()生命周期当中调用.
 Returns:
 是否存在被劫持风险


 public void DxAntiHijacking.antiScrean(Activity activity);
 Description:
 调用反截屏功能
 Parameters:
 activity - Android 活动类对象

3.3.2 使用示例

如无法使用或使用异常,请检查 anti_hijack_license.dx 文件是否放置正确,或者联系顶象技术人员

 //使用反劫持方法
 @Override
 protected void onPause() {
     boolean safe = DxAntiHijacking.antiHijacking();
     if(!safe){
         Toast.makeText(getApplicationContext(), "App has entered the background", Toast.LENGTH_LONG).show();
     }
     super.onPause();
 }

 @Override
 protected void onStop() {
     boolean safe = DxAntiHijacking.antiHijacking();
     if(!safe){
         Toast.makeText(getApplicationContext(), "App has entered the background", Toast.LENGTH_LONG).show();
     }
     super.onStop();
 }


 //使用反截屏方法
 @Override
 protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);
     DxAntiHijacking.antiScrean(MainActivity.this);
 }

3.4 问题错误汇总

错误码错误描述
-1000 , -1101授权失败,请联系顶象客服人员
-1102试用版本已过期,请联系顶象客服人员
-1103包名或签名相关不正确,请校对包名/签名信息是否跟生成库提供的包名/签名一致
其他设备运行在危险环境中,如注入、调试等环境
400-8786-123