dy设备deviceid iid注册分析

清楚缓存,重新打开app, 点击同意按钮,会触发设备注册;

在这里插入图片描述
很明显是一个post包,device_register
可以看到请求体加密了 那么 请求体是什么呢?

很老版本思路:都是直接明文注册
较老版本思路:在反编译后请求体通过一个bool来判断,是否走,ttencrypt;
这个地方可以hook明文也可以直接修改bool值,让抓包直接抓到明文;

正常情况下,是将请求体压缩后,走ttencrypt,进行密文注册;

我们接着往下走,看新版是否有变化;


看下params参数:

cdid:

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
只找到个从SharedPreferences xml拿,没有就uuid;

openudid:

在这里插入图片描述


x_ss_stub:

这个值就很普通了,java层,post包的时候会把data转成字符串进行md5的一个值;

在这里插入图片描述


搜出来个这玩意,兄弟们想想这是干啥,注册,激活。。
在这里插入图片描述

ttencrypt:

搜一下:/service/2/device_register/

在这里插入图片描述

private boolean LIZ(String str, JSONObject jSONObject) {
        String[] strArr;
        boolean z;
        Throwable th;
        ChangeQuickRedirect changeQuickRedirect;
        String str2;
        ChangeQuickRedirect changeQuickRedirect2;
        ChangeQuickRedirect changeQuickRedirect3;
        l4Z l4z;
        String C;
        boolean z2;
        ChangeQuickRedirect changeQuickRedirect4 = LIZ;
        if (PatchProxy.isEnable(changeQuickRedirect4)) {
            PatchProxyResult proxy = PatchProxy.proxy(new Object[]{str, jSONObject}, this, changeQuickRedirect4, false, 5);
            if (proxy.isSupported) {
                return ((Boolean) proxy.result).booleanValue();
            }
        }
        try {
            byte[] bytes = str.getBytes("UTF-8");
            System.currentTimeMillis();
            ChangeQuickRedirect changeQuickRedirect5 = l5V.LIZ;
            if (PatchProxy.isEnable(changeQuickRedirect5)) {
                PatchProxyResult proxy2 = PatchProxy.proxy(PatchProxy.getEmptyArgs(), null, changeQuickRedirect5, true, 1);
                if (proxy2.isSupported) {
                    strArr = (String[]) proxy2.result;
                    if (strArr == null) {
                        for (String str3 : strArr) {
                            byte[] bArr = (byte[]) bytes.clone();
                            if (!StringUtils.isEmpty(str3)) {
                                Logger.debug();
                                if (TextUtils.isEmpty(jSONObject.optString("device_id")) || TextUtils.isEmpty(jSONObject.optString("install_id"))) {
                                    z = true;
                                } else {
                                    z = false;
                                }
                                try {
                                    ChangeQuickRedirect changeQuickRedirect6 = LIZ;
                                    if (PatchProxy.isEnable(changeQuickRedirect6)) {
                                        PatchProxyResult proxy3 = PatchProxy.proxy(PatchProxy.getEmptyArgs(), this, changeQuickRedirect6, false, 7);
                                        if (proxy3.isSupported) {
                                            z2 = ((Boolean) proxy3.result).booleanValue();
                                        }
                                    }
                                    ChangeQuickRedirect changeQuickRedirect7 = l5V.LIZ;
                                    if (PatchProxy.isEnable(changeQuickRedirect7)) {
                                        PatchProxyResult proxy4 = PatchProxy.proxy(PatchProxy.getEmptyArgs(), null, changeQuickRedirect7, true, 4);
                                        if (proxy4.isSupported) {
                                            z2 = ((Boolean) proxy4.result).booleanValue();
                                        }
                                    }
                                    if (l5V.LIZJ != null) {
                                        z2 = l5V.LIZJ.LIZ();
                                    }
                                    try {
                                        if (str3.indexOf(63) < 0) {
                                            new StringBuilder();
                                            C = O.C(str3, "?");
                                        } else {
                                            new StringBuilder();
                                            C = O.C(str3, "&");
                                        }
                                        str2 = NetUtil.sendEncryptLog(C, bArr, this.LIZJ.LJIILL, false, (String[]) null, (Map) null, (String) null, z, false);
                                    } catch (RuntimeException unused) {
                                        l4Q.LIZ(Monitor.Key.register, Monitor.State.f_to_bytes);
                                        try {
                                            str2 = NetUtil.doPost(str3, bytes, true, "application/json; charset=utf-8", false, (Map) null, z, false);
                                            String C2 = O.C("device_register response: ", str2);
                                            changeQuickRedirect2 = l4T.LIZ;
                                            if (PatchProxy.isEnable(changeQuickRedirect2)) {
                                            }
                                            changeQuickRedirect3 = l4T.LIZ;
                                            if (PatchProxy.isEnable(changeQuickRedirect3)) {
                                            }
                                            l4z = l4T.LIZIZ;
                                            if (l4z != null) {
                                            }
                                            if (str2 != null) {
                                            }
                                            l4Q.LIZ(Monitor.Key.register, Monitor.State.f_resp_error);
                                        } catch (Throwable th2) {
                                            th = th2;
                                            l4Q.LIZ(Monitor.Key.register, Monitor.State.f_net);
                                            l5O l5o = this.LIZJ;
                                            changeQuickRedirect = l5O.LIZIZ;
                                            if (PatchProxy.isEnable(changeQuickRedirect)) {
                                            }
                                            if (th instanceof CommonHttpException) {
                                            }
                                        }
                                    }
                                    String C22 = O.C("device_register response: ", str2);
                                    changeQuickRedirect2 = l4T.LIZ;
                                    if (PatchProxy.isEnable(changeQuickRedirect2) || !PatchProxy.proxy(new Object[]{C22}, null, changeQuickRedirect2, true, 1).isSupported) {
                                        changeQuickRedirect3 = l4T.LIZ;
                                        if (PatchProxy.isEnable(changeQuickRedirect3)) {
                                            try {
                                            } catch (Throwable th3) {
                                                th = th3;
                                                l4Q.LIZ(Monitor.Key.register, Monitor.State.f_net);
                                                l5O l5o2 = this.LIZJ;
                                                changeQuickRedirect = l5O.LIZIZ;
                                                if (PatchProxy.isEnable(changeQuickRedirect)) {
                                                    PatchProxyResult proxy5 = PatchProxy.proxy(new Object[]{th}, l5o2, changeQuickRedirect, false, 21);
                                                    if (proxy5.isSupported) {
                                                        if (!((Boolean) proxy5.result).booleanValue()) {
                                                            throw th;
                                                        }
                                                    }
                                                }
                                                if (th instanceof CommonHttpException) {
                                                    int responseCode = ((CommonHttpException) th).getResponseCode();
                                                    if (l5o2.LJJIIJ) {
                                                        continue;
                                                    } else if (responseCode < 200) {
                                                        continue;
                                                    } else if (responseCode == 301) {
                                                        continue;
                                                    } else if (responseCode != 302) {
                                                        throw th;
                                                    }
                                                } else {
                                                    continue;
                                                }
                                            }
                                        }
                                        l4z = l4T.LIZIZ;
                                        if (l4z != null) {
                                            l4z.LIZ(C22, null);
                                        }
                                    }
                                    if (str2 != null || str2.length() == 0) {
                                        l4Q.LIZ(Monitor.Key.register, Monitor.State.f_resp_error);
                                    } else if (LIZ(new JSONObject(str2))) {
                                        return true;
                                    }
                                } catch (Throwable th4) {
                                    th = th4;
                                    l4Q.LIZ(Monitor.Key.register, Monitor.State.f_net);
                                    l5O l5o22 = this.LIZJ;
                                    changeQuickRedirect = l5O.LIZIZ;
                                    if (PatchProxy.isEnable(changeQuickRedirect)) {
                                    }
                                    if (th instanceof CommonHttpException) {
                                    }
                                }
                            }
                        }
                        return false;
                    }
                    throw new IllegalArgumentException("url is null");
                }
            }
            strArr = (l5V.LIZIZ == null || l5V.LIZIZ.length <= 0 || StringUtils.isEmpty(l5V.LIZIZ[0])) ? new String[]{O.C("https://", l5V.LIZLLL, "/service/2/device_register/"), O.C("https://", l5V.LIZLLL, "/service/2/device_register/")} : l5V.LIZIZ;
            if (strArr == null) {
            }
        } catch (Throwable unused2) {
            l4Q.LIZ(Monitor.Key.register, Monitor.State.f_exception);
            return false;
        }
    }

可以看到整个注册这个接口的流程;
在这里插入图片描述
这一段代码是核心,看到是发请求去了;

import com.ss.android.common.applog.NetUtil;

str2 = NetUtil.sendEncryptLog(C, bArr, this.LIZJ.LJIILL, false, (String[]) null, (Map) null, (String) null, z, false);

str2 = NetUtil.doPost(str3, bytes, true, "application/json; charset=utf-8", false, (Map) null, z, false);

这个时候,我们看出来已经和老版本有区别了,没有一个bool值来控制是否请求加密,而是直接去加密,若报错才会进行明文注册; 这是一点不同的地方;

doPost: 确实没啥东西;
在这里插入图片描述

sendEncryptLog:
在这里插入图片描述
在这里插入图片描述
如果包含str.contains(“/service/2/app_log/”)就去走ttEncrypt 加密,目前走else
在这里插入图片描述
else: 也是压缩 ttEncrypt 加密
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

ttEncrypt 该加密方式so层,libEncryptor.so

我们在看下,整体接口:
在这里插入图片描述
看到确实是发了很多接口,注册,激活,日志包等等;而且必须是六神注册,密文注册,这样设备才可用;

很明显的,device_register,app_alert ,app_log等等

为了权重更好,甚至注册完之后还需要发一些日志包,过一些验证码,提高设备权重;

  • 110
    点赞
  • 142
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
Spectral Analysis of Large Dimensional Random Matrices(Second Edition) Zhidong Bai, Jack W.Silverstein 详细介绍了大维随机矩阵的特征值分布理论This book is dedicated to Professor Calyampudi radhakrishna rao's 90th Birthday Professor UIf Grenander's 87th Birthday Professor Yongquan Yins 80th Birthday and to My wife, Xicun Dan, my sons Li and steve gang, and grandsons Yongji, and Yonglin Zhidong bai My children, Hila and Idan ck W. silverstein Preface to the second edition The ongoing developments being made in large dimensional data analysis continue to generate great interest in random matrix theory in both theoret ical investigations and applications in many disciplines. This has doubtlessly contributed to the significant demand for this monograph, resulting in its first printing being sold out. The authors have received many requests to publish a second edition of the book Since the publication of the first edition in 2006, many new results have been reported in the literature. However, due to limitations in space, we cannot include all new achievements in the second edition. In accordance with the needs of statistics and signal processing, we have added a new chapter on the limiting behavior of eigenvectors of large dimensional sample covariance matrices. To illustrate the application of rmt to wireless communications and statistical finance, we have added a chapter on these areas. Certain new developments are commented on throughout the book. Some typos and errors found in the first edition have been corrected The authors would like to express their appreciation to Ms Li Hong for her help in the preparation of the second edition. They would also like to thank Professors Ying-Chang Liang, Zhaoben Fang, Baoxue Zhang, and Shurong Zheng, and Mr Jiang Hu, for their valuable comments and suggestions. They also thank the copy editor, Mr. Hal Heinglein, for his careful reading, cor rections, and helpful suggestions. The first author would like to acknowledge the support from grants NSFC 10871036, NUS R-155-000-079-112, and R- 155-000-096-720 Changchun, China, and Singapore Zhidong Bai Cary, North Carolina, USA Jack w. silverstein March 2009 Preface to the first edition This monograph is an introductory book on the theory of random matri- Ces(RMT). The theory dates back to the early development of quantum mechanics in the 1940s and 1950s. In an attempt to explain the complex or- ganizational structure of heavy nuclei, E. Wigner, Professor of Mathematical Physics at Princeton University, argued that one should not compute energy levels from Schrodingers equation. Instead, one should imagine the complex nuclei system as a black box described by n x n Hamiltonian matrices with elements drawn from a probability distribution with only mild constraints dictated by symmetry considerations. Under these assumptions and a mild condition imposed on the probability measure in the space of matrices, one finds the joint probability density of the n eigenvalues. Based on this con sideration, Wigner established the well-known semicircular law. Since then RMT has been developed into a big research area in mathematical physics and probability. Its rapid development can be seen from the following statis tics from the mathscinet database under keyword Random Matrix on 10 June 2005(able0.1) Table 0.1 Publication numbers on rMT in 10 year periods since 1955 1955-19641965-19741975-19841985-199419952004 138 249 0.5 1205 Modern developments in computer science and computing facilities moti- vate ever widening applications of rmt to many areas In statistics, classical limit theorems have been found to be seriously in adequate in aiding in the analysis of very high dimensional data In the biological sciences, a DNA sequence can be as long as several billion trands. In financial research, the number of different stocks can be as large as tens of thousands In wireless communications. the number of users can be several million Preface to the first edition All of these areas are challenging classical statistics. Based on these needs the number of researchers on RMT is gradually increasing. The purpose of this monograph is to introduce the basic results and methodologies developed in RMT. We assume readers of this book are graduate students and beginning researchers who are interested in RMT. Thus, we are trying to provide the most advanced results with proofs using standard methods as detailed as we can After more than a half century, many different methodologies of RMT have been developed in the literature. Due to the limitation of our knowledge and length of the book, it is impossible to introduce all the procedures and results What we shall introduce in this book are those results obtained either under moment restrictions using the moment convergence theorem or the Stieltjes transform In an attempt at complementing the material presented in this book, we have listed some recent publications on rMt that we have not introduced The authors would like to express their appreciation to Professors Chen Mufa, Lin Qun, and Shi Ningzhong, and Ms Li hong for their encouragement Lnd help in the preparation of the manuscript. They would also like to thank Professors Zhang Baoxue, Lee Sungchul, Zheng Shurong, Zhou Wang, and Hu guorong for their valuable comments and suggestions Changchun. China Zhidong Bai Cary, North Carolina, USA Jack W. silverstein June 2005 Contents Preface to the Second edition Preface to the first edition 1 Introduction 1.1 Large Dimensional Data Analysis 1.2 Random Matrix Theory 1.2.1 Spectral Analysis of Large Dimensional Random matrices 1.2.2 Limits of Extreme Eigenvalues 1.2.3 Convergence Rate of the ESD 1144667 1.2.4 Circular law 1.2.5 CLT of Linear Spectral Statistics 1.2.6 Limiting Distributions of Extreme Eigenvalues and spacings 3 Methodologies 678999 1.3.1 Moment method 1.3.2 Stieltjes Transform 1.3.3 Orthogonal Polynomial Decomposition 1.3.4 Free Probability 13 2 Wigner Matrices and Semicircular Law 2. 1 Semicircular law by the moment Method 16 2.1.1 Moments of the Semicircular law 16 2.1.2 Some Lemmas in Combinatorics 16 2.1.3 Semicircular Law for the iid Case 2.2 Generalizations to the non-iid case 2.2.1 Proof of Theorem 2.9 2.3 Semicircular Law by the Stieltjes Transform 2.3.1 Stieltjes Transform of the Semicircular Law 31 2.3.2 Proof of Theorem 2.9 33 Contents 3 Sample Covariance Matrices and the Marcenko-Pastur Law 39 3.1 M-P Law for the iid Case 40 3.1.1 Moments of the M-p law 40 3.1.2 Some Lemmas on Graph Theory and Combinatorics 41 3.1. 3 M-P Law for the iid case 47 3.2 Generalization to the Non-iid Case 51 3.3 Proof of Theorem 3. 10 by the Stieltjes Transform 3.3.1 Stieltjes Transform of the M-P Law 3.3.2 Proof of Th 3.10 53 4 Product of wo random matrices 4.1 Main Results 60 4.2 Some Graph Theory and Combinatorial Results 61 4.3 Proof of theorem 4.1 68 4.3.1 Truncation of the ESd of Tn 68 4.3.2 Truncation, Centralization, and Rescaling of the X-variables 4.3.3 Completing the Proof 4.4 LSd of the F-Matrix 4.4.1 Generating Function for the LSD of SnTn 4.4.2 Completing the Proof of Theorem 4.10 4.5 Proof of Theorem 4.3 4.5.1 Truncation and centralization 4.5.2 Proof by the Stieltjes Transform 82 5 Limits of Extreme Eigenvalues 5.1 Limit of Extreme Eigenvalues of the Wigner Matrix 92 5.1.1 Sufficiency of Conditions of Theorem 5.1 93 5.1.2 Necessity of Conditions of Theorem 5.1 101 5.2 Limits of Extreme Eigenvalues of the Sample Covariance Matrix 105 5.2.1 Proof of Theorem 5.10 10 5.2.2 Proof of Theorem 5.11 113 5.2.3 Necessity of the Conditions 113 5.3 Miscellanies 114 5.3.1 Spectral Radius of a Nonsymmetric Matrix 114 5.3.2 TW Law for the Wigner Matrix 115 5.3.3 TW Law for a Sample covariance Matrix 117 6 Spectrum Separation 119 6. 1 What Is spectrum Separation? 119 6.1.1 Mathematical Tools 126 6.2 Proof of(1) 128 6.2.1 Truncation and Some Simple facts 128 6.2.2 A Preliminary Convergence Rate 129 6.2.3 Convergence of Sn-Esn 139 6.2.4 Convergence of the Expected value 144 6.2.5 Completing the Proof 148 3 Proof of (2) 149 6.4 Proof of(3) 151 6.4.1 Convergence of a Random Quadratic Fol 151 6.4.2 spread of eigenvalues Spread of Eigenvalues 154 6.4.3 Dependence on y 157 6.4.4 Completing the Proof of (3) 160 7 Semicircular Law for Hadamard Products 165 7. 1 Sparse Matrix and Hadamard Product 16 7.2 Truncation and normalization 168 7. 2. 1 Truncation and Centralization 169 7. 3 Proof of Theorem 7.1 by the Moment Approach 172 8 Convergence Rates of ESD 181 8.1 Convergence Rates of the Expected ESD of Wigner Matrices. 181 8.1.1 Lemmas on Truncation, Centralization, and Rescaling. 182 8.1.2 Proof of Theorem 8.2 185 8.1.3 Some Lemmas on Preliminary calculation 189 8.2 Further Extensions ..194 8.3 Convergence Rates of the Expected ESD of Sample Covariance matrices 195 8.3.1 Assumptions and results 195 8.3.2 Truncation and Centralization 197 8.3.3 Proof of Theorem 8.10 198 8.4 Some Elementary calculus 204 8.4.1 Increment of M-P Density .204 8.4.2 Integral of Tail Probability 206 8.4.3 Bounds of Stieltjes Transforms of the M-P Law 207 8.4.4 Bounds for b 209 8.4.5 Integrals of Squared Absolute Values of Stielties Transform 8.4.6 Higher Central Moments of Stieltjes Transforms 213 8.4.7 Integral of o 217 8.5 Rates of Convergence in Probability and Almost Surely 9 ClT for Linear Spectral Statistics .223 9. 1 Motivation and Strategy 223 9.2 clt of lss for the Wigner matrix 227 9.2.1 Strategy of the Proof 229 9.2.2 Truncation and renormalization 231 9.2.3 Mean Function of M 232 9.2.4 Proof of the Nonrandom Part of (9. 2. 13) for j=l, 238 Contents 9.3 Convergence of the Process Mn-EMn 239 9.3.1 Finite-Dimensional Convergence of Mn-EMn 239 9.3.2 Limit of S1 242 9.3.3 Completion of the Proof of(9.2. 13) for j=l,r 250 9.3.4 Tightness of the Process Mn(z)-EMn(z) 251 9.4 Computation of the Mean and Covariance Function of G(f). 252 9.4.1 Mean Function ..252 9.4.2 Covariance Function 254 9.5 Application to Linear Spectral Statistics and Related results 256 9.5. 1 Tchebychev polynomials 256 9.6 Technical lemmas .257 9.7 CLT of the LSS for Sample Covariance Matrices 259 9.7.1 Truncation 261 9.8 Convergence of Stieltjes Transforms 263 9.9 Convergence of Finite-Dimensional Distributions 269 9.10 Tightness of Mn(z) 280 9.11 Convergence of M2(2) 286 9.12 Some Derivations and calculations ....292 9. 12.1 Verification of(9.8.8 292 9. 12. 2 Verification of(9.8.9) ......295 9. 12.3 Derivation of Quantities in Example (1.1) 296 9. 12.4 Verification of Quantities in Jonsson's results 298 9. 12.5 Verification of( 9.7. 8) and(9.7.9) ...300 9.13 CLT for the F-matrix 304 9.13.1 CLT for Lss of the F-matrix 306 9. 14 Proof of Theorem 9.14 308 9.14.1 Lemmas 308 9. 14.2 Proof of Theorem 9.14 318 9. 15 CLT for the LSS of a Large Dimensional Beta-Matrix 325 9.16 Some Examples 326 10 Eigenvectors of Sample Covariance Matrices 331 10.1 Formulation and Conjectures 10.1.1 Haar Measure and haar Matrices 332 10.1.2 Universality .335 10.2 A Necessary Condition for Property 5 ..336 10.3 Moments of Xp(FSp) 339 10.31 Proof of(10.3.1)→(10.3.2) .340 10.3.2 Proof of(b) 341 10.33 Proof of(10.3.2)→(10.3.1) 341 10.3.4 Proof of(c) 349 10.4 An Example of Weak Convergence .349 10.4.1 Converting to D0, oo) 350 10.4.2 A New Condition for Weak Convergence 357

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Codeooo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值