diff --git a/README.md b/README.md index 2b564b7..74907d8 100644 --- a/README.md +++ b/README.md @@ -2,15 +2,15 @@ 研究包括动态代码生成原理及动态cookie生成原理。 -点赞是我坚持的唯一动力,希望该研究也能给一样好奇瑞数原理的人答疑解惑。 +**点赞是我坚持的动力,希望该研究也能给一样好奇瑞数原理的人答疑解惑。** -## 博客文章 +## 1. 博客文章 1. [瑞数vmp-动态代码生成原理](https://howduudu.tech/#/blog/article/1701276778000) -## 动态代码生成 +## 2. 动态代码生成 -### makecode子命令 +### 2.1. makecode子命令 执行子命令`makecode`生成动态代码, 可以传入包含`$_ts.nsd`和`$_ts.cd`的文本文件或者直接给url让程序自己去拿。 @@ -36,15 +36,24 @@ Examples: main.js makecode -u http://url/path ``` -### 手动获取动态代码和$_ts的方法 +### 2.2. makecookie子命令 + +进行中... + +## 3. 手动获取动态代码和$_ts的方法 目录`example/codes/`下的文件为手动保存,用于验证代码功能,如运行:`npm run test`后会比对程序生成的动态代码与`$_ts`文件是否与相关静态文件文本内容一致。 -在文件中`http://wcjs.sbj.cnipa.gov.cn/c5rxzYrjRT2h/cCdzB9ZjDFks.294cc83.js`找到代码`_$_q.call(_$gP, _$_y)`并打入断点,通过控制台拿到相关文本: +当然也可以自己手动拿动态代码和$_ts以验证程序是否还有效,可以通过控制台拿到相关文本: + +1. 在文件中`http://wcjs.sbj.cnipa.gov.cn/c5rxzYrjRT2h/cCdzB9ZjDFks.294cc83.js`找到代码`_$_q.call(_$gP, _$_y)`并打入断点(文件找不到可以通过其它两种方法定位); +2. 找到如第一条的js文件,搜索`.call(`找到调用方法; +2. 通过代理cookie变动的方式打断点通过堆栈找到调用方法。 + +断点后复制相关文本: 1. 拿到动态代码:`copy(_$_y)` 2. 拿到`$_ts`: `console.log(JSON.stringify(window.$_ts))`,这里有点蒙,可以用`JSON.stringify(window.$_ts)`或者`copy(JSON.stringify(window.$_ts))`试试 -初始的`$_ts`可以在这个文件入口处打断点获取。 - +*初始的`$_ts`可以在这个文件入口处打断点获取。*