当前位置:   article > 正文

云汉芯城js逆向分析-v,t,s参数_云汉芯城爬虫

云汉芯城爬虫

云汉芯城js逆向分析

介绍

查看搜索的接口,很明显需要这几个参数

{
	keyword: "2N7002",//搜索输入的关键词
	font_ident: "945a41f33fc9693c", //如下图,第一次访问的页面 返回的html里找
	v: "1655799627669" //时间戳
	t: "183977736408" //加密1
	s: "8fc0bf84f2909690" //加密2
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里插入图片描述

加密分析

这种一大坨代码的,我最喜欢的是通过xhr - 启动器 根据Ajax往上跟栈
在这里插入图片描述
在这里插入图片描述
这里看到n就是要发送的数据,下断点后 参数有在这,n是函数的参数,所以再往上看谁调用的它(看谁传的)
搜索得到 this.currentParams = a.deserializeParams(this.options.remote.params)
黑脸怪
this.options又等于t.extend(!0, {}, o, t.fn.pagination.defaults, i) i是上面传过来的
在这里插入图片描述
懒得写了,直接一直往上跟,跟到混淆的那地方
在这里插入图片描述
这里偷懒大法 神技-ast(只解了个大数组就好看多了)
很明显 这里就到站了。
在这里插入图片描述

_0x36dfe8['v'] = JSON["stringify"](new Date()["getTime"]());
    4 == _0xc145e3["pageType"] && (_0x36dfe8["search_type"] = 1);
    '{}' !== JSON["stringify"](_0xc145e3["filterParams"]) && (_0x36dfe8["se_item"] = _0xc145e3["se_item"], _0x36dfe8["params"] = _0xc145e3["filterParams"]);
    _0x36dfe8 = _0x3ea76b["getSpecialKey"](_0x36dfe8);
  • 1
  • 2
  • 3
  • 4

这里 获取了v之后,对象_0x36dfe8就改变了,看到是进行了getSpecialKey函数的操作,所以这行下断点,再单步走进去看。
俩参数就在这里完成的
下面就要开始把js代码扣下来用了。
在这里插入图片描述

扣代码

这么丑的代码,扣代码调用吧(本来想改python的,最后那个魔改的md5不知道怎么改python)
附上s的python代码参考下。。

	 times_int = int(times)
	// times是时间戳
    _0x5d4ff8 = 0
    _0x24ee4f = times[len(times) - 1:]
    print(_0x24ee4f)
    s = str(math.ceil(times_int / int(_0x24ee4f)))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

现在讲扣js代码吧
全选代码复制粘贴到notepad++
折叠,搜索,改写
在这里插入图片描述
主要的生成函数 在_0x54521b 对象里,理论只要把它弄下来就好
但是 因为混淆的,还要扣大数组啊,解密函数啊,Object啊
我用的ast解版,所以 偷懒了
思路:
1.这个自执行,_0x54521b是传入的参数,这里去掉自执行函数改写_0x54521b 定义空对象
然后window肯定要带上的。
在这里插入图片描述
2.改写t和s的返回方式
在这里插入图片描述
3.就这样跑一下代码,会提示_0x39a116未定义,去网站代码复制一下这个对象
这是个混淆的,增加你代码阅读难度,,可以用ast解。。这里直接复制吧
在这里插入图片描述
再跑一下,应该就差最后一个了 ,提示_0x54521b.md5未定义还是啥来着
这里去补一下魔改的md5代码,
想直接从网站扣的,哎,难顶 太难扣了,直接找个通用的吧
在这里插入图片描述
这两个值被改了,改写,再补到对象上,再小小的修改下代码就完成了。
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/998610
推荐阅读
相关标签
  

闽ICP备14008679号