Js逆向教程18-l参数分解
创始人
2024-03-15 08:51:46
0

作者:虚坏叔叔
博客:https://xuhss.com

早餐店不会开到晚上,想吃的人早就来了!😄

Js逆向教程18-l参数分解

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ylV7XHTF-1670070645469)(../../1.png)]

一、l参数分解

可以看到l是一个大数组。

里面有很多字节码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eJE0t8iG-1670070645470)(02 - 副本.assets/image-20221203091323444.png)]

V[$_CAIAt(353)](gt[$_CAIAt(218)](o), r[$_CAIAt(756)]())

通过字符串还原

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eXjteb5b-1670070645471)(02 - 副本.assets/image-20221203091849292.png)]

V['encrypt'](gt['stringify'](o), r['$_CCEc']())

然后看o。

{"lang": "zh-cn","userresponse": "933de","passtime": 389,"imgload": 94,"aa": "d(!!Rssssts_t0stsssssw(!!(p119bMb1EL9A20992$)7","ep": {"v": "7.8.9","$_BIB": false,"me": true,"tm": {"a": 1670029641384,"b": 0,"c": 0,"d": 0,"e": 0,"f": 1670029641403,"g": 1670029642076,"h": 1670029642081,"i": 1670029642081,"j": 1670029642148,"k": 1670029642114,"l": 1670029642148,"m": 1670029642584,"n": 1670029642584,"o": 1670029642587,"p": 1670029643105,"q": 1670029643105,"r": 1670029643106,"s": 1670029643176,"t": 1670029643176,"u": 1670029643176},"td": -1},"da0j": "1302126368","rp": "acc4a24ed1c0c673bea52dfafc3b2ba6"
}

并且再次启动 这个o会改变。

{"lang": "zh-cn","userresponse": "c088800c0c22e1","passtime": 335,"imgload": 85,"aa": "N,,(!!Twwvtsv9sL*ts~s~ssvt)vsw(!!(K:1DW92092D:9:0911E8E1::","ep": {"v": "7.8.9","$_BIB": false,"me": true,"tm": {"a": 1670032125609,"b": 1670032126117,"c": 1670032126117,"d": 0,"e": 0,"f": 1670032125616,"g": 1670032125621,"h": 1670032125622,"i": 1670032125622,"j": 1670032125677,"k": 1670032125647,"l": 1670032125678,"m": 1670032126111,"n": 1670032126112,"o": 1670032126119,"p": 1670032126334,"q": 1670032126334,"r": 1670032126336,"s": 1670032126409,"t": 1670032126409,"u": 1670032126409},"td": -1},"da0j": "1302126368","rp": "4940a9ff07828eb819bc8534cda69ac2"
}

对比下来,有如下参数会变动

  • userresponse
  • imgload
  • aa 可以猜测aa就是滑动轨迹。
  • rp

二、aa轨迹值得获取

aa是通过e赋值的,e是函数的参数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NRHRpBPv-1670070645471)(02 - 副本.assets/image-20221203094216188.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gxGQw5LN-1670070645472)(02 - 副本.assets/image-20221203095426861.png)]

通过堆栈可以看到它是由l传过来的:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FkI2aoWl-1670070645473)(02 - 副本.assets/image-20221203095638029.png)]

再次调试 跟到这个l计算的地方

l = n[$_DAAAV(913)][$_DAAAV(1059)](n[$_DAAAV(913)][$_CJJJb(1066)](), n[$_DAAAV(69)][$_CJJJb(1097)], n[$_DAAAV(69)][$_CJJJb(319)]);

还原“

l = n['$_CICM']['$_BBEM'](n['$_CICM']['$_FDU'](), n['$_CJa']['c'], n['$_CJa']['s']);

可以看出来,这是一个方法传递3个参数,将参数还原出来

第一个参数得到的是已经编码好的值 是和轨迹相关的。

n['$_CICM']['$_FDU']()
'U-!!Lxusttttst(ysttsttstt!!(S2891912028112011192'

第二个参数是直接获取的,这数据是从get.php请求里面获取的c

n['$_CJa']['c']
(9) [12, 58, 98, 36, 43, 95, 62, 15, 12]

第三个参数是js的crc版本数据校验值 是从get.php请求里面获取的s

n['$_CJa']['s']
'3a39574c'

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Rm8Wopnl-1670070645473)(02 - 副本.assets/image-20221203101255045.png)]

2.1参数破解

确定了第一个参数是轨迹相关之后 可以进到这个函数里面 看一下轨迹是如何计算出的。

"\u0024\u005f\u0046\u0044\u0055": function() {var $_BEGJO = QBLnx.$_CM, $_BEGIl = ['$_BEHCE'].concat($_BEGJO), $_BEHAL = $_BEGIl[1];$_BEGIl.shift();var $_BEHBJ = $_BEGIl[0];function n(t) {var $_DBEAP = QBLnx.$_Db()[3][19];for (; $_DBEAP !== QBLnx.$_Db()[12][17]; ) {switch ($_DBEAP) {case QBLnx.$_Db()[0][19]:var e = $_BEGJO(447), n = e[$_BEGJO(125)], r = $_BEGJO(15), i = Math[$_BEGJO(360)](t), o = parseInt(i / n);n <= o && (o = n - 1),o && (r = e[$_BEGJO(187)](o));$_DBEAP = QBLnx.$_Db()[12][18];break;case QBLnx.$_Db()[9][18]:var s = $_BEHAL(15);return t < 0 && (s += $_BEHAL(474)),r && (s += $_BEGJO(411)),s + r + e[$_BEGJO(187)](i %= n);break;}}}var t = function(t) {var $_BEHET = QBLnx.$_CM, $_BEHDy = ['$_BEHHD'].concat($_BEHET), $_BEHFo = $_BEHDy[1];$_BEHDy.shift();var $_BEHGR = $_BEHDy[0];for (var e, n, r, i = [], o = 0, s = 0, a = t[$_BEHET(125)] - 1; s < a; s++)e = Math[$_BEHET(129)](t[s + 1][0] - t[s][0]),n = Math[$_BEHFo(129)](t[s + 1][1] - t[s][1]),r = Math[$_BEHET(129)](t[s + 1][2] - t[s][2]),0 == e && 0 == n && 0 == r || (0 == e && 0 == n ? o += r : (i[$_BEHET(173)]([e, n, r + o]),o = 0));return 0 !== o && i[$_BEHET(173)]([e, n, o]),i;}(this[$_BEHAL(343)]), r = [], i = [], o = [];return new ct(t)[$_BEHAL(20)](function(t) {var $_BEHJs = QBLnx.$_CM, $_BEHIl = ['$_BEICx'].concat($_BEHJs), $_BEIAy = $_BEHIl[1];$_BEHIl.shift();var $_BEIBp = $_BEHIl[0];var e = function(t) {var $_BEIEr = QBLnx.$_CM, $_BEIDP = ['$_BEIHs'].concat($_BEIEr), $_BEIFF = $_BEIDP[1];$_BEIDP.shift();var $_BEIGe = $_BEIDP[0];for (var e = [[1, 0], [2, 0], [1, -1], [1, 1], [0, 1], [0, -1], [3, 0], [2, -1], [2, 1]], n = 0, r = e[$_BEIEr(125)]; n < r; n++)if (t[0] == e[n][0] && t[1] == e[n][1])return $_BEIFF(406)[n];return 0;}(t);e ? i[$_BEHJs(173)](e) : (r[$_BEHJs(173)](n(t[0])),i[$_BEIAy(173)](n(t[1]))),o[$_BEIAy(173)](n(t[2]));}),r[$_BEGJO(421)]($_BEGJO(15)) + $_BEGJO(452) + i[$_BEGJO(421)]($_BEGJO(15)) + $_BEHAL(452) + o[$_BEGJO(421)]($_BEGJO(15));}

折叠代码看的更加清楚

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mrL5488P-1670070645474)(02 - 副本.assets/image-20221203105451415.png)]

调试进去可以看到t存的是坐标,它是一个数组

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J91FMZWY-1670070645475)(02 - 副本.assets/image-20221203111206857.png)]


然后,对单个坐标进行处理:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UxdEFN2S-1670070645475)(02 - 副本.assets/image-20221203111352200.png)]

最终返回如下:

r[$_BEGJO(421)]($_BEGJO(15)) + $_BEGJO(452) + i[$_BEGJO(421)]($_BEGJO(15)) + $_BEHAL(452) + o[$_BEGJO(421)]($_BEGJO(15));

还原:

r['join']('') + '!!' + i['join']('') + '!!' + o['join']('');

40:00

所以需要将这段代码抠出来,传递轨迹进去,就能够得到加密的字符串

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Kd0LkjBJ-1670070645476)(02 - 副本.assets/image-20221203174454718.png)]

它需要将轨迹参数传递进去:轨迹转换成字符串

'[[-37,-25,0],[0,0,0],[1,-1,4],[2,-1,13],[3,-1,21],[6,-2,29],[6,-2,37],[7,-3,53],[8,-3,61],[10,-3,69],[10,-3,77],[11,-3,93],[14,-3,100],[15,-3,109],[15,-3,117],[19,-3,125],[21,-3,133],[24,-3,142],[27,-3,149],[30,-3,158],[31,-3,165],[34,-3,173],[35,-3,181],[35,-3,189],[36,-3,198],[36,-3,310]]'

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tHbhvv0f-1670070645476)(02 - 副本.assets/image-20221203175926841.png)]

这个时候,将这个数组作为字符串,传递到window.get_track()函数 可以获得一个加密的结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4yDldVVa-1670070645477)(02 - 副本.assets/image-20221203180243655.png)]

2.2函数破解

函数在这里:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ncSDL7W5-1670070645477)(02 - 副本.assets/image-20221203195720676.png)]

搜索一下,都在一块代码里面 我们可以将这个函数也导出去:

		window.get_track = W[$_CJFA(230)]["\u0024\u005f\u0046\u0044\u0055"];window.get_method = W[$_CJFA(230)]["\u0024\u005f\u0042\u0042\u0045\u004d"];

总结

最后的最后
由本人水平所限,难免有错误以及不足之处, 屏幕前的靓仔靓女们 如有发现,恳请指出!

最后,谢谢你看到这里,谢谢你认真对待我的努力,希望这篇博客对你有所帮助!

你轻轻地点了个赞,那将在我的心里世界增添一颗明亮而耀眼的星!

💬 往期优质文章分享

  • C++ QT结合FFmpeg实战开发视频播放器-01环境的安装和项目部署
  • 解决QT问题:运行qmake:Project ERROR: Cannot run compiler ‘cl‘. Output:
  • 解决安装QT后MSVC2015 64bit配置无编译器和调试器问题
  • Qt中的套件提示no complier set in kit和no debugger,出现黄色感叹号问题解决(MSVC2017)
  • Python+selenium 自动化 - 实现自动导入、上传外部文件(不弹出windows窗口)

🚀 优质教程分享 🚀

  • 🎄如果感觉文章看完了不过瘾,可以来我的其他 专栏 看一下哦~
  • 🎄比如以下几个专栏:Python实战微信订餐小程序、Python量化交易实战、C++ QT实战类项目 和 算法学习专栏
  • 🎄可以学习更多的关于C++/Python的相关内容哦!直接点击下面颜色字体就可以跳转啦!
学习路线指引(点击解锁)知识定位人群定位
🧡 Python实战微信订餐小程序 🧡进阶级本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
💛Python量化交易实战 💛入门级手把手带你打造一个易扩展、更安全、效率更高的量化交易系统
❤️ C++ QT结合FFmpeg实战开发视频播放器❤️难度偏高分享学习QT成品的视频播放器源码,需要有扎实的C++知识!
💚 游戏爱好者九万人社区💚互助/吹水九万人游戏爱好者社区,聊天互助,白嫖奖品
💙 Python零基础到入门 💙Python初学者针对没有经过系统学习的小伙伴,核心目的就是让我们能够快速学习Python的知识以达到入门

🚀 资料白嫖,温馨提示 🚀

关注下面卡片即刻获取更多编程知识,包括各种语言学习资料,上千套PPT模板和各种游戏源码素材等等资料。更多内容可自行查看哦!

请添加图片描述

相关内容

热门资讯

汽车油箱结构是什么(汽车油箱结... 本篇文章极速百科给大家谈谈汽车油箱结构是什么,以及汽车油箱结构原理图解对应的知识点,希望对各位有所帮...
美国2年期国债收益率上涨15个... 原标题:美国2年期国债收益率上涨15个基点 美国2年期国债收益率上涨15个基...
嵌入式 ADC使用手册完整版 ... 嵌入式 ADC使用手册完整版 (188977万字)💜&#...
重大消息战皇大厅开挂是真的吗... 您好:战皇大厅这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游戏...
盘点十款牵手跑胡子为什么一直... 您好:牵手跑胡子这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游...
senator香烟多少一盒(s... 今天给各位分享senator香烟多少一盒的知识,其中也会对sevebstars香烟进行解释,如果能碰...
终于懂了新荣耀斗牛真的有挂吗... 您好:新荣耀斗牛这款游戏可以开挂,确实是有挂的,需要了解加客服微信8435338】很多玩家在这款游戏...
盘点十款明星麻将到底有没有挂... 您好:明星麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【5848499】很多玩家在这款游戏...
总结文章“新道游棋牌有透视挂吗... 您好:新道游棋牌这款游戏可以开挂,确实是有挂的,需要了解加客服微信【7682267】很多玩家在这款游...
终于懂了手机麻将到底有没有挂... 您好:手机麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游戏...