美团外卖系电商类APP的设备指纹反爬风控分析(二)

接上文:
四、设备指纹在业务中的应用

1. 初始化准备

0x001. java层调用init()初始化,获取Context,包名,AppInfo,XML配置信息等,然后加载so libmtguard.so 在so中注册一个Native方法,该Native方法传入不同的数字代表不同的功能,代码如下所示:


Lcom/meituan/android/common/mtguard/MTGuard;->loadSo(Ljava/lang/String;)V
System.loadLibrary("mtguard");
//注册Native方法
private static native Object[] main(int arg0, Object[] arg1)//arg0:传入不同的编号走不同的逻辑,arg1:参数
  1. 系统环境检测

0x001.调用Native层Object[] v12_2 = NBridge.main3(1, new Object[1]),传入参数为1,表示检测环境, 检测系统目录中是否有ls文件且是否为elf格式:

.text:B1BF744E 01 26       MOVS            R6, #1
.text:B1BF7450 2E 70       STRB            R6, [R5]
.text:B1BF7452 20 48       LDR             R0, =(aSystemBinLs - 0xB1BF7458) ; "/system/bin/ls"
.text:B1BF7454 78 44       ADD             R0, PC                  ; "/system/bin/ls" ; file
.text:B1BF7456 00 25       MOVS            R5, #0
.text:B1BF7458 29 00       MOVS            R1, R5                  ; oflag
.text:B1BF745A CF F7 A0 EC BLX             open
.text:B1BF745E 04 00       MOVS            R4, R0
.text:B1BF7460 00 2C       CMP             R4, #0
.text:B1BF7462 25 DB       BLT             loc_B1BF74B0
.text:B1BF7464 01 AD       ADD             R5, SP, #0x28+buf
.text:B1BF7466 14 22       MOVS            R2, #0x14               ; nbytes
.text:B1BF7468 20 00       MOVS            R0, R4                  ; fd
.text:B1BF746A 29 00       MOVS            R1, R5                  ; buf
.text:B1BF746C CF F7 10 EE BLX             read
.text:B1BF7470 14 28       CMP             R0, #0x14
.text:B1BF7472 18 D1       BNE             loc_B1BF74A6
.text:B1BF7474 28 78       LDRB            R0, [R5]
.text:B1BF7476 7F 28       CMP             R0, #0x7F
.text:B1BF7478 15 D1       BNE             loc_B1BF74A6
.text:B1BF747A 01 A8       ADD             R0, SP, #0x28+buf
.text:B1BF747C 40 78       LDRB            R0, [R0,#1]
.text:B1BF747E 45 28       CMP             R0, #0x45 ; 'E'
.text:B1BF7480 11 D1       BNE             loc_B1BF74A6
.text:B1BF7482 01 A8       ADD             R0, SP, #0x28+buf
.text:B1BF7484 80 78       LDRB            R0, [R0,#2]
.text:B1BF7486 4C 28       CMP             R0, #0x4C ; 'L'
.text:B1BF7488 0D D1       BNE             loc_B1BF74A6
.text:B1BF748A 01 A8       ADD             R0, SP, #0x28+buf
.text:B1BF748C C0 78       LDRB            R0, [R0,#3]
.text:B1BF748E 46 28       CMP             R0, #0x46 ; 'F'
.text:B1BF7490 09 D1       BNE             loc_B1BF74A6
.text:B1BF7492 01 A8       ADD             R0, SP, #0x28+buf
.text:B1BF7494 80 7C       LDRB            R0, [R0,#0x12]
.text:B1BF7496 3E 28       CMP             R0, #0x3E ; '>'
.text:B1BF7498 01 D0       BEQ             loc_B1BF749E
.text:B1BF749A 03 28       CMP             R0, #3
.text:B1BF749C 03 D1       BNE             loc_B1BF74A6
.text:B1BF749E
.text:B1BF749E             loc_B1BF749E
.text:B1BF749E 20 00       MOVS            R0, R4                  ; fd
.text:B1BF74A0 CF F7 88 EC BLX             close

0x002.检测root:

//检测root 直接用svc指令,防止hook
.text:BB9F5444 ;faccessat
.text:BB9F5444 F0 B5       PUSH            {R4-R7,LR}
.text:BB9F5446 03 AF       ADD             R7, SP, #0xC
.text:BB9F5448 0B 00       MOVS            R3, R1
.text:BB9F544A 04 00       MOVS            R4, R0
.text:BB9F544C 63 20       MOVS            R0, #0x63 ; 'c'
.text:BB9F544E C5 43       MVNS            R5, R0
.text:BB9F5450 A7 20       MOVS            R0, #0xA7
.text:BB9F5452 46 00       LSLS            R6, R0, #1
.text:BB9F5454 28 46       MOV             R0, R5
.text:BB9F5456 21 46       MOV             R1, R4
.tex
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值