您现在的位置是: 网站首页> 学习笔记> JS逆向 JS逆向
维普期刊 瑞数5代js逆向分析
2022-07-27 [JS逆向] [JS调用] [hook] 9941人已围观
瑞数太出名了,网上有很多大佬出的教程,讲得都很详细,很地道。 这里注意记录一下自己在逆向分析时遇到的些问题与关键点,以备后忘。 瑞数各代之间的区别就不说了,直接上维普线上的这个5代版本。
当然瑞数的逆向分析默认是针对带T的cookie即GW1gelwM5YZuT,与url后面的后缀G5tA5iQ4。
首先是VM代码的入口函数;如图,这个入口函数可以在首页的自执行函数中通过正则匹配出来, 正则:
"_\$..\s?=\s?_\$..\[_\$..\[\d+]]\(_\$..,\s?_\$..\);"
默认这个正则只适用于这个版本,其它的我没试过,四代的都是明文入口。 用正则搜索的时候注意把搜索框右边的".*"点一下用正则搜。
进入VM代码以后比较关键的就是众所周知的128位数组的生成。 这个128位数组不会占满,会根据情况截成实际使用的长度。
其中128位数组中比较关键的就是4位的动态数据了,这个错了cookie GW1gelwM5YZuT必然是错的。 这个4位数组是固定的4个值,只是每次的顺序不一样,即[102, 181, 11,102] 或者[181, 102, 11,102]等等各种组合。
而这个4位动态数组的来源为一个20位的动态数组,20位的动态数组在VM代码初始化的时候会生成,生成的位置可以直接搜";;;;;;"即6个;号。 变量“_$E3”就是20位动态数组,“_$m$(859, _$E3)”函数给变量赋值。
然后四位动态数组的值根据key值在20位数组里面取就可以了。
另外4位动态数组的Key值在哪里取呢,在ts对象里:
对于后缀G5tA5iQ4来说,只要把cookie的代码扣出来就好办了,它是在生成cookie的数组后面再加个50位的数组生成就可以了。 这50位数组包含了url的path部分,如“/Search/SearchList”、“/Journal/RightArticle”等
差不多就这些,其它很多细节应该在其它大佬文章里已经看到了。
另外再贴一个此版本进入cookie生成控制流的入口: 正则搜
_\$..\(923, _\$.., false\)
这个有点多余,只是提供一种小方法,完全可以hook cookie生成的位置向上回溯堆栈找入口,,但是自己调代码时这样更方便。
剩下的就是时间与肝。
文章评论
暂无评论添加评论
点击排行
本栏推荐
标签云
热评文章
- django使用qq邮箱发送邮件
- mysql8设置数据库远程连接
- pip修改下载源为国内源
- win10看不到win7共享的文件夹的解决方法
- SQLyog连接 Mysql 8.0.11 报error no.1251- Client does not support authentic...
- 使用Oracel Net Nanager配置Oracle数据库远程访问
- 将anaconda的下载源切换为国内的源
- Python+selenium+firefox设置代理IP
- selenium+firefox+js实现动态设置firefox浏览器代理IP
- scrapy文件下载(高新技术企业认定网)
- Python调用JS代码
- Chrome浏览器的overrides的使用
站点信息
- 建站时间:2021-01-01
- 网站程序:Django 3.1.2
- 文章统计:53篇
- 文章评论:36条
- 统计数据: