首页 > 其他分享 >jy验证码协议加密分析学习记录

jy验证码协议加密分析学习记录

时间:2024-04-14 18:03:04浏览次数:12  
标签:1magic jy com 验证码 geetest js static 加密 data

目录

流程参考

免责声明:

  • 本文章主要用于技术交流学习,作者不承担任何滥用技术所产生的法律责任。如有侵权,请联系作者删除!

分析请求与加密参数

register请求获取challenge和gt

# 访问 https://www.geetest.com/demo/gt/register-slide?t=1709175113777 获取 challenge和gt值
# 响应 {"success":1,"challenge":"a79e7880ec16af4ce333dfe7ed28bd55","gt":"019924a82c70bb123aae90d483087f94","new_captcha":true}

第一次W值分析

# https://apiv6.geetest.com/get.php 请求 貌似是环境检测  
# 访问 https://apiv6.geetest.com/get.php?gt=019924a82c70bb123aae90d483087f94&challenge=a79e7880ec16af4ce333dfe7ed28bd55&lang=zh-cn&pt=0&client_type=web&w=HISc8dMZkg4fOglJaKf6YGocjaLzlZ8jcIUbiqHJfZFOgzO3IiRHcSyKcjmc83qvJlNe(DGab9kz8TqenODEfSg6xDTvup)RosG3y8RFE6CCeEVntKnzAD3B7nwoWlfg3hwxWOtjZ)3FrKXfrtXndgpRA4)Rcf)185u23OXbKoouWxH7qq5)8D16d6u(1fzHgUypBOy5ny36DzhRsIn9FoNF1fFQhzRQYiHfNmFO8rq2YJbVjWqq44EQ7uaOpXz4fJXEnQd05DBpipE)tHPsk98NQyryLV(c42DlZn1aQ2ufCbkgJO9qXi2mJ)5V0sE3ZwYzQ(GiBUt9q2VOKldyCnwZ0)JQqHhBknacnJijG7b6aFrVhiXAcQPjpPyB6wUtWbHpjFP(vAhQs9R31xXfGgCQ014UNuMxOKs0gv)eZPIv73gdY8WSZ49jYWvT)lW0rXGAyzi3TG(uy2syGvJAbbqKJL4FsHN2ZtqG(21lRKqX4JV13qJcEdTyw7Y8qiWMgGjxR3T6wKEj184rM6uPpWQUlGpz3mcFbUAUJVMwK7je2hArl9FFjPudAEFAZ84PefyQyzIeRMa4E19RMjIasO1sdXUgMpasF4jelvdWLBILU0pHXQ0ujSxTfU5ytVj6WDsFIYYkk4fPp2b3GDsXxu9syQKt0cdak(yy8khFY(8bP6MUF5PnDFgL7KTK(98KIoL01RGOFMnzofU(lDk2d)PJ)b8QtotjcyVQ9QkGo2IEl5DQpOPefyH71ccRYrT3SInyVTg(oNkBSMLUUu6U60SuhleAV9DCXa4I8Nxh66nN1hdRTwkh23QU6Lq9WgDMueMfi0OLdWn6ZNle98NSYSpZ6B9Zro0ehzFRoxBKBDZWl2IVHg4ySEaNMhUc1Rjmry8PGFxUH9mRcVmcvaCwklmFoEGxCn0oONituL6xIM49fCdVlIi0(WxS)XrOjfXW1iAub9(6(4NFSmZnlPJLdmyyPn2ZISHzXrY(l7VC0DWbBOM(ny0SgbKgs6KdMAKvZ2fdUS)6ZZZ1CIW3Hj3cllzMtTzu)1XvPdcx)XLf0lu)sSBF5f)MGC0kwIR7q3XibUsvGQTKbaINuKCDf20oDaFN7gVn5xDVkLE9B2RlrHmVbgftiXSlnS)yNP(mlNnJ)MP73pZ6dcNq(ffeK689UKLaVLh3oTHBzdXZtSOW74N3awnFPqEbSLDHkKH9r3hmNfkk2MEm9J9ZDIvL9Ws58yqI2f05ZTsA4TkqSLHk)SU.4a3ebc24b0a51c0882e1b2ec8229b010251970c2d88e70858ac6e2629f9c1bbc0471493b4a284431c1104b62397aa6ea680c901053f0052395210c35487320944de7e0ae142dbae9423f38581e389bb1ee1dc01d90e6519e780991b11464351ea1f2e164953cca8e1fbf8401f2f9a7c970451905f4d1c2e62ae5facf3d3bedc7&callback=geetest_1709175116733

url = "https://apiv6.geetest.com/get.php"
params = {
    "gt": "019924a82c70bb123aae90d483087f94",
    "challenge": "a79e7880ec16af4ce333dfe7ed28bd55",
    "lang": "zh-cn",
    "pt": "0",
    "client_type": "web",
    "w": "HISc8dMZkg4fOglJaKf6YGocjaLzlZ8jcIUbiqHJfZFOgzO3IiRHcSyKcjmc83qvJlNe(DGab9kz8TqenODEfSg6xDTvup)RosG3y8RFE6CCeEVntKnzAD3B7nwoWlfg3hwxWOtjZ)3FrKXfrtXndgpRA4)Rcf)185u23OXbKoouWxH7qq5)8D16d6u(1fzHgUypBOy5ny36DzhRsIn9FoNF1fFQhzRQYiHfNmFO8rq2YJbVjWqq44EQ7uaOpXz4fJXEnQd05DBpipE)tHPsk98NQyryLV(c42DlZn1aQ2ufCbkgJO9qXi2mJ)5V0sE3ZwYzQ(GiBUt9q2VOKldyCnwZ0)JQqHhBknacnJijG7b6aFrVhiXAcQPjpPyB6wUtWbHpjFP(vAhQs9R31xXfGgCQ014UNuMxOKs0gv)eZPIv73gdY8WSZ49jYWvT)lW0rXGAyzi3TG(uy2syGvJAbbqKJL4FsHN2ZtqG(21lRKqX4JV13qJcEdTyw7Y8qiWMgGjxR3T6wKEj184rM6uPpWQUlGpz3mcFbUAUJVMwK7je2hArl9FFjPudAEFAZ84PefyQyzIeRMa4E19RMjIasO1sdXUgMpasF4jelvdWLBILU0pHXQ0ujSxTfU5ytVj6WDsFIYYkk4fPp2b3GDsXxu9syQKt0cdak(yy8khFY(8bP6MUF5PnDFgL7KTK(98KIoL01RGOFMnzofU(lDk2d)PJ)b8QtotjcyVQ9QkGo2IEl5DQpOPefyH71ccRYrT3SInyVTg(oNkBSMLUUu6U60SuhleAV9DCXa4I8Nxh66nN1hdRTwkh23QU6Lq9WgDMueMfi0OLdWn6ZNle98NSYSpZ6B9Zro0ehzFRoxBKBDZWl2IVHg4ySEaNMhUc1Rjmry8PGFxUH9mRcVmcvaCwklmFoEGxCn0oONituL6xIM49fCdVlIi0(WxS)XrOjfXW1iAub9(6(4NFSmZnlPJLdmyyPn2ZISHzXrY(l7VC0DWbBOM(ny0SgbKgs6KdMAKvZ2fdUS)6ZZZ1CIW3Hj3cllzMtTzu)1XvPdcx)XLf0lu)sSBF5f)MGC0kwIR7q3XibUsvGQTKbaINuKCDf20oDaFN7gVn5xDVkLE9B2RlrHmVbgftiXSlnS)yNP(mlNnJ)MP73pZ6dcNq(ffeK689UKLaVLh3oTHBzdXZtSOW74N3awnFPqEbSLDHkKH9r3hmNfkk2MEm9J9ZDIvL9Ws58yqI2f05ZTsA4TkqSLHk)SU.4a3ebc24b0a51c0882e1b2ec8229b010251970c2d88e70858ac6e2629f9c1bbc0471493b4a284431c1104b62397aa6ea680c901053f0052395210c35487320944de7e0ae142dbae9423f38581e389bb1ee1dc01d90e6519e780991b11464351ea1f2e164953cca8e1fbf8401f2f9a7c970451905f4d1c2e62ae5facf3d3bedc7",
    "callback": "geetest_1709175116733"
}

# 响应 geetest_1709175116733({"status": "success", "data": {"theme": "wind", "theme_version": "1.5.8", "static_servers": ["static.geetest.com", "static.geevisit.com"], "api_server": "api.geetest.com", "logo": true, "feedback": "https://www.geetest.com/contact#report", "c": [12, 58, 98, 36, 43, 95, 62, 15, 12], "s": "62795a67", "i18n_labels": {"copyright": "\u7531\u6781\u9a8c\u63d0\u4f9b\u6280\u672f\u652f\u6301", "error": "\u7f51\u7edc\u4e0d\u7ed9\u529b", "error_content": "\u8bf7\u70b9\u51fb\u6b64\u5904\u91cd\u8bd5", "error_title": "\u7f51\u7edc\u8d85\u65f6", "fullpage": "\u667a\u80fd\u68c0\u6d4b\u4e2d", "goto_cancel": "\u53d6\u6d88", "goto_confirm": "\u524d\u5f80", "goto_homepage": "\u662f\u5426\u524d\u5f80\u9a8c\u8bc1\u670d\u52a1Geetest\u5b98\u7f51", "loading_content": "\u667a\u80fd\u9a8c\u8bc1\u68c0\u6d4b\u4e2d", "next": "\u6b63\u5728\u52a0\u8f7d\u9a8c\u8bc1", "next_ready": "\u8bf7\u5b8c\u6210\u9a8c\u8bc1", "read_reversed": false, "ready": "\u70b9\u51fb\u6309\u94ae\u8fdb\u884c\u9a8c\u8bc1", "refresh_page": "\u9875\u9762\u51fa\u73b0\u9519\u8bef\u5566\uff01\u8981\u7ee7\u7eed\u64cd\u4f5c\uff0c\u8bf7\u5237\u65b0\u6b64\u9875\u9762", "reset": "\u8bf7\u70b9\u51fb\u91cd\u8bd5", "success": "\u9a8c\u8bc1\u6210\u529f", "success_title": "\u901a\u8fc7\u9a8c\u8bc1"}}})

geetest_1709175116733({"status": "success", "data": {"theme": "wind", "theme_version": "1.5.8", "static_servers": ["static.geetest.com", "static.geevisit.com"], "api_server": "api.geetest.com", "logo": true, "feedback": "https://www.geetest.com/contact#report", "c": [12, 58, 98, 36, 43, 95, 62, 15, 12], "s": "62795a67", "i18n_labels": {"copyright": "由极验提供技术支持", "error": "网络不给力", "error_content": "请点击此处重试", "error_title": "网络超时", "fullpage": "智能检测中", "goto_cancel": "取消", "goto_confirm": "前往", "goto_homepage": "是否前往验证服务Geetest官网", "loading_content": "智能验证检测中", "next": "正在加载验证", "next_ready": "请完成验证", "read_reversed": false, "ready": "点击按钮进行验证", "refresh_page": "页面出现错误啦!要继续操作,请刷新此页面", "reset": "请点击重试", "success": "验证成功", "success_title": "通过验证"}}})

# 主要是w值需要解决 应该是包含了浏览器的环境信息





  • 跟一下s值




var e = t[$_CEGEy(1069)][$_CEGEy(1024)]();
t[$_CEGDt(1169)] = e,
t[$_CEGDt(369)][$_CEGEy(1034)] = n[$_CEGDt(1034)],
t[$_CEGDt(369)][$_CEGEy(1102)] = n[$_CEGDt(864)],
t[$_CEGDt(369)][$_CEGEy(467)] = e;
var r = t[$_CEGDt(1159)]()
, o = $_BFo()[$_CEGDt(1108)](de[$_CEGEy(459)](t[$_CEGEy(369)]), t[$_CEGDt(1196)]())
, i = p[$_CEGDt(1184)](o)
, s = {
    "\u0067\u0074": t[$_CEGEy(369)][$_CEGEy(383)],
    "\u0063\u0068\u0061\u006c\u006c\u0065\u006e\u0067\u0065": t[$_CEGDt(369)][$_CEGEy(312)],
    "\u006c\u0061\u006e\u0067": n[$_CEGDt(275)],
    "\u0070\u0074": t[$_CEGDt(1055)],
    "\u0063\u006c\u0069\u0065\u006e\u0074\u005f\u0074\u0079\u0070\u0065": t[$_CEGEy(1053)],
    "\u0077": i + r
};

// 手动替换一下
var e = t['$_BJDB']['$_BIBg']();
t['$_CCFY'] = e,
t['$_EJV']['cc'] = n['cc'],
t['$_EJV']['ww'] = n['supportWorker'],
t['$_EJV']['i'] = e;
var r = t['$_CCGw']()
, o = $_BFo()['encrypt1'](de['stringify'](t['$_EJV']), t['$_CCHU']())
, i = p['$_HEt'](o)
, s = {
    "\u0067\u0074": t['$_EJV']['gt'],
    "\u0063\u0068\u0061\u006c\u006c\u0065\u006e\u0067\u0065": t['$_EJV']['challenge'],
    "\u006c\u0061\u006e\u0067": n['lang'],
    "\u0070\u0074": t['$_BJHU'],
    "\u0063\u006c\u0069\u0065\u006e\u0074\u005f\u0074\u0079\u0070\u0065": t['$_BJIl'],
    "w": i + r
};
// 需要找到  i + r 两个值怎么来的

i = p['$_HEt'](o) 
r = t['$_CCGw']()

i 值为(固定)'m00QhM0rGPAH3EzLkrv6gv3EmWowBFu)e8r88fZBKqw4eToVlVT8AAiSAo0wDS32Gu0KA6b6xxY8aNRMJSXaLd4mTaPkZodNZN0GSIFat5GI7GniW5jUk6QdOXOKkxl9tJpURZHzkVM2ERcmRTd7Sl6G8XK)ShEdVilDKJ2deh9EMeSiYD9YdO6iYZ5LLgm230QhHX36KfqHScraBQJyizHNF(WpIrCI7lIRgB4ZNSTcUy7jJGSKezUmCdUN9X0B4HbprVBuofnJdA6ODeZynPK5bAiiFnIEtC5zDmBKP3YGdiCgPhm8eYHtHYzB5Haqa3U0BvyXZWCsUolKZCoyBjFkMn6C(kEGxoQ9yIJd7at8QXIgwrQ3FkPSPVyt36vYKdR2rxDW6xbVT8h)1akk(V932jgFqByrZv0toF6tP4Ph4M(FikSaylrz7VbD5bGCcFdT0NEePKUpWtF3jzHv39F7B)6z7eAVSm8(L1NKVp)rqiVuWpkNHxBkApD)SCSSuKpao3lo62V5BUcHTpcWNPj1oedXpJq1kxVQS2P22lEq6uH(4nUu2etenhKM9lDCaJSMVzfbBnD)omTLHFao0xJm1xx2kItbdeENimwoznGZEIHlo8Fdp04cnbe6ID8HvIBLUUVqXf96YAUqFLjrij8x9DOL56xBJ2xcioKkTuXZrd4NAnvNa1LFOJFRtZEPTMVR)aAgZFSMmq3kFel0pWjTqbUIktbvekNO4PwPNogWhZVPqqZ5U60NoKFTWv6KGHrj0LyAPPM23ZGP8Mk144GL8yP2cQOq39OuhGF)tOrCkNrMM8KLsfIsqvyGcAdi3a8goBOZL6osZoeOyxL2Z8PWH5N9khEwKEV2X548pCTA4BTKNv6HtTxwQ9uBOhUOzcdoNc2NRoBlos6XvM9XflPEDatz4lKkRs(2rxAWA)MUJxSpis3mDHIsfKUuEAYBnUOFBYio1ksZl4cfhbibz8sprPl1lenPKBdLKXWge6PjOSH(Sd6TQdkWHHAHdW61cm41yDtFyLK34QcrCbQzeFYpD(oz860d5wM8pk4LqMK(9l1E1ggPi4A9qhvm(7u9tWTKvyNgGUXlWHv8VBh1RUTtJl5l(0qHEo4N8Ww7B(4WWmguS)QbbKcYK1FyeiALfAKxzeCB9mWa91hwqtTRyVVz426rNt5Jv8bQxJXreIPcAciiNGfvG3l0hY)JaBdO6PpOxXRdVFZ0tfmNve4Ieb9ySuPrSo8iKEssXzQ7Ymw.' 
r 值为(变值)  t['$_CCGw']()
'7af36d5592ce012433745c177a76bc00f91d52a6dccf164f87767b5e45f35a29c63fc9a1946a680bd956a7af3d6b688cf94e82a3249e3afe58f03a7122ee34608b0eb3ade3670795252dc605b2041d60231963864c26940410709c6e4b2f5a7b744bbbd4204a8cb5ccebb93f203f83ac98f50a7fe2e7223040fd4343fb2c8ed4'
 t['$_CCGw']()
'5b7e8332d2855e477f1d09582f23487b88fe4de6b9a5cf8fcd298e7d19162945a19321a489af669ca3bcf7641c429f602dc6a99d7b3c18522cb91e232fa4f6913f320c529dcc7e3e7440cbe0de6a5d56d9aaed54a2998f975c7ca82fda8197fd57dc2648ae648e2897a7bc928e2874ef1547ca2cd624928e62d26ada321f1113'
  • 首先分析r



 var t = new X()[$_CGEDO(71)](this[$_CGEDO(1196)](e)); //这里就出值了
 var t = new X()['encrypt'](this['$_CCHU'](e))  // 手动替换一下 
 // 发现 t 值为 一个加密算法 传入 一个 16为的字符 127a35106705ca9e 好像每次都不一样



// 是个随机值
function getRandomHexStrings() {
    let hexStrings = [];
    for (let i = 0; i < 4; i++) {
        const randomValue = 65536 * (1 + Math.random()) | 0;
        const hexString = randomValue.toString(16).substring(1);
        hexStrings.push(hexString);
    }
    return hexStrings.join('');
}
console.log(getRandomHexStrings());
-> d9e71f5ade224350
// 把这个代码生成的值替d9e71f5ade224350换上 启用本地js替换 试试网页还能不能正常过验证码



  • 接下来分析new X()['encrypt']加密算法是如何实现的


# 根据以上特征值可以肯定是非对称加密,在结合网上的文章 可以确定是rsa加密
公钥 '00C1E3934D1614465B33053E7F48EE4EC87B14B95EF88947713D25EECBFF7E74C7977D02DC1D9451F79DD5D1C10C29ACB6A9B4D6FB7D0A0279B6719E1772565F09AF627715919221AEF91899CAE08C0D686D748B20A3603BE2318CA6BC2B59706592A9219D0BF05C9F65023A21D2330807252AE0066D59CEEFA5F2748EA80BAB81'

# 发现特征值 encrypt1 encrypt w i + r doPublic  encrypt setPublic
  • 接下来分析i
i = p['$_HEt'](o)
先分析o值怎么来的

$_BFo()['encrypt1']('{"gt":"019924a82c70bb123aae90d483087f94","challenge":"f7a97fddf617636e491c7bee76590290","offline":false,"new_captcha":true,"product":"float","width":"300px","https":true,"api_server":"apiv6.geetest.com","protocol":"https://","type":"fullpage","static_servers":["static.geetest.com/","static.geevisit.com/"],"beeline":"/static/js/beeline.1.0.1.js","voice":"/static/js/voice.1.2.4.js","click":"/static/js/click.3.1.0.js","fullpage":"/static/js/fullpage.9.1.9-r8k4eq.js","slide":"/static/js/slide.7.9.2.js","geetest":"/static/js/geetest.6.0.9.js","aspect_radio":{"slide":103,"click":128,"voice":128,"beeline":50},"cc":12,"ww":true,"i":"-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1"}',"d9e71f5ade224350")






// 根据这些特征值可以发现 o的值应该是某种对称加密的加密值 
// 加密明文 '{"gt":"019924a82c70bb123aae90d483087f94","challenge":"f7a97fddf617636e491c7bee76590290","offline":false,"new_captcha":true,"product":"float","width":"300px","https":true,"api_server":"apiv6.geetest.com","protocol":"https://","type":"fullpage","static_servers":["static.geetest.com/","static.geevisit.com/"],"beeline":"/static/js/beeline.1.0.1.js","voice":"/static/js/voice.1.2.4.js","click":"/static/js/click.3.1.0.js","fullpage":"/static/js/fullpage.9.1.9-r8k4eq.js","slide":"/static/js/slide.7.9.2.js","geetest":"/static/js/geetest.6.0.9.js","aspect_radio":{"slide":103,"click":128,"voice":128,"beeline":50},"cc":12,"ww":true,"i":"-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1"}'
// 加密 key "d9e71f5ade224350"  也同样是rsa加密的明文

// 具体是AES CBC Pks7 做了一些小修改 如何确定没有调试出来 





# 根据网上文章,知道是自写的base64编码 https://www.52pojie.cn/thread-1162951-1-1.html

w的值我们就是的了是啥
w = 自写base64算法(res加密(json格式数据 , 16为的随机key)) + rsa(16为的随机key)

现在算法有了,再把加密明文分析出来,就可以自己生成w值了

{
	"gt": "019924a82c70bb123aae90d483087f94",
	"challenge": "f7a97fddf617636e491c7bee76590290",
	"offline": false,
	"new_captcha": true,
	"product": "float",
	"width": "300px",
	"https": true,
	"api_server": "apiv6.geetest.com",
	"protocol": "https://",
	"type": "fullpage",
	"static_servers": ["static.geetest.com/", "static.geevisit.com/"],
	"beeline": "/static/js/beeline.1.0.1.js",
	"voice": "/static/js/voice.1.2.4.js",
	"click": "/static/js/click.3.1.0.js",
	"fullpage": "/static/js/fullpage.9.1.9-r8k4eq.js",
	"slide": "/static/js/slide.7.9.2.js",
	"geetest": "/static/js/geetest.6.0.9.js",
	"aspect_radio": {
		"slide": 103,
		"click": 128,
		"voice": 128,
		"beeline": 50
	},
	"cc": 12, # 需要找一下含义 看看是不是可以写死
	"ww": true,  # 需要找一下含义 看看是不是可以写死
	"i": "-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1"  #  需要找一下含义 看看是不是可以写死
}
# 剩下的参数有些事之前请求响应回来的,有些应该可以写死
# 调试分析发现 cc ww i 应该是都可以写死

发先本次的w值并没有携带环境信息

第二次提交W分析

第二次的w值应是点击验证发送的,然后加载了验证码,应该是携带了环境信息,请求后返回了geetest_1709175123193({"status": "success", "data": {"result": "slide"}}) status是success应该表示环境通过验证,data['result']是slide表示需要通过滑块验证










第二次W明文值分析

// 第二次w res加密明文值
'{"lang":"zh-cn","type":"fullpage","tt":"M1G8Pjp8Pjp8ON9U)N(((.Abe5((b9,(gb((e(,,,,5(b(()*A9NjVURj-:(MQ0M9ODM9OE/1K)O2K2NkMENkW2KDMENkK,C*,-9MENkKDS0M9OE-1KDRj/1Rj/1R9j31Rj51S*O0ODM9OSRkKDRc.j-*2eM/O(FE,(e5(55(bb(,,,((5b((55((((b(e,nbq:h-NM9(9/)()ME(I/*5A1n--Bn/.F.@))@4)(:WEWHM9WeHM9NAM91)2,BY-0X)*nXYa2W5-2Bn-,1c1?-N1@0*(P-d0)(db96,b9@)(n-*8)(@0)(Y1)M9)qqqM(qqqqqqqM-Z,5b,5(8b,b,5b(((en,5b5,(7A25-*8-M?bb-M55/*0)(M5)4)(EA(MM-N11/)NM(N1n/)4)(@b9-*-)(N(?b9-Y-)b94)(?-Y-)4)(?b9-N,)M9-5-)(9/)(0qPqqqqn","light":"DIV_0","s":"c7c3e21112fe4f741921cb3e4ff9f7cb","h":"321f9af1e098233dbd03f250fd2b5e21","hh":"39bd9cad9e425c3a8f51610fd506e3b3","hi":"09eb21b3ae9542a9bc1e8b63b3d9a467","vip_order":-1,"ct":-1,"ep":{"v":"9.1.9-r8k4eq","te":false,"$_BBp":true,"ven":"Google Inc. (Intel)","ren":"ANGLE (Intel, Intel(R) UHD 5_0 ps_5_0, D3D11)","fp":["move",1142,148,1709810925226,"pointermove"],"lp":["up",874,38,1709810927098,"pointerup"],"em":{"ph":0,"cp":0,"ek":"11","wd":1,"nt":0,"si":0,"sc":0},"tm":{"a":1709810922883,"b":1709810923002,"c":1709810923002,"d":0,"e":0,"f":1709810922884,"g":1709810922884,"h":1709810922884,"i":1709810922884,"j":1709810922884,"k":0,"l":1709810922930,"m":1709810922999,"n":1709810923001,"o":1709810923004,"p":1709810923089,"q":1709810923089,"r":1709810923090,"s":1709810923091,"t":1709810923091,"u":1709810923091},"dnf":"dnf","by":0},"passtime":124158,"rp":"8ec8dd0be5abd11a51919a0d2bb7f068","captcha_token":"494964810","otpj":"jm4jwcx7"}'

{
	"lang": "zh-cn",     // 国内应该是 固定值
	"type": "fullpage",  // 滑块类型 之前请求返回信息 
	"tt": "M1G8Pjp8Pjp8ON9U)N(((.Abe5((b9,(gb((e(,,,,5(b(()*A9NjVURj-:(MQ0M9ODM9OE/1K)O2K2NkMENkW2KDMENkK,C*,-9MENkKDS0M9OE-1KDRj/1Rj/1R9j31Rj51S*O0ODM9OSRkKDRc.j-*2eM/O(FE,(e5(55(bb(,,,((5b((55((((b(e,nbq:h-NM9(9/)()ME(I/*5A1n--Bn/.F.@))@4)(:WEWHM9WeHM9NAM91)2,BY-0X)*nXYa2W5-2Bn-,1c1?-N1@0*(P-d0)(db96,b9@)(n-*8)(@0)(Y1)M9)qqqM(qqqqqqqM-Z,5b,5(8b,b,5b(((en,5b5,(7A25-*8-M?bb-M55/*0)(M5)4)(EA(MM-N11/)NM(N1n/)4)(@b9-*-)(N(?b9-Y-)b94)(?-Y-)4)(?b9-N,)M9-5-)(9/)(0qPqqqqn", // 需要分析 好像是鼠标轨迹的加密值
	"light": "DIV_0", // 固定? 
	"s": "c7c3e21112fe4f741921cb3e4ff9f7cb",   // 需要分析 
	"h": "321f9af1e098233dbd03f250fd2b5e21",   // 需要分析 
	"hh": "39bd9cad9e425c3a8f51610fd506e3b3",   // 需要分析 
	"hi": "09eb21b3ae9542a9bc1e8b63b3d9a467",   // 需要分析 
	"vip_order": -1,  // 固定? 
	"ct": -1,  // 固定? 
	"ep": {
		"v": "9.1.9-r8k4eq",  // fullpage.9.1.9-r8k4eq.js   这个js的后缀
		"te": false,        // 固定? 
		"$_BBp": true,      // 固定? 
		"ven": "Google Inc. (Intel)",   // 浏览器的供应商 基于Intel架构运行
		"ren": "ANGLE (Intel, Intel(R) UHD Graphics 630 (0x00009BC8) Direct3D11 vs_5_0 ps_5_0, D3D11)", // 电脑显卡信息?
		"fp": ["move", 1142, 148, 1709810925226, "pointermove"],   //鼠标轨迹信息
		"lp": ["up", 874, 38, 1709810927098, "pointerup"],  //鼠标轨迹信息
		"em": {
			"ph": 0,
			"cp": 0,
			"ek": "11",
			"wd": 1,
			"nt": 0,
			"si": 0,
			"sc": 0
		},  // 需要分析 
		"tm": {
			"a": 1709810922883,
			"b": 1709810923002,
			"c": 1709810923002,
			"d": 0,
			"e": 0,
			"f": 1709810922884,
			"g": 1709810922884,
			"h": 1709810922884,
			"i": 1709810922884,
			"j": 1709810922884,
			"k": 0,
			"l": 1709810922930,
			"m": 1709810922999,
			"n": 1709810923001,
			"o": 1709810923004,
			"p": 1709810923089,
			"q": 1709810923089,
			"r": 1709810923090,
			"s": 1709810923091,
			"t": 1709810923091,
			"u": 1709810923091
		}, // 时间间隔?
		"dnf": "dnf",  // 固定?  
		"by": 0  // 固定? 
	},
	"passtime": 124158,  // 时间信息
	"rp": "8ec8dd0be5abd11a51919a0d2bb7f068",  // 需要分析  
	"captcha_token": "494964810",// 需要分析 
	"otpj": "jm4jwcx7"// 需要分析 
}

r = $_CFHIS(781) + i[$_CFHIS(1121)] + $_CFHJL(1194) + n(o[$_CFHJL(45)]() + n(n[$_CFHJL(45)]()) + n(e[$_CFHJL(45)]())) + $_CFHJL(1117);

手动解一下混淆
r = $_CFHIS(781) + i[$_CFHIS(1121)] + $_CFHJL(1194) + n(o[$_CFHJL(45)]() + n(n[$_CFHJL(45)]()) + n(e[$_CFHJL(45)]())) + $_CFHJL(1117);
r = '{' + 
    '"lang":"zh-cn","type":"fullpage","tt":"M,p8Pjp/9A3(1bb((bng5)9-LJ)jA1RkKDRj51Rj11-)Rj71Rj5*.kI9M9MMO)-)/)(3K(2X((((((5,e(ee8ob9S-6,-P-R60?SOI-/J/b98-(9b9-),*M9bM/)()MU)qqqq(-eSE(()vS)jELS0dS*)0N(2E5*9Qm2M9MA*(,(M)(5*(EE*:j1*9E1,(M/,(RMM2)Mb5*Q(8qqb","light":"DIV_0","s":"c7c3e21112fe4f741921cb3e4ff9f7cb","h":"321f9af1e098233dbd03f250fd2b5e21","hh":"39bd9cad9e425c3a8f51610fd506e3b3","hi":"09eb21b3ae9542a9bc1e8b63b3d9a467","vip_order":-1,"ct":-1,"ep":{"v":"9.1.9-r8k4eq","te":false,"$_BBp":true,"ven":"Google Inc. (Intel)","ren":"ANGLE (Intel, Intel(R) UHD Graphics 630 (0x00009BC8) Direct3D11 vs_5_0 ps_5_0, D3D11)","fp":["move",1021,148,1709887627256,"pointermove"],"lp":["up",860,85,1709887628023,"pointerup"],"em":{"ph":0,"cp":0,"ek":"11","wd":1,"nt":0,"si":0,"sc":0},"tm":{"a":1709887621271,"b":1709887621428,"c":1709887621428,"d":0,"e":0,"f":1709887621271,"g":1709887621300,"h":1709887621300,"i":1709887621300,"j":1709887621341,"k":1709887621321,"l":1709887621342,"m":1709887621408,"n":1709887621426,"o":1709887621431,"p":1709887621608,"q":1709887621608,"r":1709887621609,"s":1709887621610,"t":1709887621610,"u":1709887621610},"dnf":"dnf","by":0},"passtime":10483,"rp":"22dcaea14d01bf9e4ab63dd737b841ab",'+ 
    '"captcha_token":"' + 
    n("function o(e, t) {\n            var $_CFHIS = yCtOu.$_CT,\n                $_CFHHv = ['$_CFIBZ'].concat($_CFHIS),\n                $_CFHJL = $_CFHHv[1];\n            $_CFHHv.shift();\n            var $_CFIAt = $_CFHHv[0];\n\n            function n(e) {\n              var $_DDHGx = yCtOu.$_Dm()[6][14];\n\n              for (; $_DDHGx !== yCtOu.$_Dm()[12][11];) {\n                switch ($_DDHGx) {\n                  case yCtOu.$_Dm()[4][14]:\n                    var t = 5381,\n                        n = e[$_CFHJL(41)],\n                        r = 0;\n                    $_DDHGx = yCtOu.$_Dm()[0][13];\n                    break;\n\n                  case yCtOu.$_Dm()[6][13]:\n                    while (n--) {\n                      t = (t << 5) + t + e[$_CFHJL(51)](r++);\n                    }\n\n                    $_DDHGx = yCtOu.$_Dm()[8][12];\n                    break;\n\n                  case yCtOu.$_Dm()[0][12]:\n                    return t &= ~(1 << 31);\n                    break;\n                }\n              }\n            }\n\n            100 < new Date()[$_CFHJL(228)]() - t[$_CFHIS(228)]() && (e = $_CFHIS(1192));\n            r = $_CFHIS(781) + i[$_CFHIS(1121)] + $_CFHJL(1194) + n(o[$_CFHJL(45)]() + n(n[$_CFHJL(45)]()) + n(e[$_CFHJL(45)]())) + $_CFHJL(1117);\n          }"
      +  1423470204 +  2090104881) 
    + '","otpj":"jm4jwcx7"}'

n("function o(e, t) {\n            var $_CFHIS = yCtOu.$_CT,\n                $_CFHHv = ['$_CFIBZ'].concat($_CFHIS),\n                $_CFHJL = $_CFHHv[1];\n            $_CFHHv.shift();\n            var $_CFIAt = $_CFHHv[0];\n\n            function n(e) {\n              var $_DDHGx = yCtOu.$_Dm()[6][14];\n\n              for (; $_DDHGx !== yCtOu.$_Dm()[12][11];) {\n                switch ($_DDHGx) {\n                  case yCtOu.$_Dm()[4][14]:\n                    var t = 5381,\n                        n = e[$_CFHJL(41)],\n                        r = 0;\n                    $_DDHGx = yCtOu.$_Dm()[0][13];\n                    break;\n\n                  case yCtOu.$_Dm()[6][13]:\n                    while (n--) {\n                      t = (t << 5) + t + e[$_CFHJL(51)](r++);\n                    }\n\n                    $_DDHGx = yCtOu.$_Dm()[8][12];\n                    break;\n\n                  case yCtOu.$_Dm()[0][12]:\n                    return t &= ~(1 << 31);\n                    break;\n                }\n              }\n            }\n\n            100 < new Date()[$_CFHJL(228)]() - t[$_CFHIS(228)]() && (e = $_CFHIS(1192));\n            r = $_CFHIS(781) + i[$_CFHIS(1121)] + $_CFHJL(1194) + n(o[$_CFHJL(45)]() + n(n[$_CFHJL(45)]()) + n(e[$_CFHJL(45)]())) + $_CFHJL(1117);\n          }"
      +  1423470204 +  2090104881) -> 494964810

结果为:'{"lang":"zh-cn","type":"fullpage","tt":"M,p8Pjp/9A3(1bb((bng5)9-LJ)jA1RkKDRj51Rj11-)Rj71Rj5*.kI9M9MMO)-)/)(3K(2X((((((5,e(ee8ob9S-6,-P-R60?SOI-/J/b98-(9b9-),*M9bM/)()MU)qqqq(-eSE(()vS)jELS0dS*)0N(2E5*9Qm2M9MA*(,(M)(5*(EE*:j1*9E1,(M/,(RMM2)Mb5*Q(8qqb","light":"DIV_0","s":"c7c3e21112fe4f741921cb3e4ff9f7cb","h":"321f9af1e098233dbd03f250fd2b5e21","hh":"39bd9cad9e425c3a8f51610fd506e3b3","hi":"09eb21b3ae9542a9bc1e8b63b3d9a467","vip_order":-1,"ct":-1,"ep":{"v":"9.1.9-r8k4eq","te":false,"$_BBp":true,"ven":"Google Inc. (Intel)","ren":"ANGLE (Intel, Intel(R) UHD Graphics 630 (0x00009BC8) Direct3D11 vs_5_0 ps_5_0, D3D11)","fp":["move",1021,148,1709887627256,"pointermove"],"lp":["up",860,85,1709887628023,"pointerup"],"em":{"ph":0,"cp":0,"ek":"11","wd":1,"nt":0,"si":0,"sc":0},"tm":{"a":1709887621271,"b":1709887621428,"c":1709887621428,"d":0,"e":0,"f":1709887621271,"g":1709887621300,"h":1709887621300,"i":1709887621300,"j":1709887621341,"k":1709887621321,"l":1709887621342,"m":1709887621408,"n":1709887621426,"o":1709887621431,"p":1709887621608,"q":1709887621608,"r":1709887621609,"s":1709887621610,"t":1709887621610,"u":1709887621610},"dnf":"dnf","by":0},"passtime":10483,"rp":"22dcaea14d01bf9e4ab63dd737b841ab","captcha_token":"494964810","otpj":"jm4jwcx7"}'

// 分析加密使用的明文 tt值







// 分析 s,h,hh,hi,rp值 

{
	"lang": "zh-cn",
	"type": "fullpage",
	"tt": "M,p8Pjp/9A3(1bb((bng5)9-LJ)jA1RkKDRj51Rj11-)Rj71Rj5*.kI9M9MMO)-)/)(3K(2X((((((5,e(ee8ob9S-6,-P-R60?SOI-/J/b98-(9b9-),*M9bM/)()MU)qqqq(-eSE(()vS)jELS0dS*)0N(2E5*9Qm2M9MA*(,(M)(5*(EE*:j1*9E1,(M/,(RMM2)Mb5*Q(8qqb",
	"light": "DIV_0",
	"s": "c7c3e21112fe4f741921cb3e4ff9f7cb",
	"h": "321f9af1e098233dbd03f250fd2b5e21",
	"hh": "39bd9cad9e425c3a8f51610fd506e3b3",
	"hi": "09eb21b3ae9542a9bc1e8b63b3d9a467",
	"vip_order": -1,
	"ct": -1,
	"ep": {
		"v": "9.1.9-r8k4eq",
		"te": false,
		"$_BBp": true,
		"ven": "Google Inc. (Intel)",
		"ren": "ANGLE (Intel, Intel(R) UHD Graphics 630 (0x00009BC8) Direct3D11 vs_5_0 ps_5_0, D3D11)",
		"fp": ["move", 1021, 148, 1709887627256, "pointermove"],
		"lp": ["up", 860, 85, 1709887628023, "pointerup"],
		"em": {
			"ph": 0,
			"cp": 0,
			"ek": "11",
			"wd": 1,
			"nt": 0,
			"si": 0,
			"sc": 0
		},
		"tm": {
			"a": 1709887621271,
			"b": 1709887621428,
			"c": 1709887621428,
			"d": 0,
			"e": 0,
			"f": 1709887621271,
			"g": 1709887621300,
			"h": 1709887621300,
			"i": 1709887621300,
			"j": 1709887621341,
			"k": 1709887621321,
			"l": 1709887621342,
			"m": 1709887621408,
			"n": 1709887621426,
			"o": 1709887621431,
			"p": 1709887621608,
			"q": 1709887621608,
			"r": 1709887621609,
			"s": 1709887621610,
			"t": 1709887621610,
			"u": 1709887621610
		},
		"dnf": "dnf",
		"by": 0
	},
	"passtime": 10483,
	"rp": "22dcaea14d01bf9e4ab63dd737b841ab",
	"captcha_token": "494964810",
	"otpj": "jm4jwcx7"
}


// s 值为  "M(*((1((M((" -> 经过处理 -> "tEQOYESJYERVYEQ." -> md5算法小写 -> c7c3e21112fe4f741921cb3e4ff9f7cb

// h 值为 -1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1 -> 经过处理 -> "dGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGFdxFsdzEBYxHgZdGE."  md5算法小写 -> 321f9af1e098233dbd03f250fd2b5e21

// hh值为 "-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1magic data-1" md5算法小写 -> 39bd9cad9e425c3a8f51610fd506e3b3

// hi值为   "-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1!!-1"  md5算法小写 -> 39bd9cad9e425c3a8f51610fd506e3b3

// vip_order ct 可以为固定值

// ep值为  时间戳部分可能要修改一下
{
    "v": "9.1.9-r8k4eq",
    "te": false,
    "$_BBp": true,
    "ven": "Google Inc. (Intel)",
    "ren": "ANGLE (Intel, Intel(R) UHD Graphics 630 (0x00009BC8) Direct3D11 vs_5_0 ps_5_0, D3D11)",
    "fp": [
        "move",
        688,
        148,
        1710313804689,
        "pointermove"
    ],
    "lp": [
        "up",
        873,
        159,
        1710313805276,
        "pointerup"
    ],
    "em": {
        "ph": 0,
        "cp": 0,
        "ek": "11",
        "wd": 1,
        "nt": 0,
        "si": 0,
        "sc": 0
    },
    "tm": {
        "a": 1710313804061,
        "b": 1710313804212,
        "c": 1710313804213,
        "d": 0,
        "e": 0,
        "f": 1710313804062,
        "g": 1710313804087,
        "h": 1710313804087,
        "i": 1710313804087,
        "j": 1710313804136,
        "k": 1710313804111,
        "l": 1710313804136,
        "m": 1710313804209,
        "n": 1710313804211,
        "o": 1710313804214,
        "p": 1710313804323,
        "q": 1710313804323,
        "r": 1710313804325,
        "s": 1710313804325,
        "t": 1710313804325,
        "u": 1710313804325
    },
    "dnf": "dnf",
    "by": 0
}

// passtime 间隔时间 可以随机 注意 rp值加密要用到

// rp值为 "gt" + "challenge" +  passtime ->md5小写算法
// 注意第二次的w值 只做了aes+base64加密

// 接下来请求验证码图片  并且还原缺口图 识别距离


// 还原底图的算法是固定的

// 识别算法参考网上文章使用 cv2或ddddocr

// 分析第三个w

第三个W值分析


{
    "lang": "zh-cn",
    "userresponse": "aeeeaaaee8c", // 需要分析  缺口位置距离 +  "challenge"
    "passtime": 511,   // 需要分析
    "imgload": 55,   // 35 68 图片加载时间 应该可以随机
    "aa": "O(!!OssstsytttstttsstssssssXts(!!(81111201111111J11Md$)8$)DH0:EE$)L1", // 轨迹加密值
    "ep": {
        "v": "7.9.2",
        "$_BIE": false,
        "me": true,
        "tm": {
            "a": 1710323151052,
            "b": 1710323151287,
            "c": 1710323151288,
            "d": 0,
            "e": 0,
            "f": 1710323151053,
            "g": 1710323151081,
            "h": 1710323151081,
            "i": 1710323151081,
            "j": 1710323151129,
            "k": 1710323151104,
            "l": 1710323151129,
            "m": 1710323151283,
            "n": 1710323151285,
            "o": 1710323151290,
            "p": 1710323151459,
            "q": 1710323151459,
            "r": 1710323151460,
            "s": 1710323151460,
            "t": 1710323151460,
            "u": 1710323151460
        },
        "td": -1
    },
    "h9s9": "1816378497",  // 需要分析
    "rp": "7a29ba17514c6b2ac0a39b43d77b9ab5" // 和第二个w值一样  "gt" + "challenge" +  passtime ->md5小写算法
}

// 分析aa



// aa就是轨迹的加密值
// userresponse": "aeeeaaaee8c", //   缺口位置距离 +  "challenge" 做一些特殊处理




// passtime 为轨迹耗时时间

// h9s9 应该可以写死 对响应的js代码做了.toString 在用Rbfk函数做了计算得出来的值 


验证

score 为打分,好像是值越小越可信

小坑

# 第三次w值的 提交参数challenge=65d0b76bf75b5332c8ccf39b01bb5b40fj 会多两位,是返回图片响应的,但是w加密中使用的还是32位的challenge

# 每次w值生成后随机等待一下再提交

# 轨迹最好随机,指纹可固定,也可以多采集一些

# error=runtime error 为加密明文格式问题 正常明文为json格式

标签:1magic,jy,com,验证码,geetest,js,static,加密,data
From: https://www.cnblogs.com/guokaifeng/p/18127782

相关文章

  • 密码引擎-3-加密API研究
    任务详情密码引擎API的主要标准和规范包括:1微软的CryptoAPI2RAS公司的PKCS#11标准3中国商用密码标准:GMT0016-2012智能密码钥匙密码应用接口规范,GMT0018-2012密码设备应用接口规范等研究以上API接口,总结他们的异同,并以龙脉GM3000Key为例,写出调用不同接口的代码,提交博客......
  • 实验一-密码引擎-3-加密API研究
    任务详情密码引擎API的主要标准和规范包括:1微软的CryptoAPI2RAS公司的PKCS#11标准3中国商用密码标准:GMT0016-2012智能密码钥匙密码应用接口规范,GMT0018-2012密码设备应用接口规范等研究以上API接口,总结他们的异同,并以龙脉GM3000Key为例,写出调用不同接口的代码,提交博客......
  • 加密API研究
    加密API研究一、标准内容1.CryptoAPI加密API是一种提供加密操作接口的技术,为应用程序提供在软件和硬件之间的通信方式。加密API通常提供对数据的加密、解密、签名、验证和密钥管理等功能。这些API的存在使开发者可以方便地集成加密功能,提高应用程序的安全性。此外,CryptoAPI......
  • 实验一-密码引擎-3-加密API研究
    实验一-密码引擎-3-加密API研究任务详情密码引擎API的主要标准和规范包括:1微软的CryptoAPI2RAS公司的PKCS#11标准3中国商用密码标准:GMT0016-2012智能密码钥匙密码应用接口规范,GMT0018-2012密码设备应用接口规范等研究以上API接口,总结他们的异同,并以龙脉GM3000Key......
  • 实验一-密码引擎-3-加密API研究
    任务要求密码引擎API的主要标准和规范包括:1微软的CryptoAPI2RAS公司的PKCS#11标准3中国商用密码标准:GMT0016-2012智能密码钥匙密码应用接口规范,GMT0018-2012密码设备应用接口规范等研究以上API接口,总结他们的异同,并以龙脉GM3000Key为例,写出调用不同接口的代码,提交博客......
  • 密码引擎-加密API研究
    任务详细密码引擎API的主要标准和规范包括:1微软的CryptoAPI2RAS公司的PKCS#11标准3中国商用密码标准:GMT0016-2012智能密码钥匙密码应用接口规范,GMT0018-2012密码设备应用接口规范等研究以上API接口,总结他们的异同,并以龙脉GM3000Key为例,写出调用不同接口的代码,提交......
  • 实验一-密码引擎-3-加密API研究
    一、微软的CryptoAPI参考网站:https://learn.microsoft.com/zh-cn/windows/win32/seccrypto/cryptoapi-system-architecturehttps://developer.mozilla.org/zh-CN/docs/Web/API/Web_Crypto_APIhttps://www.w3.org/TR/2017/REC-WebCryptoAPI-20170126/https://blog.csdn.net/l......
  • 国密 SM2 的非对称加密解密过程
    国密SM2的非对称加密解密过程椭圆曲线椭圆曲线是由一组方程描述的点的集合:y2=x3+ax+b其中a,b满足(4a3+27b2≠0)SM2定义了一个sm2p256v1的椭圆曲线方程各种参数BigIntegerp=FromHex("FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFF......
  • 云场景下的代理重加密 Proxy Re-Encryption
    目录主页引言代理重加密代理重加密关键流程实践&应用总结参考资料主页个人微信公众号:密码应用技术实战个人博客园首页:https://www.cnblogs.com/informatics/引言2022年12月,人工智能迎来了一件大事,OpenAI的ChatGPT横空诞生,成为了现象级产品。如果说算力是人工智能的发动机,那......
  • php rsa长文加密解密
    密钥类型:1024bit:分段加密字节数为117,分段解密字节数为128。2048bit:分段加密字节数为245,分段解密字节数为256。 classRsaBill{private$public_key_resource;private$private_key_resource;publicfunction__construct(){$this->public_key......