当前位置:网站首页>First issue of JS reverse tutorial
First issue of JS reverse tutorial
2022-07-07 09:35:00 【Little w who learns programming】
JS The first issue of reverse tutorial
Project brief introduction
- This article is suitable for novice crawlers js Read in reverse , Preliminary contact JS reverse , Not very familiar with reverse operation , This article can be used as a reference , First step , If there's a big guy , Criticism and correction are also welcome
- This article takes Enterprise name Technology Take this website as an example , A preliminary introduction JS Reverse basic operation
Environmental preparation
- This project involves JS Debugging verification of , So there needs to be Chrome browser ,Nodejs(js Operating environment ),WebStorm(IDE)
- nodejs Download and install it directly from the official website , After installation, enter node --version, If the version number appears, the installation is successful .
- WebStorm Activation is required after installation , There are many Baidu activation tutorials , Search by yourself , if necessary , You can also comment or send me a private letter to get the tutorial .
The analysis process
First , Go to the website https://www.qimingpian.cn/finosda/project/pinvestment:

View the source code :

It's all js A file called , Data cannot be obtained directly through source code . Open developer tools , Carry out the bag , choice Fetch/XHR And documentation , To view the requests sent by the website :

You can see that there is productListVip and industryFiledVip Two documents , Blind guess the first file is the tag list of the page , The second file is the company data of the page *-.-*, Click the first file and find that there is data encrypt_data, But it's encrypted data , So you need to js Document analysis :

First , We can blindly guess that the data is the data we need , Then we can run for the purpose of decrypting the data js debugging ,
First , since js There is a code that encrypts the data in the file , Then there must be code to decrypt the data , Because at last, it will be displayed again html Come on , If not decrypted , How to display it ?
therefore , We can... Again source Find the... Used by the page in the panel js Code file :

Choose what we need to debug js file , Check the source code of the previous page , We can choose first app.c68… This js File debugging , On the right side of the source code page “XHR/ Extract breakpoints ”, Its function is to request data on the page , Stop it . If the code is stacked on one line , You can click {} Format symbols .
We set up XHR The breakpoint :

When the request data URL contains industryFiledVip Time is truncated , Refresh the page , You can find that debugging has started :
We can keep going , If you find suspicious code , You can place the mouse over the variable to view the value of the variable :

You can also output the value of this variable directly on the console :

here , We debugged , You can locate suspicious data in the statement in the following figure :

Output this parameter , View the data :

You can find , This data seems to be what we need industryFiledVip In the document encrypt_data Parameters , At this point, our goal is very clear , Is to find the function that decrypts this parameter .
At this time, function call execution , Check the function called in this statement :

At this time, we can see that there is a s(e) function , There are pairs json Code for parsing , At this time, we output this on the console s(e) The result of function execution :

here , We can see it clearly , The return value of this function is the data we want , That is, the result of decrypting the previously encrypted data , So this function is internal o() The function must be used to decrypt encrypted data , And only one of the parameters is the result of function execution , The rest are written dead .
Now we turn it on WebStorm, Create a new one js file , Copy all the functions involved to js In file :




The final will be entry_data Bring it into the function to perform the operation , You can get the data you want , You can proceed to the next step :

thus , This time, it is relatively simple js Reverse is the end , Welcome to criticize and correct .(*.*)
边栏推荐
- Jenkins+ant+jmeter use
- Dynamics 365Online ApplicationUser创建方式变更
- JS judge whether checkbox is selected in the project
- 章鱼未来之星获得25万美金奖励|章鱼加速器2022夏季创业营圆满落幕
- 第一讲:寻找矩阵的极小值
- 二叉树高频题型
- Information Security Experiment 2: using x-scanner scanning tool
- Unity shader (basic concept)
- 创建一个长度为6的int型数组,要求数组元素的值都在1-30之间,且是随机赋值。同时,要求元素的值各不相同。
- Postman setting environment variables
猜你喜欢

第一讲:包含min函数的栈

Impression notes finally support the default markdown preview mode

Postman setting environment variables

esp8266使用TF卡并读写数据(基于arduino)

Octopus future star won a reward of 250000 US dollars | Octopus accelerator 2022 summer entrepreneurship camp came to a successful conclusion

Colorbar of using vertexehelper to customize controls (II)

JWT certification used in DRF

Unity shader (to achieve a simple material effect with adjustable color attributes only)

华为HCIP-DATACOM-Core_03day

Jenkins+ant+jmeter use
随机推荐
How to solve the problem of golang select mechanism and timeout
MySql数据库-索引-学习笔记
The use of recycling ideas
网易云微信小程序
Unittest simple project
Information Security Experiment 3: the use of PGP email encryption software
SiteMesh getting started example
12、 Sort
Some pit avoidance guidelines for using Huawei ECS
JS judge whether checkbox is selected in the project
stm32和电机开发(从单机版到网络化)
消费互联网的产业链其实是很短的,它仅仅承接平台上下游的对接和撮合的角色
Netease Cloud Wechat applet
LeetCode每日一题(2316. Count Unreachable Pairs of Nodes in an Undirected Graph)
牛客网——华为题库(61~70)
二叉树高频题型
Difference between interface iterator and iteratable
Yapi test plug-in -- cross request
Interface test API case, data and interface separation
Dynamics 365Online ApplicationUser创建方式变更