feat(huya): turing运行中dump工程化 (R20) — 串过滤100%命中+采样集7份
- hook_str_magic.js: dfpReport/hyudbwebuif字符串过滤替代魔数(不漏轮次) + 全量请求dump - 采样集: golden+f1..f4+新身份B(0647) — 新身份头12B=旧身份一致(nonce与身份无关) - nonce块: [7cda][版本][69c9f5][计数递增][稳定段] ; 运行时路线终态(Java桥/co-located/回溯全闭) - 触发-捕获-存档 ~40s/轮 全自动; evidence/dfp_live/ 齐全
This commit is contained in:
@@ -1166,3 +1166,31 @@ dfpReport: tReq = [10B 魔数 57 18 82 cf 66 4b b3 94 01 ee][3988B 加密采
|
||||
- 组件: libturingga.so / libturingmfa.so / 32hex mpdc / 81B config / ga2 / turing.dat
|
||||
- 工具: hook_ssl_magic.js (全双工) / hook_turing_jni.js / run_capture.py 自愈
|
||||
- 触发方法: 清 turing 状态重注册 (备份 tar 可回滚)
|
||||
|
||||
---
|
||||
|
||||
## §11.50 R20: turing 运行中 dump 工程化 (2026-08-29)
|
||||
|
||||
### 捕获工具定案 (hook_str_magic.js — 每轮可靠命中!)
|
||||
- **字符串过滤 > 魔数过滤**: SSL_write 明文含 "dfpReport/hyudbwebuif" 串才 dump (魔数过滤会漏轮次, 串过滤 100%)
|
||||
- 每轮: POST wsapi.huya.com + hyudbwebuif/dfpReport WUP (libjavacrypto okhttp) — 全量请求快照
|
||||
- 触发: 清 app_turingdfp/fd 重注册 (重注册稳定); pm-clear 全清+登录 = 新身份再注册 (也稳定)
|
||||
|
||||
### 采样集 (7+, 同设备多身份)
|
||||
| 样本 | 密文长 | 头 12B | 身份 |
|
||||
|---|---|---|---|
|
||||
| golden 3908 | 3898 | 7cda0169c9f5 489d4c4695ef | 08-24 |
|
||||
| f1 3531 | 3521 | 7cda11 69c9f5 289c4d46956f | 08-29 A |
|
||||
| f2 3931 | 3921 | 7cda11 69c9f5 289c4d46a1de | A |
|
||||
| f4 4310 | 4033 | 7cda11 75c8f5 349c4d0390de | A |
|
||||
| 0647 4258 | 3991 | 7cda11 69c9f5 289c4d46a1de | **新身份 B** |
|
||||
- 新身份 B 密文头 = 旧身份 A 的 f2 完全一致 12B → **nonce/加密流与身份无关(设备公共)**; 计数位 28/34 递增
|
||||
- nonce 块结构: [7cda][版本位 01/11/13][69c9f5][计数位][9c4d46...稳定]
|
||||
|
||||
### 运行时路线终态 (明文未获)
|
||||
- Java 桥 0 调用 (加密全 native 内部) / co-located 扫描 0 (工作缓冲已回收) / SSL 回溯全 Java 帧 (加密提前完成)
|
||||
- 明文/密钥获取 = turing native 静态破 (OLLVM) 或 harness 装载同库直调内部偏移
|
||||
|
||||
### 工程交付
|
||||
- 触发→捕获→存档 全自动化 (清状态+spawn+str_magic+杀) — 每次 ~40s
|
||||
- evidence/dfp_live/: 请求全文 ×5 + 采样集 + 组件 + fresh 状态文件
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,167 @@
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Lemon", "methods": ["- void a(long,java.lang.String)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Sultana$do", "methods": ["- int a(com.tencent.turingfd.sdk.ams.ga.Sultana$do)", "- int b(com.tencent.turingfd.sdk.ams.ga.Sultana$do)", "- int c(com.tencent.turingfd.sdk.ams.ga.Sultana$do)", "- com.tencent.turingfd.sdk.ams.ga.Sultana$if d(com.tencent.turingfd.sdk.ams.ga.Sultana$do)", "- com.tencent.turingfd.sdk.ams.ga.Norma e(com.tencent.turingfd.sdk.ams.ga.Sultana$do)", "- [B f(com.tencent.turingfd.sdk.ams.ga.Sultana$do)", "- com.tencent.turingfd.sdk.ams.ga.Norma g(com.tencent.turingfd.sdk.ams.ga.Sultana$do)", "- com.tencent.turingfd.sdk.ams.ga.Eridanus h(com.tencent.turingfd.sdk.ams.ga.Sultana$do)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Blueberry$do", "methods": ["- java.lang.String toString()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Solar$if", "methods": []}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Segment", "methods": ["- com.tencent.turingfd.sdk.ams.ga.Sorosis a(int,[B,int,int,com.tencent.turingfd.sdk.ams.ga.Eridanus)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Pineapple", "methods": ["- com.tencent.turingfd.sdk.ams.ga.Pineapple a(int)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Cumquat$do", "methods": ["- java.util.concurrent.FutureTask a()", "- java.lang.Object call()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Perseus", "methods": ["- void a()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.default", "methods": ["- boolean a(java.util.Collection)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.White", "methods": ["- boolean a(android.content.Context)", "- boolean a(java.lang.String,java.lang.String)", "- int b(android.content.Context)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Nectarine$if$do", "methods": ["- boolean a(com.tencent.turingfd.sdk.ams.ga.Syrup)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Rambutan", "methods": ["- com.tencent.turingfd.sdk.ams.ga.synchronized a()", "- java.lang.String a(android.content.Context)", "- java.lang.String a(java.lang.String)", "- void a(com.tencent.turingfd.sdk.ams.ga.synchronized,boolean)", "- boolean a(java.lang.String,boolean)", "- com.tencent.turingfd.sdk.ams.ga.synchronized b(java.lang.String,boolean)", "- java.lang.String b(java.lang.String)", "- java.util.Set b()", "- boolean c()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Sultana$if", "methods": []}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Guava", "methods": ["- java.lang.String toString()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Pitaya", "methods": ["- void run()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Bryony", "methods": ["- java.lang.Object a(java.lang.Class,java.lang.String,java.lang.Object)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Core", "methods": []}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Solar", "methods": ["- java.lang.String a()", "- void onLocationChanged(android.location.Location)", "- void onProviderDisabled(java.lang.String)", "- void onProviderEnabled(java.lang.String)", "- void onStatusChanged(java.lang.String,int,android.os.Bundle)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.native", "methods": ["- java.lang.String a(java.lang.String,java.lang.String,java.lang.String)", "- java.lang.String a()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Shaddock", "methods": ["- boolean a()", "- java.lang.String toString()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.synchronized", "methods": ["- void a(com.tencent.turingfd.sdk.ams.ga.Lynx)", "- void a(com.tencent.turingfd.sdk.ams.ga.Lyra)", "- java.lang.Object clone()", "- boolean equals(java.lang.Object)", "- int hashCode()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Pistachio", "methods": ["- void run()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Sorosis", "methods": []}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Pineapple$do", "methods": ["- java.lang.String a(com.tencent.turingfd.sdk.ams.ga.Pineapple$do)", "- long b(com.tencent.turingfd.sdk.ams.ga.Pineapple$do)", "- int c(com.tencent.turingfd.sdk.ams.ga.Pineapple$do)", "- java.lang.String d(com.tencent.turingfd.sdk.ams.ga.Pineapple$do)", "- java.lang.String e(com.tencent.turingfd.sdk.ams.ga.Pineapple$do)", "- java.lang.String f(com.tencent.turingfd.sdk.ams.ga.Pineapple$do)", "- java.lang.String g(com.tencent.turingfd.sdk.ams.ga.Pineapple$do)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Quarenden$do", "methods": ["- void run()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Flat", "methods": ["- com.tencent.turingfd.sdk.ams.ga.Norma a()", "- void a(com.tencent.turingfd.sdk.ams.ga.Lynx)", "- void a(com.tencent.turingfd.sdk.ams.ga.Lyra)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Auriga", "methods": ["- java.lang.String a(android.content.Context,java.lang.String)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.private", "methods": ["- void a([B,[I)", "- void a([I,int,[B)", "- [B a()", "- [B a([B)", "- [B a([B,[B)", "- [B b([B,[B)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.this$do", "methods": []}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Watermelon", "methods": ["- void run()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Pyxis", "methods": ["- com.tencent.turingfd.sdk.ams.ga.Pyxis a(java.lang.String)", "- com.tencent.turingfd.sdk.ams.ga.Pyxis a([Ljava.util.Locale;)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Dew", "methods": ["- void a(com.tencent.turingfd.sdk.ams.ga.Lynx)", "- void a(com.tencent.turingfd.sdk.ams.ga.Lyra)", "- java.lang.Object clone()", "- boolean equals(java.lang.Object)", "- int hashCode()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Pomegranate", "methods": ["- void run()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Sultana", "methods": []}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Syrup$do", "methods": ["- int a(com.tencent.turingfd.sdk.ams.ga.Syrup$do)", "- int b(com.tencent.turingfd.sdk.ams.ga.Syrup$do)", "- int c(com.tencent.turingfd.sdk.ams.ga.Syrup$do)", "- [B d(com.tencent.turingfd.sdk.ams.ga.Syrup$do)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Banana", "methods": ["- int a(android.content.Context,java.util.concurrent.atomic.AtomicReference,java.util.concurrent.atomic.AtomicReference)", "- int a(android.content.Context,java.util.concurrent.atomic.AtomicReference,java.util.concurrent.atomic.AtomicReference,java.util.concurrent.atomic.AtomicReference)", "- com.tencent.turingfd.sdk.ams.ga.Almond a(android.content.Context)", "- java.lang.String a(android.os.IBinder)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.protected", "methods": []}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Tangor", "methods": []}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Gooseberry", "methods": ["- com.tencent.turingfd.sdk.ams.ga.Norma a()", "- void a(com.tencent.turingfd.sdk.ams.ga.Lynx)", "- void a(com.tencent.turingfd.sdk.ams.ga.Lyra)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.case", "methods": ["- java.util.List a(android.content.Context)", "- void a(java.lang.StringBuilder,android.accessibilityservice.AccessibilityServiceInfo)", "- boolean a(android.accessibilityservice.AccessibilityServiceInfo)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Date", "methods": []}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Equuleus", "methods": ["- boolean userAgreement()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Nucleus", "methods": ["- void a(com.tencent.turingfd.sdk.ams.ga.Syrup)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Blackberry", "methods": ["- java.lang.String a(android.content.Context,java.lang.String)", "- java.util.List a(java.io.File)", "- [Ljava.security.cert.Certificate; a(java.util.jar.JarFile,java.util.jar.JarEntry,[B)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Shaddock$do", "methods": ["- java.lang.Object a()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Pomelo$do", "methods": ["- void handleMessage(android.os.Message)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.TNative$aa", "methods": ["- android.util.SparseArray a209202_2A742FA224BA8A2A(android.util.SparseArray,android.content.Context,java.util.Map,java.util.Map,int)", "- android.util.SparseArray b209202_2A742FA224BA8A2A(android.util.SparseArray,[B,java.util.Map,int)", "- android.util.SparseArray c209202_2A742FA224BA8A2A(android.util.SparseArray,android.content.Context)", "- android.util.SparseArray d209202_2A742FA224BA8A2A(android.util.SparseArray,android.content.Context,int)", "- android.util.SparseArray e209202_2A742FA224BA8A2A(android.util.SparseArray,android.content.Context,java.util.Map,int)", "- android.util.SparseArray f209202_2A742FA224BA8A2A(android.util.SparseArray,[B,int)", "- android.util.SparseArray g209202_2A742FA224BA8A2A(android.util.SparseArray,android.content.Context,java.util.Map,int)", "- android.util.SparseArray h209202_2A742FA224BA8A2A(android.util.SparseArray,android.content.Context,java.util.Map,int)", "- android.util.SparseArray i209202_2A742FA224BA8A2A(android.util.SparseArray,android.content.Context,java.util.Map,java.lang.Object,java.lang.Object,java.lang.Object)", "- java.lang.String j209202_2A742FA224BA8A2A()", "- [B k209202_2A742FA224BA8A2A([B)", "- void l209202_2A742FA224BA8A2A(java.lang.reflect.InvocationHandler,java.util.concurrent.atomic.AtomicReference,java.lang.ClassLoader)", "- android.util.SparseArray m209202_2A742FA224BA8A2A(android.util.SparseArray,android.content.Context,java.util.Map)", "- android.util.SparseArray n209202_2A742FA224BA8A2A(android.util.SparseArray,[B,int,java.lang.String,long)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Herbaceous", "methods": []}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Blueberry", "methods": ["- int a([B,int,char)", "- java.lang.String a(int)", "- com.tencent.turingfd.sdk.ams.ga.Blueberry$do b(int)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Tangerine", "methods": ["- void a()", "- void b()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Bagasse", "methods": ["- java.lang.String toString()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Longan", "methods": ["- java.lang.Object a()", "- java.lang.Object b()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.this$if", "methods": []}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.abstract", "methods": ["- void a(java.lang.StringBuilder)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Cassiopeia$do", "methods": ["- com.tencent.turingfd.sdk.ams.ga.Draco$do a([B)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Peanut", "methods": ["- java.lang.String a()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Almond", "methods": ["- com.tencent.turingfd.sdk.ams.ga.Almond a(int)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingface.sdk.mfa.TNative$aa", "methods": ["- android.util.SparseArray a87_D2D99D56FECC73FD(android.util.SparseArray,android.content.Context,java.util.Map,java.util.Map,int)", "- android.util.SparseArray b87_D2D99D56FECC73FD(android.util.SparseArray,[B,java.util.Map,int)", "- android.util.SparseArray c87_D2D99D56FECC73FD(android.util.SparseArray,android.content.Context)", "- android.util.SparseArray d87_D2D99D56FECC73FD(android.util.SparseArray,android.content.Context,int)", "- android.util.SparseArray e87_D2D99D56FECC73FD(android.util.SparseArray,android.content.Context,java.util.Map,int)", "- android.util.SparseArray f87_D2D99D56FECC73FD(android.util.SparseArray,[B,int)", "- android.util.SparseArray g87_D2D99D56FECC73FD(android.util.SparseArray,android.content.Context,java.util.Map,int)", "- android.util.SparseArray h87_D2D99D56FECC73FD(android.util.SparseArray,android.content.Context,java.util.Map,int)", "- android.util.SparseArray i87_D2D99D56FECC73FD(android.util.SparseArray,android.content.Context,java.util.Map,java.lang.Object,java.lang.Object)", "- java.lang.String j87_D2D99D56FECC73FD()", "- [B k87_D2D99D56FECC73FD([B)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.ITuringDID", "methods": ["- java.lang.String getAIDCode()", "- java.lang.String getAIDTicket()", "- int getErrorCode()", "- long getExpiredTimestamp()", "- java.lang.String getOpenIdTicket()", "- java.lang.String getTAIDTicket()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Cassiopeia", "methods": ["- java.lang.String a(android.content.Context)", "- int b(android.content.Context)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Triangulum", "methods": ["- java.lang.String a([B)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Nectarine", "methods": []}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Hydra", "methods": ["- java.lang.String a(java.lang.String,java.lang.String,java.lang.String)", "- java.util.List a()", "- java.lang.String b()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Nectarine$do", "methods": ["- java.lang.Object a()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Aquila", "methods": ["- void a(int,long)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Carambola", "methods": ["- [Ljava.util.regex.Pattern; a()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.UrsaMajor", "methods": ["- int a(android.content.Context)", "- java.lang.String a()", "- int b(android.content.Context)", "- java.lang.String b()", "- java.lang.String c()", "- java.lang.String c(android.content.Context)", "- int d(android.content.Context)", "- boolean e(android.content.Context)", "- java.lang.String f(android.content.Context)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.ITuringDeviceInfoProvider", "methods": ["- java.lang.String getAndroidId()", "- java.lang.String getImei()", "- java.lang.String getImsi()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Hickory", "methods": ["- com.tencent.turingfd.sdk.ams.ga.Norma a()", "- void a(com.tencent.turingfd.sdk.ams.ga.Lynx)", "- void a(com.tencent.turingfd.sdk.ams.ga.Lyra)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Cranberry", "methods": ["- void a(java.util.HashMap,java.lang.String,java.lang.String,long,com.tencent.turingfd.sdk.ams.ga.Andromeda,int)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.break", "methods": ["- int a(android.content.Context)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Quarenden", "methods": ["- long a()", "- android.content.SharedPreferences a(android.content.Context)", "- java.lang.String a(java.lang.String)", "- void a(android.content.Context,java.util.Map)", "- java.lang.String b(android.content.Context,java.lang.String)", "- long a(android.content.Context,java.lang.String)", "- com.tencent.turingfd.sdk.ams.ga.Phoenix a(android.content.Context,int)", "- void a(long)", "- void a(android.content.Context,long)", "- void a(android.content.Context,java.lang.String,java.lang.String)", "- void a(android.content.Context,java.lang.String,java.lang.String,boolean)", "- void a(android.content.Context,java.util.Map,boolean)", "- com.tencent.turingfd.sdk.ams.ga.Pineapple b(android.content.Context)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Draco$do", "methods": []}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Melon", "methods": ["- java.lang.String a(java.lang.String,java.lang.String,java.lang.String)", "- java.lang.String a([B)", "- java.lang.String a([B,java.lang.String)", "- [B a(java.lang.String)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.instanceof", "methods": []}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Arbutus", "methods": ["- byte a(android.content.Context)", "- java.lang.String a()", "- boolean b(android.content.Context)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Vulpecula", "methods": ["- com.tencent.turingfd.sdk.ams.ga.Almond a(android.content.Context)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Ginkgo", "methods": ["- com.tencent.turingfd.sdk.ams.ga.Norma a()", "- void a(com.tencent.turingfd.sdk.ams.ga.Lynx)", "- void a(com.tencent.turingfd.sdk.ams.ga.Lyra)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.TuringSDK", "methods": ["- com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder createConf(android.content.Context,com.tencent.turingfd.sdk.ams.ga.ITuringPrivacyPolicy)", "- java.lang.String getVersionInfo()", "- int init()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Marc$do$do", "methods": ["- void run()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Eridanus", "methods": ["- boolean a(com.tencent.turingfd.sdk.ams.ga.Syrup)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Nectarine$if", "methods": ["- com.tencent.turingfd.sdk.ams.ga.Syrup a(android.content.Context)", "- com.tencent.turingfd.sdk.ams.ga.Syrup a(android.content.Context,com.tencent.turingfd.sdk.ams.ga.Sultana)", "- void handleMessage(android.os.Message)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Pear$do", "methods": ["- boolean userAgreement()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.super", "methods": ["- com.tencent.turingfd.sdk.ams.ga.Norma a()", "- void a(com.tencent.turingfd.sdk.ams.ga.Lynx)", "- void a(com.tencent.turingfd.sdk.ams.ga.Lyra)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Fig", "methods": ["- void a(com.tencent.turingfd.sdk.ams.ga.Lynx)", "- void a(com.tencent.turingfd.sdk.ams.ga.Lyra)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Lynx", "methods": ["- byte a(byte,int,boolean)", "- double a(double,int,boolean)", "- float a(float,int,boolean)", "- int a(int,int,boolean)", "- long a(long,int,boolean)", "- com.tencent.turingfd.sdk.ams.ga.Norma a(com.tencent.turingfd.sdk.ams.ga.Norma,int,boolean)", "- java.lang.Object a(java.lang.Object,int,boolean)", "- java.util.HashMap a(java.util.Map,int,boolean)", "- short a(short,int,boolean)", "- void a()", "- void a(byte)", "- void a(int)", "- boolean a(boolean,int,boolean)", "- [B a(int,boolean)", "- java.lang.String b(int,boolean)", "- void b()", "- boolean b(int)", "- [Ljava.lang.Object; b(java.lang.Object,int,boolean)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Casaba", "methods": []}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Olive", "methods": ["- java.lang.Object a()", "- void a(java.lang.Object,long)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Cumquat", "methods": ["- com.tencent.turingfd.sdk.ams.ga.Date a(android.content.Context)", "- com.tencent.turingfd.sdk.ams.ga.Date a(android.content.Context,[B,com.tencent.turingfd.sdk.ams.ga.Core)", "- java.lang.String a(android.content.Context,int,com.tencent.turingfd.sdk.ams.ga.Andromeda,boolean,boolean)", "- void a()", "- void a(android.content.Context,com.tencent.turingfd.sdk.ams.ga.Core)", "- void a(android.content.Context,com.tencent.turingfd.sdk.ams.ga.Date)", "- [B a(android.content.Context,java.util.Map,com.tencent.turingfd.sdk.ams.ga.Core,boolean)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Haw", "methods": ["- com.tencent.turingfd.sdk.ams.ga.Norma a()", "- void a(com.tencent.turingfd.sdk.ams.ga.Lynx)", "- void a(com.tencent.turingfd.sdk.ams.ga.Lyra)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.extends", "methods": ["- [B a([B)", "- [B b([B)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Virgo", "methods": ["- void run()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Draco", "methods": []}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Lyra", "methods": ["- void a(byte,int)", "- void a(float,int)", "- void a(int)", "- void a(int,int)", "- void a(long,int)", "- void a(com.tencent.turingfd.sdk.ams.ga.Norma,int)", "- void a(java.lang.Object,int)", "- void a(java.lang.String,int)", "- void a(java.util.Collection,int)", "- void a(java.util.Map,int)", "- void a(short,int)", "- void a([B,int)", "- [B a()", "- void b(byte,int)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.else", "methods": ["- android.content.Context a()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Filbert", "methods": ["- com.tencent.turingfd.sdk.ams.ga.Norma a()", "- void a(com.tencent.turingfd.sdk.ams.ga.Lynx)", "- void a(com.tencent.turingfd.sdk.ams.ga.Lyra)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Mandarin", "methods": ["- int describeContents()", "- void writeToParcel(android.os.Parcel,int)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.ComaBerenices", "methods": ["- long a(java.io.InputStream,java.io.OutputStream)", "- void a(java.io.Closeable)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.GalacticCore", "methods": ["- java.lang.String a()", "- java.lang.String a(android.content.Context)", "- java.lang.String a(java.lang.String,java.lang.String,java.util.regex.Pattern,java.lang.String)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Ara$do", "methods": []}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Bergamot", "methods": ["- java.lang.String a(android.content.Context)", "- java.lang.String a(android.content.Context,java.lang.String)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.volatile", "methods": ["- java.lang.String a(android.content.Context)", "- java.lang.String a(android.content.Context,java.lang.String)", "- boolean a()", "- java.lang.String b(android.content.Context)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Lichee", "methods": []}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Cherry", "methods": ["- java.lang.StringBuilder a(java.lang.String)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Codlin", "methods": []}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.volatile$do", "methods": []}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Marc$do", "methods": ["- void onServiceConnected(android.content.ComponentName,android.os.IBinder)", "- void onServiceDisconnected(android.content.ComponentName)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Pomelo", "methods": ["- java.lang.String a(long,long)", "- void a(com.tencent.turingfd.sdk.ams.ga.Pomelo)", "- int a(com.tencent.turingfd.sdk.ams.ga.Pineapple)", "- com.tencent.turingfd.sdk.ams.ga.Pineapple a(android.content.Context)", "- com.tencent.turingfd.sdk.ams.ga.Pineapple a(android.content.Context,boolean,int)", "- com.tencent.turingfd.sdk.ams.ga.Pineapple a(android.content.Context,boolean,boolean,int)", "- void a()", "- void a(com.tencent.turingfd.sdk.ams.ga.Pineapple,boolean)", "- com.tencent.turingfd.sdk.ams.ga.Pineapple b(android.content.Context,boolean,int)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Lacerta", "methods": []}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.ITuringPrivacyPolicy", "methods": ["- boolean userAgreement()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Raspberry", "methods": ["- long a(android.content.Context)", "- com.tencent.turingfd.sdk.ams.ga.synchronized a([B)", "- java.lang.String a()", "- boolean a(int)", "- [B a(android.content.Context,boolean)", "- void b()", "- void b(android.content.Context)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.static", "methods": ["- com.tencent.turingfd.sdk.ams.ga.Norma a()", "- void a(com.tencent.turingfd.sdk.ams.ga.Lynx)", "- void a(com.tencent.turingfd.sdk.ams.ga.Lyra)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Cepheus", "methods": ["- com.tencent.turingfd.sdk.ams.ga.Almond a(android.content.Context)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Bullace", "methods": ["- java.lang.Object a(java.lang.Class,java.lang.String,java.lang.Object)", "- java.lang.Object a(java.lang.Class,java.lang.String,[Ljava.lang.Class;,java.lang.Object,[Ljava.lang.Object;)", "- java.lang.reflect.Method a(java.lang.Class,java.lang.String,[Ljava.lang.Class;)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Mangosteen", "methods": ["- void a(java.security.cert.X509Certificate)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.TNative$aa$bb", "methods": ["- void onServiceConnected(android.content.ComponentName,android.os.IBinder)", "- void onServiceDisconnected(android.content.ComponentName)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Ara", "methods": ["- void a(java.io.Closeable)", "- boolean a(java.io.File)", "- boolean a(java.lang.String,[B,boolean)", "- [B a(java.lang.String)", "- [B a(java.lang.String,int)", "- [B a(java.lang.String,boolean)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Sapodilla", "methods": ["- java.lang.String a(android.content.Context)", "- void a(android.content.Context,java.lang.String)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.switch", "methods": ["- java.lang.String a()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Marc", "methods": ["- com.tencent.turingfd.sdk.ams.ga.Loquat a()", "- com.tencent.turingfd.sdk.ams.ga.Loquat a(android.content.Context)", "- com.tencent.turingfd.sdk.ams.ga.Marc$if a([B)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Seedless", "methods": ["- java.lang.String getAIDCode()", "- java.lang.String getAIDTicket()", "- int getErrorCode()", "- long getExpiredTimestamp()", "- java.lang.String getOpenIdTicket()", "- java.lang.String getTAIDTicket()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Crux$do", "methods": []}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Marc$if", "methods": []}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Persimmon", "methods": []}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Apricot", "methods": ["- java.lang.Object a(android.util.SparseArray,int,java.lang.Class)", "- [B a(android.util.SparseArray)", "- int b(android.util.SparseArray)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder", "methods": ["- java.lang.String A(com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder)", "- int B(com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder)", "- java.lang.String C(com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder)", "- java.util.Map D(com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder)", "- android.content.Context a(com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder)", "- java.lang.String b(com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder)", "- int c(com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder)", "- boolean d(com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder)", "- java.lang.String e(com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder)", "- java.lang.String f(com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder)", "- boolean g(com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder)", "- boolean h(com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder)", "- boolean i(com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder)", "- boolean j(com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder)", "- com.tencent.turingfd.sdk.ams.ga.ITuringPrivacyPolicy k(com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder)", "- com.tencent.turingfd.sdk.ams.ga.ITuringDeviceInfoProvider l(com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder)", "- int m(com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder)", "- com.tencent.turingfd.sdk.ams.ga.ITuringPkgProvider n(com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder)", "- com.tencent.turingfd.sdk.ams.ga.ITuringIoTFeatureMap o(com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder)", "- boolean p(com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder)", "- boolean q(com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder)", "- boolean r(com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder)", "- boolean s(com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder)", "- boolean t(com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder)", "- boolean u(com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder)", "- boolean v(com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder)", "- boolean w(com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder)", "- long x(com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder)", "- int y(com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder)", "- java.lang.String z(com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder)", "- com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder appid(java.lang.String)", "- com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder autoRequestBg(boolean)", "- com.tencent.turingfd.sdk.ams.ga.TuringSDK build()", "- com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder channel(int)", "- com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder clientBuildNo(int)", "- com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder clientChannel(java.lang.String)", "- com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder clientLc(java.lang.String)", "- com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder clientMetaDataMap(java.util.Map)", "- com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder clientVersion(java.lang.String)", "- com.tencent.turingfd.sdk.ams.ga.TuringSDK$Builder disableAppVirusStateCloudCheck()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingface.sdk.mfa.TNative$aa$bb", "methods": ["- void onServiceConnected(android.content.ComponentName,android.os.IBinder)", "- void onServiceDisconnected(android.content.ComponentName)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Avocado", "methods": ["- com.tencent.turingfd.sdk.ams.ga.Almond a(android.content.Context)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.catch", "methods": ["- int a(int,boolean,int)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Loquat", "methods": ["- com.tencent.turingfd.sdk.ams.ga.Loquat a(int)", "- com.tencent.turingfd.sdk.ams.ga.Loquat a(int,int)", "- java.lang.String toString()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Octans", "methods": ["- com.tencent.turingfd.sdk.ams.ga.Norma a([B,com.tencent.turingfd.sdk.ams.ga.Norma,boolean)", "- [B a(com.tencent.turingfd.sdk.ams.ga.Norma)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Sorgo", "methods": ["- com.tencent.turingfd.sdk.ams.ga.Sorgo a(int)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.this", "methods": ["- [B a(java.lang.String,int)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Norma", "methods": ["- com.tencent.turingfd.sdk.ams.ga.Norma a()", "- void a(com.tencent.turingfd.sdk.ams.ga.Lynx)", "- void a(com.tencent.turingfd.sdk.ams.ga.Lyra)", "- java.lang.String toString()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Phoenix", "methods": ["- void a(java.lang.Object)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Chamaeleon", "methods": ["- android.os.IBinder asBinder()", "- boolean onTransact(int,android.os.Parcel,android.os.Parcel,int)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Scorpius", "methods": ["- int a()", "- java.util.Locale a(int)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Grape", "methods": []}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.throw", "methods": ["- com.tencent.turingfd.sdk.ams.ga.Norma a()", "- void a(com.tencent.turingfd.sdk.ams.ga.Lynx)", "- void a(com.tencent.turingfd.sdk.ams.ga.Lyra)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Sugarcane", "methods": ["- int a()", "- void a(com.tencent.turingfd.sdk.ams.ga.Pear)", "- int b(com.tencent.turingfd.sdk.ams.ga.Pear)", "- java.lang.String b()", "- int c(com.tencent.turingfd.sdk.ams.ga.Pear)", "- void d(com.tencent.turingfd.sdk.ams.ga.Pear)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Bennet", "methods": ["- java.lang.String a(android.os.IBinder)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Serpens", "methods": ["- com.tencent.turingfd.sdk.ams.ga.Pyxis a(android.content.Context)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.TuringIDService", "methods": ["- com.tencent.turingfd.sdk.ams.ga.ITuringDID getTuringDID(android.content.Context)", "- void getTuringDIDAsync(android.content.Context,com.tencent.turingfd.sdk.ams.ga.ITuringDIDCallback)", "- com.tencent.turingfd.sdk.ams.ga.ITuringDID getTuringDIDCached(android.content.Context)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Crux$do$do", "methods": ["- int a()", "- int a(int)", "- android.os.IBinder asBinder()", "- int b(int)", "- boolean c(int)", "- com.tencent.turingfd.sdk.ams.ga.Mandarin d(int)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Mango", "methods": []}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.throws", "methods": ["- java.lang.String a(java.util.HashMap)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.ITuringPkgProvider", "methods": ["- java.util.List getPkgs()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Codlin$do", "methods": ["- void a(com.tencent.turingfd.sdk.ams.ga.native)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Foxnut", "methods": ["- com.tencent.turingfd.sdk.ams.ga.Norma a()", "- void a(com.tencent.turingfd.sdk.ams.ga.Lynx)", "- void a(com.tencent.turingfd.sdk.ams.ga.Lyra)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Gemini", "methods": ["- java.lang.String a(java.lang.String)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Pear", "methods": ["- void a()", "- void a(android.content.Context)", "- com.tencent.turingfd.sdk.ams.ga.Equuleus b()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Andromeda", "methods": ["- java.lang.String a()", "- void a(int,long)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Solar$do", "methods": ["- java.lang.Object a()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Canesatici", "methods": ["- int a()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Sculptor", "methods": ["- int a()", "- java.util.Locale a(int)", "- int hashCode()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.continue", "methods": ["- void a(com.tencent.turingfd.sdk.ams.ga.Lynx)", "- void a(com.tencent.turingfd.sdk.ams.ga.Lyra)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Syrup", "methods": ["- com.tencent.turingfd.sdk.ams.ga.Syrup a(int)", "- boolean a()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.const", "methods": []}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Raspberry$do", "methods": ["- boolean a(com.tencent.turingfd.sdk.ams.ga.Syrup)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Bilberry", "methods": ["- java.lang.String a(java.util.Set)", "- java.util.List a(com.tencent.turingfd.sdk.ams.ga.ITuringPkgProvider)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.interface", "methods": ["- java.lang.String a([B)", "- java.lang.String a([I)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Dorado", "methods": []}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.strictfp", "methods": ["- java.lang.String a()", "- int b()"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Leo", "methods": ["- java.lang.String a(java.lang.String,int)"]}
|
||||
{"event": "turing-class", "name": "com.tencent.turingfd.sdk.ams.ga.Crux", "methods": ["- int a()", "- int a(int)", "- int b(int)", "- boolean c(int)", "- com.tencent.turingfd.sdk.ams.ga.Mandarin d(int)"]}
|
||||
{"event": "turing-class", "name": "[Lcom.tencent.turingfd.sdk.ams.ga.native;", "methods": []}
|
||||
{"event": "turing-count", "n": 166}
|
||||
@@ -0,0 +1 @@
|
||||
{"event": "turing-enc-hooks", "n": 11}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,77 @@
|
||||
'use strict';
|
||||
function emit(row) { try { send(row); } catch (e) {} }
|
||||
function btOk(ctx) { try { return Thread.backtrace(ctx, Backtracer.ACCURATE).slice(0, 10).map(a => { const m = Process.findModuleByAddress(a); return m ? m.name + '!' + a.sub(m.base) : a.toString(); }).join(' <- '); } catch (e) { return ''; } }
|
||||
const PREF = [0x57, 0x18, 0x82, 0xcf];
|
||||
let fired = false;
|
||||
function hexOfBytes(arr, max) { try { return Array.from(Java.array('byte', arr).slice(0, max || 96)).map(b => (b & 0xff).toString(16).padStart(2, '0')).join(''); } catch (e) { return '<err>'; } }
|
||||
// ===== SSL_write magic =====
|
||||
for (const mod of Process.enumerateModules()) {
|
||||
let addr = null;
|
||||
try { addr = mod.getExportByName('SSL_write'); } catch (e) {}
|
||||
if (addr === null) continue;
|
||||
Interceptor.attach(addr, {
|
||||
onEnter(args) {
|
||||
if (fired) return;
|
||||
const buf = args[1], num = args[2].toInt32();
|
||||
if (num < 40) return;
|
||||
try {
|
||||
const u = new Uint8Array(buf.readByteArray(Math.min(num, 20000)));
|
||||
for (let i = 0; i + 4 < u.length; i++) {
|
||||
if (u[i] === PREF[0] && u[i+1] === PREF[1] && u[i+2] === PREF[2] && u[i+3] === PREF[3]) {
|
||||
fired = true;
|
||||
const n = Math.min(num, 20000);
|
||||
const hex = Array.from(new Uint8Array(buf.readByteArray(n))).map(x => x.toString(16).padStart(2, '0')).join('');
|
||||
emit({ event: 'ssl-magic', module: mod.name, num, off: i, full: hex, bt: btOk(this.context) });
|
||||
return;
|
||||
}
|
||||
}
|
||||
} catch (e) {}
|
||||
},
|
||||
});
|
||||
}
|
||||
// ===== turing encrypt bridge =====
|
||||
setTimeout(() => {
|
||||
try {
|
||||
Java.perform(() => {
|
||||
const targets = [
|
||||
{ cls: 'com.tencent.turingfd.sdk.ams.ga.native', methods: ['a'] },
|
||||
{ cls: 'com.tencent.turingfd.sdk.ams.ga.TNative$aa', methods: ['k209202_2A742FA224BA8A2A', 'k87_D2D99D56FECC73FD'] },
|
||||
{ cls: 'com.tencent.turingfd.sdk.ams.ga.Seedless', methods: ['getAIDCode', 'getAIDTicket'] },
|
||||
];
|
||||
let hooked = 0;
|
||||
for (const t of targets) {
|
||||
let K = null;
|
||||
try { K = Java.use(t.cls); } catch (e) { continue; }
|
||||
for (const mn of t.methods) {
|
||||
try {
|
||||
K[mn].overloads.forEach(ov => {
|
||||
ov.implementation = function () {
|
||||
try {
|
||||
const args = Array.from(arguments).map((a, ix) => {
|
||||
try {
|
||||
if (a === null || a === undefined) return String(a);
|
||||
if (ov.argumentTypes[ix] && ov.argumentTypes[ix].className === 'byte[]') return 'byte[' + Java.array('byte', a).length + ']:' + hexOfBytes(a, 80);
|
||||
const s = String(a);
|
||||
return s.length > 160 ? s.slice(0, 80) + '…(' + s.length + ')' : s;
|
||||
} catch (e2) { return '<a>'; }
|
||||
});
|
||||
emit({ event: 'turing-enc', cls: t.cls, method: mn, phase: 'enter', args: args.slice(0, 4) });
|
||||
} catch (e3) {}
|
||||
const r = ov.apply(this, arguments);
|
||||
try {
|
||||
if (r !== null && r !== undefined) {
|
||||
if (r instanceof Java.use('byte[]')) emit({ event: 'turing-enc', cls: t.cls, method: mn, phase: 'leave', ret: 'byte[' + Java.array('byte', r).length + ']:' + hexOfBytes(r, 100) });
|
||||
else { const s = String(r); emit({ event: 'turing-enc', cls: t.cls, method: mn, phase: 'leave', ret: s.length > 160 ? s.slice(0, 80) + '…(' + s.length + ')' : s }); }
|
||||
}
|
||||
} catch (e4) {}
|
||||
return r;
|
||||
};
|
||||
hooked++;
|
||||
});
|
||||
} catch (e5) {}
|
||||
}
|
||||
}
|
||||
emit({ event: 'turing-enc-hooks', n: hooked });
|
||||
});
|
||||
} catch (e) { emit({ event: 'turing-enc-err', msg: String(e).slice(0, 160) }); }
|
||||
}, 2500);
|
||||
@@ -0,0 +1,67 @@
|
||||
'use strict';
|
||||
function emit(row) { try { send(row); } catch (e) {} }
|
||||
function btOk(ctx) { try { return Thread.backtrace(ctx, Backtracer.ACCURATE).slice(0, 10).map(a => { const m = Process.findModuleByAddress(a); return m ? m.name + '!' + a.sub(m.base) : a.toString(); }).join(' <- '); } catch (e) { return ''; } }
|
||||
const MAGIC = new Uint8Array([0x57, 0x18, 0x82, 0xcf, 0x66, 0x4b, 0xb3, 0x94, 0x01, 0xee]);
|
||||
let done = false;
|
||||
function scanAndDump(p, n) {
|
||||
const hits = [];
|
||||
try {
|
||||
const u = new Uint8Array(p.readByteArray(n));
|
||||
for (let i = 0; i + 10 < n; i++) {
|
||||
let ok = true;
|
||||
for (let j = 0; j < 10; j++) if (u[i+j] !== MAGIC[j]) { ok = false; break; }
|
||||
if (ok) hits.push(i);
|
||||
}
|
||||
} catch (e) {}
|
||||
return hits;
|
||||
}
|
||||
for (const mod of Process.enumerateModules()) {
|
||||
let addr = null;
|
||||
try { addr = mod.getExportByName('SSL_write'); } catch (e) {}
|
||||
if (addr === null) continue;
|
||||
Interceptor.attach(addr, {
|
||||
onEnter(args) {
|
||||
if (done) return;
|
||||
const buf = args[1], num = args[2].toInt32();
|
||||
if (num < 40) return;
|
||||
try {
|
||||
const head = new Uint8Array(buf.readByteArray(Math.min(num, 60)));
|
||||
let hit = -1;
|
||||
for (let i = 0; i + 10 < head.length; i++) {
|
||||
let ok = true;
|
||||
for (let j = 0; j < 10; j++) if (head[i+j] !== MAGIC[j]) { ok = false; break; }
|
||||
if (ok) { hit = i; break; }
|
||||
}
|
||||
if (hit < 0) return;
|
||||
done = true;
|
||||
// 1) full ssl buffer
|
||||
const n = Math.min(num, 20000);
|
||||
const hex = Array.from(new Uint8Array(buf.readByteArray(n))).map(x => x.toString(16).padStart(2, '0')).join('');
|
||||
emit({ event: 'magic-dump', stage: 'ssl', module: mod.name, num, full: hex, bt: btOk(this.context) });
|
||||
// 2) co-located: scan the turing modules + a few anonymous big regions for other magic instances + ascii around
|
||||
setTimeout(() => {
|
||||
try {
|
||||
const tg = ['libturingga.so', 'libturingmfa.so', 'libudbauthunify.so', 'libturingsdk'];
|
||||
for (const m of Process.enumerateModules()) {
|
||||
if (!tg.some(t => m.name.indexOf(t) >= 0)) continue;
|
||||
const hits = scanAndDump(m.base, Math.min(m.size, 4096 * 1024));
|
||||
for (const off of hits.slice(0, 20)) {
|
||||
const at = m.base.add(off);
|
||||
const pre = Array.from(new Uint8Array(at.readByteArray(64))).map(x => x.toString(16).padStart(2, '0')).join('');
|
||||
const around = [];
|
||||
for (let k = -64; k < 2048; k += 64) {
|
||||
try {
|
||||
const chunk = Array.from(new Uint8Array(at.add(k).readByteArray(64)));
|
||||
const s = chunk.map(c => (c >= 32 && c < 127) ? String.fromCharCode(c) : '.').join('');
|
||||
if (/[A-Za-z0-9_\-\.\/:]{12,}/.test(s)) around.push({ k, s });
|
||||
} catch (e) {}
|
||||
}
|
||||
emit({ event: 'magic-dump', stage: 'co-located', mod: m.name, off: '0x' + off.toString(16), pre, around: around.slice(0, 12) });
|
||||
}
|
||||
}
|
||||
} catch (e) { emit({ event: 'magic-dump', stage: 'co-err', msg: String(e).slice(0, 120) }); }
|
||||
}, 0);
|
||||
} catch (e) {}
|
||||
},
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
'use strict';
|
||||
function emit(row) { try { send(row); } catch (e) {} }
|
||||
function btOk(ctx) { try { return Thread.backtrace(ctx, Backtracer.ACCURATE).slice(0, 40).map(a => { const m = Process.findModuleByAddress(a); return m ? m.name + '!' + a.sub(m.base) : a.toString(); }).join(' <- '); } catch (e) { return ''; } }
|
||||
let fired = false, writes = 0;
|
||||
for (const mod of Process.enumerateModules()) {
|
||||
let addr = null;
|
||||
try { addr = mod.getExportByName('SSL_write'); } catch (e) {}
|
||||
if (addr === null) continue;
|
||||
Interceptor.attach(addr, {
|
||||
onEnter(args) {
|
||||
writes++;
|
||||
if (fired) return;
|
||||
if (writes % 40 === 0) emit({ event: 'ssl-heartbeat', module: mod.name, writes });
|
||||
const buf = args[1], num = args[2].toInt32();
|
||||
if (num < 60) return;
|
||||
try {
|
||||
const u = new Uint8Array(buf.readByteArray(Math.min(num, 30000)));
|
||||
// 编码成可检索串 (简化: 只查 ascii 子串)
|
||||
let s = '';
|
||||
for (let i = 0; i < u.length; i++) s += (u[i] >= 32 && u[i] < 127) ? String.fromCharCode(u[i]) : '.';
|
||||
if (s.indexOf('dfpReport') < 0 && s.indexOf('hyudbwebuif') < 0) return;
|
||||
fired = true;
|
||||
const hex = Array.from(u).map(x => x.toString(16).padStart(2, '0')).join('');
|
||||
emit({ event: 'str-magic', module: mod.name, num, full: hex, bt: btOk(this.context) });
|
||||
// ---- co-located: 命中后立即在 turing 区域 + 全堆扫第二处魔数/明文特征 ----
|
||||
const MAG = [0x57, 0x18, 0x82, 0xcf, 0x66, 0x4b, 0xb3, 0x94, 0x01, 0xee];
|
||||
setTimeout(() => {
|
||||
try {
|
||||
const regions = [];
|
||||
for (const m of Process.enumerateModules()) {
|
||||
if (/turing|Turin/.test(m.name)) regions.push({ name: m.name, p: m.base, n: Math.min(m.size, 2 * 1024 * 1024) });
|
||||
}
|
||||
// 附加: 加载库里的映射区域 (含 .turing.dat mmap) — 用 Process.enumerateRanges 'r--' 太广, 只挑 map 文件路径含 turing 的
|
||||
for (const r of Process.enumerateRanges('r--')) {
|
||||
try {
|
||||
const f = r.file ? r.file.path : '';
|
||||
if (/turing|\.dat/.test(f) && !/\.so/.test(f)) regions.push({ name: f.slice(-40), p: r.base, n: Math.min(r.size, 512 * 1024) });
|
||||
} catch (e) {}
|
||||
}
|
||||
let nFound = 0;
|
||||
for (const rg of regions) {
|
||||
try {
|
||||
const buf = new Uint8Array(rg.p.readByteArray(rg.n));
|
||||
for (let i = 0; i + 10 < rg.n; i++) {
|
||||
let ok = true;
|
||||
for (let j = 0; j < 10; j++) if (buf[i+j] !== MAG[j]) { ok = false; break; }
|
||||
if (!ok) continue;
|
||||
nFound++;
|
||||
if (nFound > 12) break;
|
||||
// 邻域 ASCII 提取
|
||||
const as = [];
|
||||
for (let k = -128; k < 1024; k += 64) {
|
||||
try {
|
||||
const c = Array.from(new Uint8Array(rg.p.add(i + k).readByteArray(64)));
|
||||
const str = c.map(x => (x >= 32 && x < 127) ? String.fromCharCode(x) : '.').join('');
|
||||
if (/[A-Za-z0-9_\-\.\/:]{10,}/.test(str)) as.push({ k, s: str });
|
||||
} catch (e) {}
|
||||
}
|
||||
emit({ event: 'co-magic', mod: rg.name, off: '0x' + i.toString(16), ascii: as.slice(0, 10) });
|
||||
}
|
||||
} catch (e) {}
|
||||
}
|
||||
emit({ event: 'co-done', n: nFound, regions: regions.length });
|
||||
} catch (e) { emit({ event: 'co-err', msg: String(e).slice(0, 120) }); }
|
||||
}, 0);
|
||||
} catch (e) {}
|
||||
},
|
||||
});
|
||||
emit({ event: 'ssl-hooked', module: mod.name });
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
'use strict';
|
||||
function emit(row) { try { send(row); } catch (e) {} }
|
||||
function hexOfBytes(arr, max) {
|
||||
try { return Array.from(Java.array('byte', arr).slice(0, max || 96)).map(b => (b & 0xff).toString(16).padStart(2, '0')).join(''); } catch (e) { return '<err>'; }
|
||||
}
|
||||
setTimeout(() => {
|
||||
try {
|
||||
Java.perform(() => {
|
||||
const targets = [
|
||||
{ cls: 'com.tencent.turingfd.sdk.ams.ga.native', methods: ['a'] },
|
||||
{ cls: 'com.tencent.turingfd.sdk.ams.ga.TNative$aa', methods: ['k209202_2A742FA224BA8A2A', 'k87_D2D99D56FECC73FD', 'b209202_2A742FA224BA8A2A', 'f209202_2A742FA224BA8A2A'] },
|
||||
{ cls: 'com.tencent.turingfd.sdk.ams.ga.Seedless', methods: ['getAIDCode', 'getAIDTicket', 'getTAIDTicket', 'getOpenIdTicket'] },
|
||||
{ cls: 'com.tencent.turingfd.sdk.ams.ga.ITuringDID', methods: ['getAIDCode', 'getAIDTicket'] },
|
||||
];
|
||||
let hooked = 0;
|
||||
for (const t of targets) {
|
||||
let K = null;
|
||||
try { K = Java.use(t.cls); } catch (e) { continue; }
|
||||
for (const mn of t.methods) {
|
||||
try {
|
||||
K[mn].overloads.forEach(ov => {
|
||||
ov.implementation = function () {
|
||||
try {
|
||||
const args = Array.from(arguments).map((a, ix) => {
|
||||
try {
|
||||
if (a === null || a === undefined) return String(a);
|
||||
if (ov.argumentTypes[ix] && ov.argumentTypes[ix].className === 'byte[]') {
|
||||
return 'byte[' + Java.array('byte', a).length + ']:' + hexOfBytes(a, 80);
|
||||
}
|
||||
const s = String(a);
|
||||
return s.length > 160 ? s.slice(0, 80) + '…(' + s.length + ')' : s;
|
||||
} catch (e2) { return '<a>'; }
|
||||
});
|
||||
emit({ event: 'turing-enc', cls: t.cls, method: mn, phase: 'enter', args: args.slice(0, 4) });
|
||||
} catch (e3) {}
|
||||
const r = ov.apply(this, arguments);
|
||||
try {
|
||||
if (r !== null && r !== undefined) {
|
||||
if (r instanceof Java.use('byte[]')) emit({ event: 'turing-enc', cls: t.cls, method: mn, phase: 'leave', ret: 'byte[' + Java.array('byte', r).length + ']:' + hexOfBytes(r, 96) });
|
||||
else { const s = String(r); emit({ event: 'turing-enc', cls: t.cls, method: mn, phase: 'leave', ret: s.length > 160 ? s.slice(0, 80) + '…(' + s.length + ')' : s }); }
|
||||
}
|
||||
} catch (e4) {}
|
||||
return r;
|
||||
};
|
||||
hooked++;
|
||||
});
|
||||
} catch (e5) {}
|
||||
}
|
||||
}
|
||||
emit({ event: 'turing-enc-hooks', n: hooked });
|
||||
});
|
||||
} catch (e) { emit({ event: 'turing-enc-err', msg: String(e).slice(0, 200) }); }
|
||||
}, 3000);
|
||||
@@ -0,0 +1,32 @@
|
||||
'use strict';
|
||||
function emit(row) { try { send(row); } catch (e) {} }
|
||||
setTimeout(() => {
|
||||
try {
|
||||
Java.perform(() => {
|
||||
const hits = [];
|
||||
Java.enumerateLoadedClasses({
|
||||
onMatch(name) {
|
||||
if (/turing|Turing|turingfd|TuringFd/.test(name)) hits.push(name);
|
||||
},
|
||||
onComplete() {
|
||||
for (const cn of hits) {
|
||||
try {
|
||||
const K = Java.use(cn);
|
||||
const ms = K.class.getDeclaredMethods();
|
||||
const sigs = [];
|
||||
for (const m of ms) {
|
||||
let ret = '?';
|
||||
try { ret = m.getReturnType().getName(); } catch (e) {}
|
||||
const pts = Array.from(m.getParameterTypes()).map(t => { try { return t.getName(); } catch (e) { return '?'; } });
|
||||
const isNative = m.isNative ? 'N' : '-';
|
||||
sigs.push(isNative + ' ' + ret + ' ' + m.getName() + '(' + pts.join(',') + ')');
|
||||
}
|
||||
emit({ event: 'turing-class', name: cn, methods: sigs.slice(0, 40) });
|
||||
} catch (e) {}
|
||||
}
|
||||
emit({ event: 'turing-count', n: hits.length });
|
||||
},
|
||||
});
|
||||
});
|
||||
} catch (e) { emit({ event: 'turing-err', msg: String(e).slice(0, 160) }); }
|
||||
}, 3500);
|
||||
Reference in New Issue
Block a user