长亭百川云 - 文章详情

某老牌反作弊产品分析-(存在加密漏洞可被中间人攻击)一

矛和盾的故事

61

2024-07-13

目录:

一、产品基本介绍

产品应用场景主要用于营销活动反作弊、渠道推广反作弊、交易安全保护、账户安全保护、接口安全保护。渠道买量、应用推广、小程序推广。
产品功能:
虚假行为分析
从设备与账户维度进行聚类关联分析、行为异常分析,甄别虚假作弊用户、IP、设备,锁定源头风险。
终端风险感知
有效识别模拟器、群控、作弊设备、模拟器、农场工具。
大数据关联分析
结合渠道大数据与风险数据,筛选出可疑对象和目标,通过特定业务判断完成风险环形数据,支持算法模型的嵌入。

二、产品整体框架

2.1、产品使用步骤

2.1.1. 前端接入:根据前端类型选择对应 SDK 进行接入,支持 Android App、iOS iApp、小程 序(头条小程序、微信小程序、支付宝小程序)、WEB/WAP/H5。
2.1.2. 接入验证:前后端接入完成后,联合客户端、服务端进行整体联调。
2.1.3. 运行APP成功返回blackbox设备指纹。

2.2、整体对接数据流程时序图
2.3、产品整体架构

接入产品逆向分析还原出基本的产品架构,如图2-3所示

图2-3

三、JAVA与JNI初始化

3.1、在应用启动的时候,比如在应用的首页 Activity 的 onCreate 方法中调用以下方法:
// FMAgent.ENV_SANDBOX     表示沙盒环境
3.2、加载SO
JSONObject v6 = null;
3.3、执行NI_OnLoad注册Native方法
.text:000000709EAE5E4C                   RegisterNatives_sub_786D163E4C
3.4、整体流程如图3-4所示

图3-4

四、VM虚拟机基本逻辑

4.1、VM逻辑主要在模块libtdvm.so中,该模块导出两个方法:
td_eea7e05642c04e240c51 //解压解密VMBycode

libtongdun.so模块中的大部分方法都会调用上面两个方法,传入vmbycode解析执行。

4.2、VM流程与分析思路

td_eea7e05642c04e240c51方法解压解密后VMBycode后进入VM,代码如下:

.text:000000709EA954F0                               EnterVM_sub_709EA954F0

解析VMbycode执行对应的Hnadle:

.text:000000709EA95878                               dsp_loc_786D55A878
4.3、常见Handle一览

常见的算术运算

.text:000000709EA93DD8                               ADD_sub_709EA93DD8
.text:000000709EA93E08                               SUB_sub_709EA93E08
.text:000000709EA93E20                               AND_sub_709EA93E20
.text:000000709EA93E44                               EOR_sub_786E901E44  
.text:000000709EA93FAC                               MUL_sub_709EA93FAC
.text:000000709EA97B60                               getdatabas_sub_786E905B60 

以上Handle都是加密时要用到的。

4.4、眺出VM调用其它模块的Handle
.text:000000709EA936C0                               call_loc_709EA936C0 

如果不还原算法的话调试时重点关注这个Handle就能大致分析清楚整体的逻辑。如果要做算法还原就得分析每一个Handle。

五、环境检测与设备信息采集

5.1、随机数AES加密存放本地

如果是第一次运行APP判断本地是否有随机数ID,如果没有就生成用AES加密存放在三个地方做为钉子文件:

SharedPreferences td-client-id-3

AES加密是反射调用JAVA实现:

.text:000000709EB4EA6C                   ; R1:原数据,R2:key

如果本地有存放就读取与设备信息一起上报服务器。

5.2、检测系统环境风险
检测多开:

读取maps查找是否有对应的包名特征

//特征
5.3、检测xposed

反射loadclass检测是否有xposed

getSystemClassLoader

查找进程中是否有包含关键字

xposedbridge
5.4、检测magisk
特征
5.5、检测自动点击
access
5.6、检测模拟器
access
5.7、检测云手机
access

样本获取方式,关注公众号,公众号输入框回复“td” 获取下载链接。

作者简介:

我是小三,目前从事软件安全相关工作,虽己工作多年,但内心依然有着执着的追求,信奉终身成长,不定义自己,热爱技术但不拘泥于技术,爱好分享,喜欢读书和乐于结交朋友,欢迎加我微信与我交朋友(公众号输入框回复“wx”即可)

未完,接下一篇

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2