精华内容
下载资源
问答
  • 想必有些人对xlog算法有点不太懂,这里给大家解释下什么是xlog? 会抓包的朋友应该见过这个包: https://xlog.snssdk.com/v2/r? 这个就是xlog的包,其body体为加密函数,加密过程VM化,只能动态调试跟踪 xlog...

    文章编写于: 2020-08-27

    想必有些人对xlog算法有点不太懂,这里给大家解释下什么是xlog?

    会抓包的朋友应该见过这个包:

    https://xlog.snssdk.com/v2/r?

    这个就是xlog的包,其body体为加密函数,加密过程VM化,只能动态调试跟踪

    xlog主要是搜集环境信息参数,例如经纬度,设备信息、cpu mac wifi等信息,组成一个json串然后调用data加密传到服务器进行分析比对。来分析此账号是否正常,决定了账号能否正常点赞关注出数据等风控!(xlog也涉及到养号)由此可知道 ,xlog是包涵加密 解密操作的。

    解密xlog  包中body体 数据结构如下图: p1就是device_id  p2就是install_id

     

    用于解决 设备激活 设备注册出来不可用

    这样注册出来的设备id 可用率大大增加!

    设备激活

    更多关于xlog 设备注册 的信息,请在评论区留下邮箱

    展开全文
  • 抖音xlog算法解密过程

    千次阅读 2020-08-08 22:15:41
    今天,我们来看下xlog算法xlog算法是抖音对于风控数据提交的算法,也叫设备解锁算法,我们根据抖音最新的12.0.1版本进行逆向,解密xlog接口的数据后,发现抖音在这方面真的是做到了极致,解密后数据如下: ...

    前言

    抖音,作为一款国民级别的app,甚至在国外的tiktok也火的一塌糊涂,我所在的公司今年也决定做一款互联网应用,在制作应用前,我们通过逆向分析了一下抖音的app,其中,有很多值得学习的地方,抖音中包含的几个算法:
    设备注册算法
    登录注册算法
    xg算法
    xlog算法

    xlog解密

    今天,我们来看下xlog算法,xlog算法是抖音对于风控数据提交的算法,也叫设备解锁算法,我们根据抖音最新的12.0.1版本进行逆向,解密xlog接口的数据后,发现抖音在这方面真的是做到了极致,解密后数据如下:

    {
        "extra": "SS-200",
        "grilock": "eyJvcyI6IkFuZHJvaWQiLCJ2ZXJzaW9uIjoiMS4wLjUiLCJ0b2tlbl9pZCI6IlwvOWpudDRyRFRkdyt4bmxqT1pmN3VOUnN1RHNndEMwSFJRSFJaM3pCNXl1enRKRHB1TVVxUk1TaDc3Sld3Y0RLaDFkaEFUSkxyTzkzeEFEVFAraU1XSU1CdDNCSW9jYz0iLCJjb2RlIjoyMDB9",
        "ast": 1,
        "p1": "38464475038",
        "p2": "1143087178466429",
        "ait": 1595642532,
        "ut": 1751,
        "pkg": "com.ss.android.ugc.aweme",
        "prn": "CZL-MLP",
        "vc": 120001,
        "fp": "OPPO/A59/A59:5.1/LMY47I/1519786508:user/release-keys",
        "mdi_if": {
            "ui": "",
            "mc": "",
            "mid": "",
            "ts": -1
        },
        "mdi_s": 10,
        "wifisid": "HUAWEI-10GLZ6",
        "wifimac": "6c:06:d6:c4:6a:c8",
        "wifip": "192.168.3.15",
        "vpn": 0,
        "aplist": [
            {
                "ss": "",
                "bs": "6c:06:d6:c4:6a:cd"
            },
            {
                "ss": "HUAWEI-10GLZ6_Wi-Fi5",
                "bs": "6c:06:d6:f4:6a:ce"
            },
            {
                "ss": "HUAWEI-10GLZ6_Wi-Fi5",
                "bs": "6c:06:d6:f4:6a:cd"
            },
            {
                "ss": "ChinaNet-5mds",
                "bs": "18:52:07:8a:af:c2"
            },
            {
                "ss": "",
                "bs": "6c:06:d6:c4:6a:ce"
            },
            {
                "ss": "HUAWEI-10GLZ6",
                "bs": "6c:06:d6:c4:6a:cc"
            },
            {
                "ss": "HUAWEI-10GLZ6",
                "bs": "6c:06:d6:c4:6a:c8"
            },
            {
                "ss": "",
                "bs": "6c:06:d6:c4:6a:c9"
            },
            {
                "ss": "ChinaNet-5mds-5G",
                "bs": "18:52:07:8a:af:c1"
            },
            {
                "ss": "www.uoko.com",
                "bs": "d4:ee:07:37:db:26"
            }
        ],
        "route": {
            "iip": "192.168.3.15",
            "gip": "192.168.3.1",
            "ghw": "6c:06:d6:c4:6a:c2",
            "type": "wlan0"
        },
        "location": "",
        "i_mk": -1,
        "cell": "[16241,2147483647,2147483647,13898,11]",
        "hw": {
            "brand": "OPPO",
            "model": "OPPO A59s",
            "board": "full_oppo6750_15131",
            "device": "A59",
            "product": "A59",
            "manuf": "OPPO",
            "tags": "dev-keys",
            "inc": "1576670525",
            "des": "full_oppo6750_15131-user 5.1 LMY47I 1576670525 dev-keys",
            "bt": "unknown",
            "pfbd": "mt6750",
            "display": "720*1280",
            "dpi": 320,
            "bat": 3075,
            "bas": [],
            "cpu": {
                "core": 8,
                "pc": "AArch64 Processor rev 2 (aarch64)",
                "hw": "MT6750",
                "max": "1508000",
                "min": "156000",
                "ft": "fp asimd aes pmull sha1 sha2 crc32 wp half thumb fastmult vfp edsp neon vfpv3 tlsi vfpv4 idiva idivt"
            },
            "mem": {
                "ram": "3969265664",
                "rom": "28043313152",
                "sd": "27990884352",
                "ram_f": "1715597312",
                "rom_f": "22127783936",
                "sd_f": "22041800704"
            },
            "hdf": "ZmVhdHVyZTpyZXFHbEVzVmVyc2lvbj0weDMwMDAwCmZlYXR1cmU6YW5kcm9pZC5oYXJkd2FyZS5hdWRpby5vdXRwdXQKZmVhdHVyZTphbmRyb2lkLmhhcmR3YXJlLmJsdWV0b290aApmZWF0dXJlOmFuZHJvaWQuaGFyZHdhcmUuYmx1ZXRvb3RoX2xlCmZlYXR1cmU6YW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEKZmVhdHVyZTphbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5hbnkKZmVhdHVyZTphbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5hdXRvZm9jdXMKZmVhdHVyZTphbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5mbGFzaApmZWF0dXJlOmFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmZyb250CmZlYXR1cmU6YW5kcm9pZC5oYXJkd2FyZS5ldGhlcm5ldApmZWF0dXJlOmFuZHJvaWQuaGFyZHdhcmUuZmFrZXRvdWNoCmZlYXR1cmU6YW5kcm9pZC5oYXJkd2FyZS5sb2NhdGlvbgpmZWF0dXJlOmFuZHJvaWQuaGFyZHdhcmUubG9jYXRpb24uZ3BzCmZlYXR1cmU6YW5kcm9pZC5oYXJkd2FyZS5sb2NhdGlvbi5uZXR3b3JrCmZlYXR1cmU6YW5kcm9pZC5oYXJkd2FyZS5taWNyb3Bob25lCmZlYXR1cmU6YW5kcm9pZC5oYXJkd2FyZS5zY3JlZW4ubGFuZHNjYXBlCmZlYXR1cmU6YW5kcm9pZC5oYXJkd2FyZS5zY3JlZW4ucG9ydHJhaXQKZmVhdHVyZTphbmRyb2lkLmhhcmR3YXJlLnNlbnNvci5hY2NlbGVyb21ldGVyCmZlYXR1cmU6YW5kcm9pZC5oYXJkd2FyZS5zZW5zb3IuY29tcGFzcwpmZWF0dXJlOmFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yLmd5cm9zY29wZQpmZWF0dXJlOmFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yLmxpZ2h0CmZlYXR1cmU6YW5kcm9pZC5oYXJkd2FyZS5zZW5zb3IucHJveGltaXR5CmZlYXR1cmU6YW5kcm9pZC5oYXJkd2FyZS5zZW5zb3Iuc3RlcGNvdW50ZXIKZmVhdHVyZTphbmRyb2lkLmhhcmR3YXJlLnNlbnNvci5zdGVwZGV0ZWN0b3IKZmVhdHVyZTphbmRyb2lkLmhhcmR3YXJlLnRlbGVwaG9ueQpmZWF0dXJlOmFuZHJvaWQuaGFyZHdhcmUudGVsZXBob255LmNkbWEKZmVhdHVyZTphbmRyb2lkLmhhcmR3YXJlLnRlbGVwaG9ueS5nc20KZmVhdHVyZTphbmRyb2lkLmhhcmR3YXJlLnRvdWNoc2NyZWVuCmZlYXR1cmU6YW5kcm9pZC5oYXJkd2FyZS50b3VjaHNjcmVlbi5tdWx0aXRvdWNoCmZlYXR1cmU6YW5kcm9pZC5oYXJkd2FyZS50b3VjaHNjcmVlbi5tdWx0aXRvdWNoLmRpc3RpbmN0CmZlYXR1cmU6YW5kcm9pZC5oYXJkd2FyZS50b3VjaHNjcmVlbi5tdWx0aXRvdWNoLmphenpoYW5kCmZlYXR1cmU6YW5kcm9pZC5oYXJkd2FyZS51c2IuYWNjZXNzb3J5CmZlYXR1cmU6YW5kcm9pZC5oYXJkd2FyZS51c2IuaG9zdApmZWF0dXJlOmFuZHJvaWQuaGFyZHdhcmUud2lmaQpmZWF0dXJlOmFuZHJvaWQuaGFyZHdhcmUud2lmaS5kaXJlY3QKZmVhdHVyZTphbmRyb2lkLnNvZnR3YXJlLmFwcF93aWRnZXRzCmZlYXR1cmU6YW5kcm9pZC5zb2Z0d2FyZS5iYWNrdXAKZmVhdHVyZTphbmRyb2lkLnNvZnR3YXJlLmNvbm5lY3Rpb25zZXJ2aWNlCmZlYXR1cmU6YW5kcm9pZC5zb2Z0d2FyZS5kZXZpY2VfYWRtaW4KZmVhdHVyZTphbmRyb2lkLnNvZnR3YXJlLmhvbWVfc2NyZWVuCmZlYXR1cmU6YW5kcm9pZC5zb2Z0d2FyZS5pbnB1dF9tZXRob2RzCmZlYXR1cmU6YW5kcm9pZC5zb2Z0d2FyZS5saXZlX3dhbGxwYXBlcgpmZWF0dXJlOmFuZHJvaWQuc29mdHdhcmUucHJpbnQKZmVhdHVyZTphbmRyb2lkLnNvZnR3YXJlLnNpcApmZWF0dXJlOmFuZHJvaWQuc29mdHdhcmUuc2lwLnZvaXAKZmVhdHVyZTphbmRyb2lkLnNvZnR3YXJlLnZvaWNlX3JlY29nbml6ZXJzCmZlYXR1cmU6YW5kcm9pZC5zb2Z0d2FyZS53ZWJ2aWV3CmZlYXR1cmU6bXRrLmdlbWluaS5zdXBwb3J0CmZlYXR1cmU6b3Bwby5BbGlnbi5hbGFybS5zdXBwb3J0CmZlYXR1cmU6b3Bwby5hbGwuY2xpZW50CmZlYXR1cmU6b3Bwby5hbGwuY2xpZW50XzdfNQpmZWF0dXJlOm9wcG8uYWxsLmN0CmZlYXR1cmU6b3Bwby5hbGwubXAKZmVhdHVyZTpvcHBvLmFtcy5icm9hZGNhc3QuYWRqdXN0Lm9icmVjcXVlCmZlYXR1cmU6b3Bwby5hbXMuYnJvYWRjYXN0LmFkanVzdC5wYnJlY3F1ZQpmZWF0dXJlOm9wcG8uYW1zLmJyb2FkY2FzdC5qdW1wcXVldWUKZmVhdHVyZTpvcHBvLmFtcy5icm9hZGNhc3Qub3Bwb2J0CmZlYXR1cmU6b3Bwby5hcHAyc2QuZGlzYWJsZWQKZmVhdHVyZTpvcHBvLmF1dG9icmlnaHRjdGwuYW5pbWF0aW9uLnN1cHBvcnQKZmVhdHVyZTpvcHBvLmJhdHRlcnkubm90aWZ5Lm5ldwpmZWF0dXJlOm9wcG8uYmxhY2suZ2VzdHVyZS5wcm94aW1pdHlzZW5zb3Iuc3VwcG9ydApmZWF0dXJlOm9wcG8uYnJlYXRoLmxpZ2h0LnN1cHBvcnQKZmVhdHVyZTpvcHBvLmJyaWdodG5lc3MubW9kZS5hdXRvbWF0aWMKZmVhdHVyZTpvcHBvLmJ1dHRvbi5saWdodC5zdXBwb3J0CmZlYXR1cmU6b3Bwby5jb21tY2VudGVyLnJlYm9vdC5kaWFsb2cKZmVhdHVyZTpvcHBvLmRpcmFjLnN1cHBvcnQKZmVhdHVyZTpvcHBvLmRpc2FibGUuc21hbGwud2luZG93LmxlYXRoZXIKZmVhdHVyZTpvcHBvLmRpc2FibGUuc21hbGwud2luZG93LmxlYXRoZXIuZW5kY2FsbHZpZXcKZmVhdHVyZTpvcHBvLmRpc3BsYXkubWlyYXZpc2lvbi5zdXBwb3J0CmZlYXR1cmU6b3Bwby5kb3VibGUuY2xpY2suaG9tZS5ub3Quc3VwcG9ydApmZWF0dXJlOm9wcG8uZmlsdHJhdGVkLmFwcApmZWF0dXJlOm9wcG8uZmluZ2VycHJpbnQuc2Vuc29yLmZyb250CmZlYXR1cmU6b3Bwby5maW5nZXJwcmludC5zdXBwb3J0CmZlYXR1cmU6b3Bwby5mdWxsZGlza2VuY3J5cHRpb24udW5zdXBwb3J0ZWQKZmVhdHVyZTpvcHBvLmdhbGxlcnkub3BlbmNhYmMKZmVhdHVyZTpvcHBvLmd1YXJkLmVsZi5zdXBwb3J0CmZlYXR1cmU6b3Bwby5ody5tYW51ZmFjdHVyZXIubXRrCmZlYXR1cmU6b3Bwby5pbmV4YWN0LmFsYXJtCmZlYXR1cmU6b3Bwby5tZW1vcnkuYXV0by5jbGVhbgpmZWF0dXJlOm9wcG8ubWVtb3J5LmF1dG8uZGVlcC5jbGVhbgpmZWF0dXJlOm9wcG8ubXVsdGlhcHAuc3VwcG9ydApmZWF0dXJlOm9wcG8ub3RnLmNvbm5lY3Rpb24ubWVudS5zdXBwb3J0CmZlYXR1cmU6b3Bwby5xdWljay5zaG90LnN1cHBvcnQgCmZlYXR1cmU6b3Bwby5zY3JlZW4uaG92ZXJpbmcuc3VwcG9ydApmZWF0dXJlOm9wcG8uc291bmRlZmZlY3Quc3VwcG9ydApmZWF0dXJlOm9wcG8uc3BlZWNoYXNzaXN0LnNwZWVkLmRpYWwudW5zdXBwb3J0CmZlYXR1cmU6b3Bwby5zdXBwb3J0LnNpbmdsZS5wYXJ0aXRpb24KZmVhdHVyZTpvcHBvLnRwLmxpbWl0LnN1cHBvcnQKZmVhdHVyZTpvcHBvLnZvbHRlLnN1cHBvcnQK",
            "slb": "bGlicmFyeTphbmRyb2lkLnRlc3QucnVubmVyCmxpYnJhcnk6Y29sb3Jvcy5zdXBwb3J0CmxpYnJhcnk6Y29tLmFuZHJvaWQuZnV0dXJlLnVzYi5hY2Nlc3NvcnkKbGlicmFyeTpjb20uYW5kcm9pZC5sb2NhdGlvbi5wcm92aWRlcgpsaWJyYXJ5OmNvbS5hbmRyb2lkLm1lZGlhLnJlbW90ZWRpc3BsYXkKbGlicmFyeTpjb20uYW5kcm9pZC5tZWRpYWRybS5zaWduZXIKbGlicmFyeTpjb20uY29sb3Jvcy5zdGF0aXN0aWNzCmxpYnJhcnk6Y29tLmdvb2dsZS5hbmRyb2lkLm1hcHMKbGlicmFyeTpjb20uZ29vZ2xlLndpZGV2aW5lLnNvZnR3YXJlLmRybQpsaWJyYXJ5OmphdmF4Lm9iZXgKbGlicmFyeTpvcmcuc2ltYWxsaWFuY2Uub3Blbm1vYmlsZWFwaQo="
        },
        "id": {
            "i": 22,
            "mc": "41b2f037fc3f9e",
            "bd": "c26a6cc2d606c406d606c46ad6c2066c",
            "r": "5.1",
            "imei": "865277033537810",
            "imsi": "460038101829321",
            "acg_m": 1,
            "onm": "46003",
            "alpha": "5Lit5Zu955S15L+h",
            "adid": "1afd67f2ce9c914",
            "adid_ex": "1afd67f2ce9c914",
            "mac": "ec:f3:42:c7:cb:c3",
            "serial": "USDQSSG699999999",
            "cm_e": "",
            "cm_i": ""
        },
        "emulator": {
            "cb": 10,
            "cid": 0,
            "br": "",
            "file": [],
            "prop": [],
            "ghw": 0
        },
        "env": {
            "ver": "0.6.11.28.36",
            "tag": "CZL_LAST_VER",
            "pkg": "com.ss.android.ugc.aweme",
            "tz": "GMT+08:00",
            "ml": "zh_CN",
            "uid": 10105,
            "mc": 0,
            "arch": 1,
            "e_arch": 1,
            "v_bnd": 0,
            "su": 0,
            "sp": "",
            "ro.secure_s": "1",
            "ro.debuggable_s": "0",
            "rebuild": 0,
            "jd": 0,
            "dbg": 0,
            "tid": 0,
            "trm": "",
            "dbg_st": 0,
            "dbg_tid": 2,
            "dbg_if": 101188614,
            "hph": "192.168.3.11",
            "hpp": "8888",
            "envrion": [],
            "oem_s": -1,
            "oem_a": -1,
            "xposed": 0,
            "frida": 0,
            "cydia": 0,
            "rr": 0,
            "jexp": 0,
            "click": "",
            "acb": -1,
            "hook": [],
            "jvh": [],
            "fish": {},
            "vapp": "",
            "vmos": 0,
            "ssr": 0,
            "mal": "",
            "mor": -1,
            "mor2": -1,
            "ech": "4294967295"
        },
        "extension": {
            "sg": 1213,
            "sp": 1,
            "f_clk": 0,
            "u_clk": 0,
            "atify": "0x00000000",
            "notify": 1,
            "sg_s": 1,
            "path": "",
            "bdc": "",
            "dp": "12074564,0,0",
            "sign": "AEA615AB910015038F73C47E45D21466",
            "sha1": "",
            "dump": 0,
            "dump2": -1,
            "mk": 0,
            "cba": "0xf733b5b7",
            "ts1": -290275320,
            "ts2": 0,
            "bqq": "u6qooKqsrvHkuLK4v66m5Kq7u+SJqqigvruKpa+Zrri/pLmu5ImqqKC+u4qlr5muuL+kua7lqrug9qikpuWopKekuaS45amqqKC+u7muuL+kua7Bu6qooKqsrvHkuLK4v66m5Kq7u+SMqarkjKmq5aq7oPaopKblpq6voqq/rqDlrKmqwbuqqKCqrK7x5LiyuL+upuSqu7vknqKoqPmfrrmmoqWqp+Seoqio+Z+uuaaipaqn5aq7oPakuazluKKmqqenoqqlqK7lpLuupaakqaKnrqq7ouW+oqio+b+uuaaipaqnwbuqqKCqrK7x5LiyuL+upuSqu7vkiJ+Kvr+kma6sori/5Iifir6/pJmurKK4v+Wqu6D2qKSm5aS7u6TlqL+qvr+kua6sori/wbuqqKCqrK7x5LiyuL+upuSqu7vkm6Okpa6FhIq5rqqCpbq+ormum7mkvaKvrrnkm6Okpa6FhIq5rqqCpbq+ormum7mkvaKvrrnlqrug9qikpuWopKekuaS45bujpKWupaSqua6qoqW6vqK5rsG7qqigqqyu8eS4sri/rqbku7miveaqu7vkn66nrrujpKWym7mkvaKvrrnkn66nrrujpKWym7mkvaKvrrnlqrug9qikpuWqpa+5pKKv5bu5pL2ir665uOW/rqeuu6OkpbLBu6qooKqsrvHkuLK4v66m5Lu5or3mqru75IS7u6Scormup664uJiuv7+ipay45IS7u6Scormup664uJiuv7+ipay45aq7oPaopKblqKSnpLmkuOW8ormup664uLiuv7+ipay4wbuqqKCqrK7x5LiyuL+upuSqu7vkjKW4uJukvK65mKq9rrnkjKW4uJukvK65mKq9rrnlqrug9qikpuWspbi45bukvK65wbuqqKCqrK7x5LiyuL+upuS7uaK95qq7u+SIqqeupa+quZu5pL2ir6655Iiqp66lr6q5m7mkvaKvrrnlqrug9qikpuWqpa+5pKKv5bu5pL2ir665uOWoqqeupa+qucG7qqigqqyu8eS4sri/rqbku7miveaqu7vkhq6voqqbuaS9oq+uueSGrq+iqpu5pL2ir6655aq7oPaopKblqqWvuaSir+W7uaS9oq+uubjlpq6voqrBu6qooKqsrvHkuLK4v66m5LunvqyipeSNvKCbp76soqXkjbygm6e+rKKl5aq7oPaopKblpq6voqq/rqDlrbyg5bunvqyipcG7qqigqqyu8eS4sri/rqbkqru75JiyuL+upoOup7uuueSYsri/rqaDrqe7rrnlqrug9qikpuWmpKmip66/pKSnuOW4sri/rqajrqe7rrnBu6qooKqsrvHkuLK4v66m5Lu5or3mqru75Jyqp6e7qruuuYi5pLu7rrnknKqnp7uqu665iLmku7uuueWqu6D2qKSm5aqlr7mkoq/lvKqnp7uqu665qLmku7uuucG7qqigqqyu8eS4sri/rqbkqru75IS7u6SFrryYoqaPrr+uqL/khLu7pIWuvJiipo+uv66ov+Wqu6D2qKSm5aikp6S5pLjlpa68uKKmr66/rqi/wbuqqKCqrK7x5LiyuL+upuSqu7vkmKStv7iippmur7+uqoikuOSYpK2/uKKmma6vv66qiKS45aq7oPaopKblua6vv66qpqSpoqeu5b2iub++qqfluKStv7iipsG7qqigqqyu8eS4sri/rqbkqru75Jimqrm/qKq5r5iuub2iqK7kmKaqub+oqrmvmK65vaKoruWqu6D2pLms5biipqqnp6Kqpaiu5aS7rqWmpKmip66qu6LluK65vaKorsG7qqigqqyu8eSvqr+q5Kq7u+SopKblpa6quaau5aWkv67m+uSpqriu5aq7oPaopKblpa6quaau5aWkv67Bu6qooKqsrvHkr6q/quSqu7vkqKSm5aWuqrmmruW7p6qy5vnkqaq4ruWqu6D2qKSm5aWuqrmmruW7p6qywbuqqKCqrK7x5LiyuL+upuSqu7vkgK6ArpiypajkgK6Arpiypajlqrug9qikpuWlrqq5pq7luLKlqMG7qqigqqyu8eS4sri/rqbkqru75I+kqL6mrqW/uJ6C5I+kqL6mrqW/uJ6C5aq7oPaopKblqqWvuaSir+WvpKi+pq6lv7i+osG7qqigqqyu8eS4sri/rqbku7miveaqu7vkhLu7pJiippiuv7+ipay45IS7u6SYoqaYrr+/oqWsuOWqu6D2qKSm5aikp6S5pLjluKKmuK6/v6KlrLjBu6qooKqsrvHkuLK4v66m5Kq7u+SYpKykvoKGjuSYpKykvoKGjuWqu6D2qKSm5biko77loqW7vr+mrr+jpK/luKSspL6krqbBu6qooKqsrvHkuLK4v66m5Lu5or3mqru75I6zv665paqnmL+kuaqsrpu5pL2ir6655I6zv665paqnmL+kuaqsrpu5pL2ir6655aq7oPaopKblqqWvuaSir+Wus7+uuaWqp7i/pLmqrK7Bu6qooKqsrvHkuLK4v66m5Kq7u+SSjJuY5JKMm5jlqrug9qikpuWmrq+iqr+uoOWyrLu4wbuqqKCqrK7x5LiyuL+upuSqu7vkg5+Gh52irryuueSDn4aHnaKuvK655aq7oPaopKblqqWvuaSir+Wjv6anvaKuvK65wbuqqKCqrK7x5LiyuL+upuSqu7vkgo2nspi7rq6oo5iuub2iqK7kgo2nspi7rq6oo5iuub2iqK7lqrug9qikpuWiraeyv66g5bi7rq6oo6inpL6vwbuqqKCqrK7x5LiyuL+upuSqu7vkhLu7pJyuqr+jrrmYrrm9oqiu5IS7u6Scrqq/o665mK65vaKoruWqu6D2qKSm5aikp6S5pLjlvK6qv6OuueW4rrm9oqiuwbuqqKCqrK7x5LiyuL+upuS7uaK95qq7u+SGpriYrrm9oqiu5IamuJiuub2iqK7lqrug9qikpuWqpa+5pKKv5aamuOW4rrm9oqiuwbuqqKCqrK7x5LiyuL+upuS7uaK95qq7u+SPpLylp6Sqr5u5pL2ir6655I+kvKWnpKqvm7mkvaKvrrnlqrug9qikpuWqpa+5pKKv5bu5pL2ir665uOWvpLylp6Sqr7jBu6qooKqsrvHkuLK4v66m5Kq7u+SPpLylp6Sqr665iK6lv665noLkj6S8paekqq+uuYiupb+uuZ6C5aq7oPaopKblqKSnpLmkuOW7uaS9oq+uubjlr6S8paekqq+45b6iwbuqqKCqrK7x5LiyuL+upuSqu7vkhLu7pIq+v6Sfrri/mK65va655IS7u6SKvr+kn664v5iuub2uueWqu6D2qKSm5aS7u6Tlqr6/pL+uuL/Bu6qooKqsrvHkuLK4v66m5Kq7u+SOpayipa6uuYakr67kjqWsoqWurrmGpK+u5aq7oPaopKblpq6voqq/rqDlrqWsoqWurrmmpK+uwbuqqKCqrK7x5LiyuL+upuS7uaK95qq7u+SJp6qooIeiuL/kiaeqqKCHori/5aq7oPaopKblqKSnpLmkuOWpp6qooKeiuL/Bu6qooKqsrvHkuLK4v66m5Kq7u+SOpayYu66ooqqnn664v+SOpayYu66ooqqnn664v+Wqu6D2qKSm5aS7u6TlrqWsoqWurrmipaympK+u5bi7rqiiqqe/rri/wbuqqKCqrK7x5LiyuL+upuSqu7vkjaq4v52ir66k5I2quL+doq+upOWqu6D2qKSm5aS7u6TlqKqmrrmq5a2quL+9oq+upKakr67Bu6qooKqsrvHkr6q/quSqu7vkqKSm5aqlr7mkoq/lqbmkvLiuueb65KmquK7lqrug9qikpuWqpa+5pKKv5am5pLy4rrnBu6qooKqsrvHkuLK4v66m5Kq7u+SKu7unoqiqv6KkpbibuaS9oq+uueSKu7unoqiqv6KkpbibuaS9oq+uueWqu6D2qKSm5aqlr7mkoq/lu7mkvaKvrrm45aq7u6eiqKq/oqSluMG7qqigqqyu8eS4sri/rqbku7miveaqu7vkm6mqu4inoq6lv+Sbqaq7iKeirqW/5aq7oPaopKblpLu7pOWpp76uv6Skv6Plu6mqu6inoq6lv8G7qqigqqyu8eS4sri/rqbku7miveaqu7vkj66tqr6nv4ikpb+qoqWuuZiuub2iqK7kj66tqr6nv4ikpb+qoqWuuZiuub2iqK7lqrug9qikpuWqpa+5pKKv5a+uraikpb+qoqWuucG7qqigqqyu8eS4sri/rqbkqru75JuqqJu5pKiuuLikueSbqqibuaSorri4pLnlqrug9qikpuWqpa+5pKKv5buqqLu5pKiuuLikucG7qqigqqyu8eS4sri/rqbkqru75I2ipayuubu5oqW/5I2ipayuubu5oqW/5aq7oPaopKblqKSnpLmkuOWtoqWsrrm7uaKlv8G7qqigqqyu8eS4sri/rqbkqru75IS7u6SMrri/vrmunoLkhLu7pIyuuL++ua6eguWqu6D2qKSm5aikp6S5pLjlrK64v765rsG7qqigqqyu8eS4sri/rqbkqru75JuqpaS5qqaqiKqmrrmq5JuqpaS5qqaqiKqmrrmq5aq7oPaopKblpLu7pOWoqqauuarlu6qlpLmqpqrBu6qooKqsrvHkr6q/quSqu7vkqKSm5b+upaiupb/lpqbm+eSpqriu5aq7oPaopKblv66lqK6lv+WmpsG7qqigqqyu8eS4sri/rqbkqru75Jikrb+4oqaZrq+/rqqJuaKvrK7kmKStv7iippmur7+uqom5oq+sruWqu6D2qKSm5aqlr7mkoq/lva6lr6S5uOWpuaKvrK7luKStv7iipsG7qqigqqyu8eS4sri/rqbkqru75Iiuub+Cpbi/qqenrrnkiK65v4KluL+qp6euueWqu6D2qKSm5aqlr7mkoq/lqK65v6KluL+qp6euucG7qqigqqyu8eS4sri/rqbkqru75IS7u6SHrqq/o6655IS7u6SHrqq/o6655aq7oPaopKblqKSnpLmkuOWnrqq/o665wbuqqKCqrK7x5LiyuL+upuSqu7vkhLu7pImkpL+ZrqzkhLu7pImkpL+Zrqzlqrug9qikpuWopKekuaS45amkpL+5rqzBu6qooKqsrvHkuLK4v66m5K25qqauvKS5oOStuaqmrrykuaDmua645aq7oPaqpa+5pKKvwbuqqKCqrK7x5LiyuL+upuS7uaK95qq7u+SIj5iUgoWNhOSIj5iUgoWNhOWqu6D2qKSm5aaur6Kqv66g5aikpaWuqL+ivaK/ssG7qqigqqyu8eS4sri/rqbkqru75I+kvqmnro6zu6S4vrmuiKqmrrmq5I+kvqmnro6zu6S4vrmuiKqmrrmq5aq7oPaopKblpLu7pOWoqqauuarlr6S+qaeurrO7pLi+ua7Bu6qooKqsrvHkuLK4v66m5Lu5or3mqru75Iikpb+qqL+45Iikpb+qqL+45aq7oPaopKblqqWvuaSir+WopKW/qqi/uMG7qqigqqyu8eSvqr+q5Kq7u+SopKblqKSnpLmkuOW8qqenrr/m+uSpqriu5aq7oPaopKblqKSnpLmkuOW8qqenrr/Bu6qooKqsrvHkuLK4v66m5Kq7u+Scrqmdoq68jKSkrKeulP/55JyuqZ2irryMpKSsp66U//nlqrug9qikpuWku7uk5byuqb2irrzBu6qooKqsrvHkuLK4v66m5Kq7u+SFvqaprrmZrqikrKWiv6KkpeSFvqaprrmZrqikrKWiv6KkpeWqu6D2qKSm5b+ur+WlvqaprrnBu6qooKqsrvHkuLK4v66m5Kq7u+SEu7ukjL6qua+Op63khLu7pIy+qrmvjqet5aq7oPaopKblqKSnpLmkuOWku7ukrL6qua+up63Bu6qooKqsrvHkuLK4v66m5Lu5or3mqru75IamuOSGprjlqrug9qikpuWqpa+5pKKv5aamuMG7qqigqqyu8eS4sri/rqbkqru75Ji/oPrkmL+g+uWqu6D2qKSm5aqlr7mkoq/luL+gwbuqqKCqrK7x5LiyuL+upuSqu7vknr+g5J6/oOWqu6D2qKSm5aqlr7mkoq/lvr+gwbuqqKCqrK7x5LiyuL+upuSqu7vkj6K5qqiKvq+ipIikpb+5pKeYrrm9oqiu5I+iuaqoir6voqSIpKW/uaSnmK65vaKoruWqu6D2uK7lr6K5qqjlqqi4wbuqqKCqrK7x5LiyuL+upuSqu7vkhLu7pI+5pLuppLOIo6akr5iuub2iqK7khLu7pI+5pLuppLOIo6akr5iuub2iqK7lqrug9qikpuWvuaS7qaSzqKOmpK/Bu6qooKqsrvHkuLK4v66m5Kq7u+SPp6WqmK65vaKoruSPp6WqmK65vaKoruWqu6D2qKSm5aqlr7mkoq/lr6elquW4rrm9oqiuwbuqqKCqrK7x5LiyuL+upuSqu7vkhLu7pJujpKWuiqi/or2qv6KkpeSEu7ukm6Okpa6KqL+ivaq/oqSl5aq7oPaopKblqKSnpLmkuOWqqL+ivaq/oqSlwbuqqKCqrK7x5LiyuL+upuSqu7vkmL67rrmRpKSmiKqmrrmq5Ji+u665kaSkpoiqpq65quWqu6D2qKSm5aS7u6TlqKqmrrmq5bi+u665saSkpsG7qqigqqyu8eS4sri/rqbkqru75Iiqp66lr6q55Iiqp66lr6q55aq7oPaopKblqqWvuaSir+Woqqeupa+qucG7qqigqqyu8eS4sri/rqbkqru75I+5ppu5pL2ir6655I+5ppu5pL2ir6655aq7oPaopKblpq6voqq/rqDlu7mkvaKvrrm45a+5psG7qqigqqyu8eS4sri/rqbkqru75I2ipayuubu5oqW/m7mkvaKvrrnkjaKlrK65u7mipb+buaS9oq+uueWqu6D2qKSm5aS7u6TlraKlrK65u7mipb+45biuub2iqK7Bu6qooKqsrvHkuLK4v66m5Lu5or3mqru75Jiuv7+ipay4m7mkvaKvrrnkmK6/v6KlrLibuaS9oq+uueWqu6D2qKSm5aqlr7mkoq/lu7mkvaKvrrm45biuv7+ipay4wbuqqKCqrK7x5LiyuL+upuSqu7vkhqK5qp2iuKKkpeSGormqnaK4oqSl5aq7oPaopKblpq6voqq/rqDlpqK5qr2iuKKkpeW+osG7qqigqqyu8eS4sri/rqbku7miveaqu7vkmKOqua6vmL+kuaqsromqqKC+u+SYo6q5rq+Yv6S5qqyuiaqooL675aq7oPaopKblqqWvuaSir+W4o6q5rq+4v6S5qqyuqaqooL67wbuqqKCqrK7x5LiyuL+upuSqu7vkm7mipb+Yu6Skp6655Ju5oqW/mLukpKeuueWqu6D2qKSm5aqlr7mkoq/lu7mipb+4u6Skp665wbuqqKCqrK7x5LiyuL+upuSqu7vknqKoqPqfrrmmoqWqp+Seoqio+p+uuaaipaqn5aq7oPakuazluKKmqqenoqqlqK7lpLuupaakqaKnrqq7ouW+oqio+r+uuaaipaqnwbuqqKCqrK7x5LiyuL+upuSqu7vkpaS/oq2iqKq/oqSllKiupb+uueSlpL+iraKoqr+ipKWUqK6lv6655aq7oPaopKblqKSnpLmkuOWlpL+iraKoqr+ipKWmqqWqrK65wbuqqKCqrK7x5K+qv6rkqru75KikpuWku7uk5aikpqa+paK/sub65KmquK7lqrug9qikpuWku7uk5aikpqa+paK/ssG7qqigqqyu8eS4sri/rqbkqru75ImquKKoj7muqqa45ImquKKoj7muqqa45aq7oPaopKblqqWvuaSir+Wvua6qprjlqaq4oqjBu6qooKqsrvHkuLK4v66m5Kq7u+SCpYiqp6eeguSCpYiqp6eeguWqu6D2qKSm5aqlr7mkoq/loqWoqqenvqLBu6qooKqsrvHkr6q/quSqu7vkqKSm5aWuqrmmruW/o66mrri7qqiu5vrkqaq4ruWqu6D2qKSm5aWuqrmmruW/o66mrri7qqiuwbuqqKCqrK7x5LiyuL+upuSqu7vkgqaqrK6fpKSn5IKmqqyun6Skp+Wqu6D2qKSm5aS7u6TlraKlrK65u7mipb+45a2ipayuubu5oqW/uK6luKS5v664v8G7qqigqqyu8eSvqr+q5Kq7u+SopKblpLu7pOWipbi/qqW/5aekqKqn5biuub2iqK7m+uSpqriu5aq7oPaopKblpLu7pOWipbi/qqW/5aekqKqn5biuub2iqK7Bu6qooKqsrvHkuLK4v66m5Lu5or3mqru75IKlu76/j669oqiuuOSCpbu+v4+uvaKorrjlqrug9qikpuWqpa+5pKKv5aKlu76/r669oqiuuMG7qqigqqyu8eS4sri/rqbkqru75Jikrb+4oqaZrq+/rqqZpKqmoqWs5Jikrb+4oqaZrq+/rqqZpKqmoqWs5aq7oPaopKblua6vv66qpqSpoqeu5bmkqqaipazBu6qooKqsrvHkuLK4v66m5K25qqauvKS5oOSmrq+iqr+uoOa5rrjkpq6voqq/rqDmua645aq7oPaopKblpq6voqq/rqDBu6qooKqsrvHkr6q/quSqu7vkqKSm5a+qrqakpeW4o66nu6655vrkqaq4ruWqu6D2qKSm5a+qrqakpeW4o66nu665wbuqqKCqrK7x5LiyuL+upuStuaqmrrykuaDkpLu7pOatuaqmrrykuaDmua645aq7oPaku7ukwbuqqKCqrK7x5K+qv6rkqru75KikpuWopKekuaS45aikpruquLjm+eSpqriu5aq7oPaopKblqKSnpLmkuOWopKa7qri4wbuqqKCqrK7x5K+qv6rkqru75KikpuWopKekuaS45amqqKC+u7muuL+kua7lua6mpL+uuK65vaKorub65KmquK7lqrug9qikpuWopKekuaS45amqqKC+u7muuL+kua7lua6mpL+uuK65vaKorsG7qqigqqyu8eS4sri/rqbkqru75IS7u6SHqr6lqKOuueSEu7ukh6q+paijrrnlqrug9qikpuWku7uk5aeqvqWoo665wbuqqKCqrK7x5LiyuL+upuSqu7vkhLu7pJu5rr2upb+GpK+u5IS7u6Sbua69rqW/hqSvruWqu6D2qKSm5aikp6S5pLjlu7muva6lv6akr67Bu6qooKqsrvHkuLK4v66m5Kq7u+Scrqmdoq68jKSkrKeu5JyuqZ2irryMpKSsp67lqrug9qikpuWspKSsp67lqqWvuaSir+W8rqm9oq68wbuqqKCqrK7x5LiyuL+upuSqu7vkma6orqW/n6q4oOSZrqiupb+fqrig5aq7oPaopKblqKSnpLmkuOW5rqiupb+4wbuqqKCqrK7x5LiyuL+upuSqu7vknKqnp7uqu665uOScqqenu6q7rrm45aq7oPaopKblqKSnpLmkuOW8qqenu6q7rrm4wbuqqKCqrK7x5K+qv6rkqru75KikpuWopKekuaS45aaouOb65KmquK7lqrug9qikpuWopKekuaS45aaouMG7qqigqqyu8eS4sri/rqbkqru75JiyuL+upoq7u567r6q/rpiuub2iqK7kmLK4v66miru7nruvqr+umK65vaKoruWqu6D2qKSm5aikp6S5pLjluKq+wbuqqKCqrK7x5LiyuL+upuS7uaK95qq7u+SEpa6foqaugqWiv6Kqp6KxrrnkhKWun6KmroKlor+iqqeisa655aq7oPaopKblqqWvuaSir+Wkpa6/oqauoqWiv6Kqp6KxrrnBu6qooKqsrvHkuLK4v66m5Kq7u+SFp7uYrrm9oqiu5IWnu5iuub2iqK7lqrug9qikpuWmrq+iqr+uoOWlp7u4rrm9oqiuwbuqqKCqrK7x5LiyuL+upuS7uaK95qq7u+SfrqeuqKSm5J+up66opKblqrug9qikpuWqpa+5pKKv5biuub2uueW/rqeuqKSmwbuqqKCqrK7x5LiyuL+upuSqu7vkiKSnpLmego6lrKKlruSIpKekuZ6CjqWsoqWu5aq7oPaopKblqKSnpLnlvqKupayipa7Bu6qooKqsrvHkuLK4v66m5Kq7u+SArrKIo6qipeSArrKIo6qipeWqu6D2qKSm5aqlr7mkoq/loK6yqKOqoqXBu6qooKqsrvHkuLK4v66m5Lu5or3mqru75ICusqy+qrmv5ICusqy+qrmv5aq7oPaopKblqqWvuaSir+WgrrKsvqq5r8G7qqigqqyu8eSvqr+q5Kq7u+SopKblqKSnpLmkuOW8rqq/o6655IS7u6Scrqq/o6655aq7oPaopKblqKSnpLmkuOW8rqq/o665wbuqqKCqrK7x5LiyuL+upuSqu7vkhLu7pJ64qZiup66ov6KkpeSEu7uknripmK6nrqi/oqSl5aq7oPaopKblqKSnpLmkuOW+uKm4rqeuqL+ipKXBu6qooKqsrvHkuLK4v66m5Kq7u+SEu7ukj4iY5IS7u6SPiJjlqrug9qikpuWlrqq5pq7luL+qv6K4v6KouOW5pKbBu6qooKqsrvHkr6q/quSqu7vkqKSm5bi45aqlr7mkoq/lvqyo5aq8rqau5vnkqaq4ruWqu6D2qKSm5bi45aqlr7mkoq/lvqyo5aq8rqauwbuqqKCqrK7x5K+qv6rkqru75KikpuWopKekuaS45bKkp6Lm+eSpqriu5aq7oPaopKblqKSnpLmkuOWypKeiwbuqqKCqrK7x5LiyuL+upuSqu7vkg66/iKSmpuSDrr+IpKam5aq7oPaopKblpq6voqq/rqDlo66/qKSmpsG7qqigqqyu8eSvqr+q5Kq7u+SopKblv66lqK6lv+WmpKmip666uub55KmquK7lqrug9qikpuW/rqWorqW/5aakqaKnrrq6wbuqqKCqrK7x5LiyuL+upuSqu7vkm6qooKqsroKluL+qp6euueSbqqigqqyugqW4v6qnp6655aq7oPaopKblqqWvuaSir+W7qqigqqyuoqW4v6qnp665wbuqqKCqrK7x5LiyuL+upuSqu7vkma64pL65qK6GpKWiv6S55JmuuKS+uaiuhqSlor+kueWqu6D2qKSm5aS7u6Tlua64pqSlor+kucG7qqigqqyu8eS4sri/rqbkqru75JuiqL+kuaKqp+Sboqi/pLmiqqflqrug9qikpuWopKekuaS45buiqL+kuaKqp8G7qqigqqyu8eS4sri/rqbkqru75JuiqKSfv7jkm6KopJ+/uOWqu6D2qKSm5bi9pLPlu6KopMG7qqigqqyu8eS4sri/rqbku7miveaqu7vkm7mks7KDqqWvp6655Ju5pLOyg6qlr6euueWqu6D2qKSm5aqlr7mkoq/lu7mks7KjqqWvp665wbuqqKCqrK7x5LiyuL+upuSqu7vkhLu7pJimqqennK6qv6OuuZyir6yuv+SEu7ukmKaqp6ecrqq/o665nKKvrK6/5aq7oPaopKblqKSnpLmkuOW8oq+srr/luKaqp6e8rqq/o665wbuqqKCqrK7x5LiyuL+upuSqu7vkhLu7pI2nqrijh6Kso7/khLu7pI2nqrijh6Kso7/lqrug9qikpuWopKekuaS45a2nqrijp6Kso7/Bu6qooKqsrvHkuLK4v66m5Kq7u+SYqq2ujbmqpq68pLmg5Jiqra6NuaqmrrykuaDlqrug9qikpuWopKekuaS45biqra7luK65vaKoruWtuaqmrrykuaDBu6qooKqsrvHkuLK4v66m5Lu5or3mqru75JujpL+kjq2trqi/uOSbo6S/pI6tra6ov7jlqrug9qikpuWopKekuaS45bujpL+krq2trqi/uMG7qqigqqyu8eS4sri/rqbkqru75Iaqpaqsrq+buaS9oriipKWipazkhqqlqqyur5u5pL2iuKKkpaKlrOWqu6D2qKSm5aqlr7mkoq/lpqqlqqyur7u5pL2iuKKkpaKlrMG7qqigqqyu8eS4sri/rqbkqru75Ij5nuSI+Z7lqrug9qikpuWku7uk5aj5vsG7qqigqqyu8eS4sri/rqbkqru75ISfiuSEn4rlqrug9qikpuWku7uk5aS/qsG7qqigqqyu8eS4sri/rqbkqru75Iq/qKKYrrm9oqiu5Iq/qKKYrrm9oqiu5aq7oPaopKblpq6voqq/rqDlqr+oouW4rrm9oqiuwbuqqKCqrK7x5LiyuL+upuSqu7vkhLu7pIiqpq65quSEu7ukiKqmrrmq5aq7oPaopKblpLu7pOWoqqauuarBu6qooKqsrvHkuLK4v66m5Kq7u+Sbo6S/pJ+qqaeu5JujpL+kn6qpp67lqrug9qikpuWqpa+5pKKv5a+5rqqmuOW7o6S/pL+qqaeuwbuqqKCqrK7x5LiyuL+upuSqu7vkja6ur6mqqKDkja6ur6mqqKDlqrug9qikpuWopKekuaS45a2urq+pqqigwbuqqKCqrK7x5LiyuL+upuSqu7vkiKekqKDkiKekqKDlqrug9qikpuWopKekuaS45aqnqrmmqKekqKDBu6qooKqsrvHkuLK4v66m5Kq7u+SYr4iqua+Yrrm9oqiu5JiviKq5r5iuub2iqK7lqrug9qikpuWku7uk5bivqKq5r7iuub2iqK7Bu6qooKqsrvHkuLK4v66m5Kq7u+SIp66qpaaquL+uuf3/5Iinrqqlpqq4v665/f/lqrug9qikpuWop66qpaaquL+uueW4r6DBu6qooKqsrvHkuLK4v66m5Kq7u+SbuaStrri4oqSlqqeIqqauuarkm7mkra64uKKkpaqniKqmrrmq5aq7oPaopKblpLu7pOWoqqauuarlu7mkra64uKKkpaqnwbuqqKCqrK7x5LiyuL+upuSqu7vknKqnp7uqu665iKOkpLiuueScqqenu6q7rrmIo6SkuK655aq7oPaopKblqqWvuaSir+W8qqenu6q7rrnlp6K9rruiqKCuucG7qqigqqyu8eSvqr+q5Kq7u+SopKblpLu7pOWmqrmgrr/m+uSpqriu5aq7oPaopKblpLu7pOWmqrmgrr/Bu6qooKqsrvHkr6q/quSqu7vkqKSm5Zq+paq55vrkqaq4ruWqu6D2qKSm5Zq+paq5wbuqqKCqrK7x5LiyuL+upuSqu7vkiru7iaqooL67iKSmu6S4rrnkiru7iaqooL67iKSmu6S4rrnlqrug9qikpuWopKekuaS45amqqKC+u+WopKa7pLiuueWqu7vBu6qooKqsrvHkuLK4v66m5Kq7u+SNoqWvhrKbo6SlruSNoqWvhrKbo6SlruWqu6D2qKSm5aikp6S5pLjlraKlr6ayu6Okpa7Bu6qooKqsrvHkuLK4v66m5Kq7u+SEu7ukiLmiv6KoqqeHpKyYrrm9oqiu5IS7u6SIuaK/oqiqp4ekrJiuub2iqK7lqrug9qikpuWouaK/oqiqp6ekrMG7qqigqqyu8eS4sri/rqbkqru75ICugK6fo66mrpi7qqiuh6Kp5ICugK6fo66mrpi7qqiuh6Kp5aq7oPaopKblpa6quaau5b+jrqauuLuqqK6noqnBu6qooKqsrvHkuLK4v66m5Kq7u+SYqq2uiK6lv6655Jiqra6IrqW/rrnlqrug9qikpuWopKekuaS45biqra6orqW/rrnBu6qooKqsrvHkr6q/quSqu7vkqKSm5b+upaiupb/lpa68uOb65KmquK7lqrug9qikpuW/rqWorqW/5aWuvLjBu6qooKqsrvHkuLK4v66m5Lu5or3mqru75Jiuv7+ipay45Jiuv7+ipay45aq7oPaopKblqqWvuaSir+W4rr+/oqWsuMG7qqigqqyu8eS4sri/rqbkqru75ICusqy+qrmvhaS/oq2iqKq/oqSl5ICusqy+qrmvhaS/oq2iqKq/oqSl5aq7oPaopKblqKSnpLmkuOWgrrKsvqq5r+WlpL+iraKoqr+ipKXBu6qooKqsrvHkuLK4v66m5Kq7u+SEu7ukjqWsoqWurrmGpK+u5IS7u6SOpayipa6uuYakr67lqrug9qikpuWku7uk5a6lrKKlrq65pqSvrsG7qqigqqyu8eS4sri/rqbkqru75I2qqL+kubKMu7jkjaqov6S5soy7uOWqu6D2qKSm5aS7u6Tlraqov6S5sqy7uMG7qqigqqyu8eSvqr+q5Kq7u+SopKblpa6quaau5aq/p6q45vnkqaq4ruWqu6D2qKSm5aWuqrmmruWqv6equMG7qqigqqyu8eS4sri/rqbkqru75IS7u6SOs5iuub2iqK6eguSEu7ukjrOYrrm9oqiunoLlqrug9qikpuWopKekuaS45a6zuK65vaKorr6iwbuqqKCqrK7x5K+qv6rkqru75KikpuWqpa+5pKKv5aiqp6i+p6q/pLn55Iiqp6i+p6q/pLnlqrug9qikpuWqpa+5pKKv5aiqp6i+p6q/pLn5wbuqqKCqrK7x5LiyuL+upuSqu7vkiKSnpLmYqLmurqW4o6S/5Iikp6S5mKi5rq6luKOkv+Wqu6D2qKSm5aikp6S5pLjluKi5rq6luKOkv8G7qqigqqyu8eS4sri/rqbkqru75IS7u6SPormqqOSEu7ukj6K5qqjlqrug9qikpuWku7uk5a+iuaqowbuqqKCqrK7x5K+qv6rkqru75KikpuWku7uk5aa+uKKo5vrkqaq4ruWqu6D2qKSm5aS7u6Tlpr64oqjBu6qooKqsrvHkuLK4v66m5Kq7u+SHpKiqv6KkpY6G+eSHpKiqv6KkpY6G+eWqu6D2qKSm5aaur6Kqv66g5aepuOWupvnlvqLBu6qooKqsrvHkuLK4v66m5Kq7u+SIp6S+r5iuub2iqK7kiKekvq+Yrrm9oqiu5aq7oPaopKblqKSnpLmkuOWop6S+r8G7qqigqqyu8eS4sri/rqbku7miveaqu7vknaKvrqSMqqenrrmy5J2ir66kjKqnp665suWqu6D2qKSm5aikp6S5pLjlvaKvrqTBu6qooKqsrvHkuLK4v66m5Kq7u+SNoqeuhqqlqqyuueSNoqeuhqqlqqyuueWqu6D2qKSm5aikp6S5pLjlraKnrqaqpaqsrrnBu6qooKqsrvHkr6q/quSqu7vkqKSm5aS7u6Tlvriuuaiupb+uueb65KmquK7lqrug9qikpuWku7uk5b64rrmorqW/rrnBu6qooKqsrvHkuLK4v66m5Kq7u+SNoqe/rrmIqqauuarkjaKnv665iKqmrrmq5aq7oPaopKblpLu7pOWoqqauuarlraKnv665wbuqqKCqrK7x5LiyuL+upuS7uaK95qq7u+Sdu6WPoqqnpKy45J27pY+iqqekrLjlqrug9qikpuWqpa+5pKKv5b27pa+iqqekrLjBu6qooKqsrvHkuLK4v66m5Kq7u+Sku7ukhr6nv6KKu7vkpLu7pIa+p7+iiru75aq7oPaopKblqKSnpLmkuOWku7ukpr6nv6Kqu7vBu6qooKqsrvHkr6q/quSqu7vkqKSm5aWuqrmmruWipbi/qqW/5bunqr+tpLmm5vrkqaq4ruWqu6D2qKSm5aWuqrmmruWipbi/qqW/5bunqr+tpLmmwbuqqKCqrK7x5LiyuL+upuSqu7vkha68mKS+pa+Zrqikua+uueSFrryYpL6lr5muqKS5r6655aq7oPaopKblqKSnpLmkuOW4pL6lr7muqKS5r665wbuqqKCqrK7x5K+qv6rkqru75KikpuWqpa+5pKKv5a6mqqKn5vrkqaq4ruWqu6D2qKSm5aqlr7mkoq/lrqaqoqfBu6qooKqsrvHkuLK4v66m5Kq7u+SEu7ukmLuurqijiri4ori/5IS7u6SYu66uqKOKuLiiuL/lqrug9qikpuWopKekuaS45bi7rq6oo6q4uKK4v8G7qqigqqyu8eS4sri/rqbku7miveaqu7vkn66nrpiuub2iqK7kn66nrpiuub2iqK7lqrug9qikpuWqpa+5pKKv5bujpKWuwbuqqKCqrK7x5LiyuL+upuS7uaK95qq7u+SYo66np+SYo66np+Wqu6D2qKSm5aqlr7mkoq/luKOup6fBu6qooKqsrvHkuLK4v66m5Kq7u+SeuK65j6Kov6Kkpaq5spu5pL2ir6655J64rrmPoqi/oqSlqrmym7mkvaKvrrnlqrug9qikpuWqpa+5pKKv5bu5pL2ir665uOW+uK65r6Kov6Kkpaq5ssG7qqigqqyu8eSvqr+q5Kq7u+SopKblpLu7pOW6vqKooLiuqrmoo6mks+b65KmquK7lqrug9qikpuWku7uk5bq+oqiguK6quaijqaSzwbuqqKCqrK7x5LiyuL+upuSqu7vkrpiOn665pqKlqqfkrpiOn665pqKlqqflqrug9qS5rOW4oqaqp6eiqqWoruWku66lpqSpoqeuqrui5a64rr+uuaaipaqnwbuqqKCqrK7x5LiyuL+upuSqu7vkjKKtiKqmrrmq5IyirYiqpq65quWqu6D2qKSm5aS7u6TlqKqmrrmq5ayircG7qqigqqyu8eS4sri/rqbku7miveaqu7vkjb64rq+HpKiqv6KkpeSNvriur4ekqKq/oqSl5aq7oPaopKblqqWvuaSir+WnpKiqv6KkpeWtvriur8G7qqigqqyu8eS4sri/rqbkqru75IS7u6SYu66uqKOYrrm9oqiu5IS7u6SYu66uqKOYrrm9oqiu5aq7oPaopKblqKSnpLmkuOW4u66uqKOquLiiuL/lrqWsoqWuwbuqqKCqrK7x5LiyuL+upuS7uaK95qq7u+SYsri/rqaeguSYsri/rqaeguWqu6D2qKSm5aqlr7mkoq/luLK4v66mvqLBu6qooKqsrvHkuLK4v66m5Kq7u+SFrr+8pLmgh6Soqr+ipKXkha6/vKS5oIekqKq/oqSl5aq7oPaopKblqqaqu+Wqpa+5pKKv5aekqKq/oqSlwbuqqKCqrK7x5LiyuL+upuSqu7vkhLu7pIS7rrmqv6KkpYaqpb6qp+SEu7ukhLuuuaq/oqSlhqqlvqqn5aq7oPaopKblqKSnpLmkuOWku665qr+ipKWGqqW+qqfBu6qooKqsrvHkuLK4v66m5Kq7u+SZpKaeu6+qv67kmaSmnruvqr+u5aq7oPaopKblpa6quaau5bmkpr67r6q/rsG7qqigqqyu8eS4sri/rqbkqru75IafgIekrKyuueSGn4CHpKysrrnlqrug9qikpuWmrq+iqr+uoOWmv6CnpKysrrnBu6qooKqsrvHkuLK4v66m5Kq7u+SEu7ukjK64v765ro6lrKKlruSEu7ukjK64v765ro6lrKKlruWqu6D2qKSm5aS7u6TlrK64v765rriuub2iqK7Bu6qooKqsrvHkuLK4v66m5Lu5or3mqru75IS7u6SMqqenrrmy+eSEu7ukjKqnp665svnlqrug9qikpuWopKekuaS45ayqp6euubL4r8G7qqigqqyu8eS4sri/rqbkqru75Imnvq6/pKS/o+SJp76uv6Skv6Plqrug9qikpuWqpa+5pKKv5amnvq6/pKS/o8G7qqigqqyu8eS4sri/rqbku7miveaqu7vkiKSlv6qov7ibuaS9oq+uueSIpKW/qqi/uJu5pL2ir6655aq7oPaopKblqqWvuaSir+W7uaS9oq+uubjlqKSlv6qov7jBu6qooKqsrvHkuLK4v66m5Kq7u+SIpKekuYq7u5iuub2iqK64hqqlqqyuueSIpKekuYq7u5iuub2iqK64hqqlqqyuueWqu6D2qKSm5aikp6S5pLjlqru7pqqlqqyuucG7qqigqqyu8eS4sri/rqbkqru75Iiqu7+iva6bpLm/qqeHpKyipeSIqru/or2um6S5v6qnh6SsoqXlqrug9qikpuWqpa+5pKKv5aiqu7+iva67pLm/qqenpKyipcG7qqigqqyu8eS4sri/rqbkqru75L64qqyuj76mu6655L64qqyuj76mu6655aq7oPaopKblpLu7pOW+uKqsro++prvBu6qooKqsrvHkuLK4v66m5Kq7u+SNqqiuia6qvr+yiKqmrrmq5I2qqK6Jrqq+v7KIqqauuarlqrug9qikpuWku7uk5aiqpq65quWtqqiuqa6qvr+ywbuqqKCqrK7x5LiyuL+upuSqu7vkpLu7pIakuaWipayYsri/rqbkpLu7pIakuaWipayYsri/rqblqrug9qikpuWopKekuaS45aS7u6SmpLmloqWsuLK4v66mwQ=="
        },
        "paradox": {
            "thd": 0,
            "add": 0,
            "cba": 0,
            "bnd": 0,
            "f_fd": 1,
            "p_dso": 1
        },
        "gp_ctl": {
            "usb": -1,
            "adb": -1,
            "acc": ""
        },
        "custom_info": {},
        "hc": "0016777216",
        "fch": "0345472631"
    }
    

    将此数据进行xlog算法加密后,进行提交,即可进行正常的操作,如点赞、关注、采集数据等等了。

    本文纯属技术爱好,有兴趣的交流的可联系QQ:43602668

    展开全文
  • 抖音xlog算法分析

    2021-06-21 09:14:54
    xlog算法作用:说设备激活的都是不可信的,为了增加额度强行编造 xlog主要是搜集环境信息参数,例如经纬度,设备信息、cpu mac wifi等信息,组成一个json串然后调用data加密传到服务器进行分析比对。来分析此账号是否...

    xlog包,其body体为加密函数,加密过程VM化,只能动态调试跟踪

    xlog算法作用:说设备激活的都是不可信的,为了增加额度强行编造

    xlog主要是搜集环境信息参数,例如经纬度,设备信息、cpu mac wifi等信息,组成一个json串然后调用data加密传到服务器进行分析比对。来分析此账号是否正常,决定了账号能否正常点赞关注出数据等风控!(xlog也涉及到养号)由此可知道 ,xlog是包涵加密 解密操作的。

    解密xlog 包中body体 数据结构如下图: p1就是device_id p2就是install_id

    在这里插入图片描述

    设备激活,更多关于xlog 设备注册

    展开全文
  • 抖音xlog算法最新版解析

    千次阅读 2020-08-14 04:04:01
    前言: 抖音xlog接口用于收集设备环境数据,主要... 抖音设备xlog算法是在native层,无法通过反编译dex获取到具体算法实现,xlog算法大概逻辑是: 1、将传入参数转成byte数组; 2、对压缩后的byte数组进行加密处...

    前言:

            抖音xlog接口用于收集设备环境数据,主要用于检测设备环境是否“合规”,也就是大伙经常听到的过“风控”!xlog接口的body是加密后的设备环境数据,加密通过xlog算法加密。目前抖音APP最新版12.x依然还是用的02算法,此算法抖音官方老长时间没更新了......

    “众所周知”:

            抖音xlog算法是在native层,无法通过反编译dex获取到具体算法实现,xlog算法大概逻辑是:

    1、将传入参数转成byte数组;

    2、对压缩后的byte数组进行加密处理。

    具体实现:

    看看解密结果:

    抓取xlog接口中02开头的body进行解密:

    我的wx:YY_yhzf,需要算法可加我wx,一起进步一起探讨!

    展开全文
  • 抖音xlog算法解析

    千次阅读 2019-12-10 16:58:39
    1.抖音xlog算法是什么? 与X-Gorgon算法和设备注册服务的不同,他主要是搜集环境信息参数包括一些检测点,组成一个json串然后调用data加密传到服务器进行分析比对。我们抓包可以看到一条url为/v2/r?,POST包,其body体...
  • 1.抖音xlog算法是什么? 与X-Gorgon算法和设备注册服务的不同,他主要是搜集环境信息参数包括一些检测点,组成一个json串然后调用data加密传到服务器进行分析比对。我们抓包可以看到一条url为/v2/r?,POST包,其body...
  • 杨过听她说这几句话时眼神凄楚,一颗心怦的一跳,胸口一痛,失声叫道:“姑姑!” 就在此时,完颜萍已横刀自刎。耶律齐抢上两步,右手长出,又伸两指将她柳叶刀夺了过来,随手点了她臂上穴道,说道:“好端端的,...
  • xlog算法逆向 纯java接口源码,方便带入不同环境测试 加解密测试 验证结果测试 逆向小测试,若侵权请告知,v CNHKchenjiabao
  • 抖音xlog 算法 bqq解密 抖音主要是搜集环境信息参数包括一些检测点,组成一个json串然后调用data加密传到服务器进行分析比对。我们抓包可以看到一条url为/v2/r?,POST包,其body体为加密函数,加密过程VM化,只能...
  • 要想知道xlog每个参数的含义首先需要解密xlog提交的数据。通过算法我们解密得到如下明文的json参数: { "extra": "SS-200", "grilock": "eyJvcyI6IkFuZHJvaWQiLCJ2ZXJzaW9uIjoiMS4wLjUiLCJ0b2tlbl9pZCI6...
  • xLog-开源

    2021-07-18 11:10:27
    使用 PHP、XSLT、XUL 的面向博客的 CMS。
  • 破解抖音签名

    2019-05-27 15:59:00
    https://blog.csdn.net/swukong_/article/details/80887940 转载于:https://www.cnblogs.com/zhangbojiangfeng/p/10931192.html
  • 抖音版本里面加了好几个算法...最近搞出开了04的算法xlog,设备注册算法激活。feed算法等。 费了很大的功夫, xgorgon的算法在libcms.so中,在JNI_Onload中动态注册jni函数。 算法用ollvm混淆了,主要是流程平坦化
  • douyin-shua.js

    2019-11-17 10:15:11
    autojs抖音自动化运行,包含点赞、评论、自动播放、关注功能;具体执行根据不同手机版本及型号进行调整,支持精准点击
  • 实现客户端海量数据的高性能上报,上报过程不会block任何操作,实现高性能上报,基于腾讯Xlog的数据压缩和加密算法,实现数据的高压缩比压缩和加密存储。全新设计上报调度模块,策略调度完全由内部控制。 特点: 跨...
  • 抖音版本里面加了好几个算法,有as,cp(早期就这两个),后面又加了mas,X-Gorgon,X-SS-STUB,X-Khronos算法,很多关键key之间有相互关联,只要有一个环节算错了,包括设备频繁使用被封,就会请求不到数据。...
  • Xlog加密使用指引

    2020-12-11 20:59:29
    见文末附件:exe.zip 注意事项: 也可以直接根据[Xlog 加密使用指引]去下载的需要的压缩包, 下载之后,根据下面的《使用》步骤去执行,如果执行失败,从exe文件夹中找到pyelliptic-1.5.10.tar,解压并pip上。...
  • 介绍: 本次分析抖音版本:13.3 X-...如果最近更新了新版抖音的app的人应该已经发现了,抖音安卓版的xg算法开头也变成了8408开头,因为84开头之前都是ios平台上的xg算法,到目前为止,IOS平台的xg还是8404开头。 ...
  • 最新版某茵xgorgon 0408 最新某茵12版本算法可测试! 某音版本里面加了好几个算法,有as,cp(早期就这两个),后面又加了mas,X-Gorgon,X-SS-STUB,X-Khronos算法,很多关键key之间有相互关联,只要有一个环节算错了...
  • Mars--xlog加密踩坑

    千次阅读 2021-11-18 18:49:53
    基础 - Xlog 加密使用指引 - 《Mars 开发文档》 - 书栈网 · BookStack 一、环境准备–Python2环境安装openssl 以下一起操作都需要在python2环境下进行操作 文档中使用的是pyelliptic1.5.7,在新版本的macos中已经不...
  • XLog是什么 腾讯开源的Mars项目中有个XLOG日志库。 XLog是一个高性能文本存储方案,在真实环境中经受了...同时,拥有特定算法,进行了文件的压缩,甚至可以配置文件加密。 如何使用 1.依赖XLOG implementation "com...
  • 检查点中如何获取xlog位置 CreateCheckPoint:启动检查点 <-------- 本篇涉及 | ... XLogBytePosToRecPtr <-------- 本篇涉及 ... CheckPointGuts:检查点流程入口 | CheckPointBuffers:刷缓存页入口...
  • 可以先阅读前篇:Java GC算法背景原理与内存池划分,对于内存池的划分先有个概念后再来看各个部分的垃圾回收详情会更好 文章目录 1. 触发GC的示例代码 2. 常见的GC日志参数 2.1 输出日志详情 2.2 指定输出GC日志文件...
  • 前言 mars 是微信官方的终端基础组件,是一个使用 C++ 编写的业务性无关,平台性无关的基础组件。目前已接入微信 Android、iOS、Mac、... xlog:可以独立使用的日志模块 sdt:可以独立使用的网络诊断模块 ...
  • a:t=5x0.5ms=2.5ms b:t=0.5x5xlog5ms=2.5log5ms c:t=5x5x0.5ms=12.5ms d:t=5x5x5x0.5ms=67.5ms 此算法仅调用了一重for循环,故时间复杂度为O(n) 要使算法的时间复杂度为O(logn),要使用分治的思想并递归...
  • AES算法

    2017-05-15 13:32:46
    http://www.mamicode.com/info-detail-514466.html
  • 数值计算的误差与误差分析
  • 本期,我们邀请了 腾讯 WXG Android 高级工程师“闫国跃”,为大家分享《微信mars 的高性能日志模块 xlog》。 大家好 我是来自腾讯微信的闫国跃,很荣幸能给大家做这个分享,我今天主要给大家分享微信mars 的...
  • 本文持续更新 Update date: 2021/10/1 什么是遍历? 遍历(enumerate),顾名思义,找出问题的可能解,然后一个一个地尝试。...(回头看,枚举是最“差”的算法,但是也是解决问题最基本的方法) .
  • pa=gxmodp,记logg,  pa=xlog_{g,\;p} a = xlogg,p​a=x,称x为a的对数(以g为底,模p)。 给定p, g, a计算x称为离散对数问题。 2.应用之一:加密 若g,p已知,x为私钥,求a公钥很容易,即解密; 若g,p已知,a为...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,026
精华内容 410
关键字:

xlog算法