搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
不正经
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
漂亮国的无人餐厅的机器人骚操作
2
Word Embeddings 学习笔记
3
【经典箴言 || 人生感悟 】
4
写个AI虚拟主播:看懂弹幕,妙语连珠,悲欢形于色,以一种简单的实现_python虚拟主播开发
5
2024最新GPT4.0使用教程:GPTs,AI绘画,AI换脸,AI绘画,文档分析一站式解决
6
吴恩达深度学习笔记(67)-迁移学习(Transfer learning)_吴恩达迁移学习
7
vue2 props_vue2props传参
8
住宅小区的拓扑规划与网络设计(完整文档+ensp拓扑图)_基于ensp住宅小区网络设计与实现开题报告
9
tensorflow 单词嵌入向量
10
iOS开发: 获取App的ipa包以及资源文件_ipa资源
当前位置:
article
> 正文
JavaScript逆向技术_js 逆向 年报
作者:不正经 | 2024-04-09 10:05:38
赞
踩
js 逆向 年报
一、无限Debugger
1.1 Questions
什么情况下会出现无限Debugger?
分析请求、查看时间监听器、跟踪js时候,第一步就是打开浏览器的开发者工具,而打开这个工具的时候就出出现无限Debugger的死循环。
为什么反爬虫会用到无限Debugger?
因为在反爬虫的过程中,我们会用到开发者工具,这个时候精准设防,不让我们获取代码逻辑,从而设计无限Debugger。
1.2 无限Debugger的解决方案
方案一:禁用所有的断点
将所有的断点都禁用之后,所有断点处都不执行,即可不在断点处循环,但这种方法不切实际,因为我们的目的就是要分析代码,不使用断点分析则不可能;
方案二:禁用某处的断点
有可能会使我们在死循环中无法出来。
方案三:条件断点
在可能断点处加上条件,不满足条件就不执行。
方案四:利用中间人替换原理
将debugger关键字,使用字符串替换,替换后就没有这个关键字存在。
方案五:reres浏览器插件替换本地修改过的文件
方案六:重写关键函数
将函数声明之后,执行之前的位置打上断点,然后在控制台中重新debugger函数,将这个函数内容置空,则后续遇到这个函数就不会停下来了。
二、如何快速定位加密参数
快速定位——搜索
快速定位——断点
XHR断点
DOM断点
Event断点
自定义断点
快速定位——hook
json
cookie
window attr
eval/Function
websocket
三、JavaScript加密或混淆
3.1 为什么要对JS代码加密或混淆
因为JS代码是运行于客户端的
因为JS代码是公开透明的
3.2 如何对JavaScript进行保护
代码压缩:去空格、换行
代码加密:eval、emsscripten、webAssembly
代码混淆:变量混淆、常量混淆、控制流扁平化、调试保护
3.3 代码加密
eval()加密:将一段JS代码进行eval函数包装后,得到一场串的JS代码,实际已经被加密过了,变得可读性很差,不过解密也很简单;
EmScripten:将C/C++代码编译成JS代码,结果其实是asm.js文件,起到保护核心的效果;
WebAssembly:核心是C/C++,经过加密后是wasm文件
3.4 JavaScript混淆技术
变量、字符常混淆:将变量名混淆成十六进制或者一大串字符的样式,使代码可读性变差,使用md5、base64等加密功能混淆字符串,使得无法通过搜索功能查到代码的关键字;
属性加密:JS中属性的关系一般是键值对,用属性加密将key和value的关系混淆掉,使得难以寻找里面的逻辑;
控制流平台化:打乱了原有逻辑的关系,将逻辑变复杂难读;
僵尸代码注入:将无用的代码注入到原有代码里,使代码变得复杂;
反调试:基于浏览器的特性,对代码加上debug语句,让代码变成无限debugger,用一些断点进行干扰;
多态变异:JS代码一旦被调用,代码立刻发生变化,变成和之前完全不同的代码,避免代码被动态分析调试;
锁定域名:JS代码必须运作在特定的域名下;
反格式化:如果格式化之后,代码会用一些机制使得程序无法顺利运行
特殊编码:将JS代码编译成符号、表情等等
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/不正经/article/detail/391968
推荐阅读
article
14
Flask
mega
-
tutorial
第14章
Ajax
(
百度
翻译
API
):
异步
JavaSc...
如需转载请注明出处。 win10 64位、Python 3.6.3、Notepad++、Chrome 67.0.3396...
赞
踩
article
JavaScript
超详细
学习
思路...
JavaScript
是一门不断发展的语言,随着 Web 技术的进步,
JavaScript
也在不断地更新和扩展。
学习
...
赞
踩
article
Java
项目
:
宠物店
管理系统
(
java
+JSP+
Java
Script+
Bootstrap
+Mysql...
本
项目
分为前后台,主要分为管理员与用户两种角色,管理员登录后台,普通用户登录前台;管理员角色包含以下功能:管理员登录,订...
赞
踩
article
JavaScript
学习
笔记 超详细
(
b站
pink
老师
)_
pink
老师
最新版
js
笔记...
1.
JavaScript
(
是什么?是一种运行在客户端
(
浏览器)的编程语言,实现人机交互效果。2. 作用
(
做什么?– ...
赞
踩
article
JavaScript
之
Vue3
入门到
精通
+
网络商城
案例(一篇文章
精通
系列)【
WebStorm
版...
JavaScript
之
Vue3
入门到
精通
(一篇文章
精通
系列)【
WebStorm
版】一、Vite创建
Vue3
项目二...
赞
踩
article
来点基础的吧,
JavaScript
、
JSP
怎么打印
输出
,方便调试_
jsp
在
浏览器
控制台
输出
信息...
想打印自己代码的变量查看值是否争取,但又不知道怎么打印,打印到哪儿的,尤其是新手朋友有点模糊的,可以看看这篇文章参考一下...
赞
踩
article
华为OD机考
统一
考试
C
卷 - 环中最长子串/
字符
成环找偶数O(
C
++
Java
Java
S
c
ript...
2023年11月份,华为官方已经将 华为OD机考:OD
统一
考试
(A卷 / B卷)切换到 OD
统一
考试
(
C
卷)和 OD
统一
...
赞
踩
article
华为OD机考统一考试C卷 - 最长
的
指定
瑕疵
度
的
元音
子串
(C++
Java
Java
S
c
ript P...
开头和结尾都是
元音
字母(aeiouAEIOU)
的
字符串为
元音
字符串,其中混杂
的
非
元音
字母数量为其
瑕疵
度。给定一个字符串,...
赞
踩
article
华为OD机试 -
机器人
搬
砖
(Pytho
n
、
Java
、C++、
Java
scr
i
pt)_
机器人
搬
砖
,
一...
机器人
搬
砖
,一共
有
N 堆
砖
存放在 N 个
不同
的仓库中,第
i
堆
砖
中
有
br
i
cks
[
i
] 块
砖
头,要求在 8 小时内...
赞
踩
article
安装
element
ui失败
package
.
json
must
be
actual
JSON, n...
element
-ui安装失败 Unexpected
token
"/" (0x2F) in JSON at positi...
赞
踩
article
56
道高频
JavaScript
与
ES6
+
的
面试题
及答案...
前端硬核面试专题前言本文讲解
56
道
JavaScript
和
ES6
+
面试题
的
内容。复习前端面试
的
知识,是为了巩固...
赞
踩
article
华为
OD
机试
- 跳马(
Python
、
Java
、
C++
、
Java
script)...
马是象棋(包括中国象棋和国际象棋)中的棋子,走法是每步直一格再斜一格,即先横着或者直者走一格,然后再斜着走一个对角线,可...
赞
踩
article
【
华为
OD
机试
2023】等和子数组
最小
和(C++
Java
Java
Script
Python
)_...
给定一个数组nums,将元素分为若干个组,使得每组和相等,求出满足条件的所有分组中,组内元素和的
最小
值。_牛客
华为
od
最...
赞
踩
article
[
HTML
]Web
前端开发
技术23(
HTML
5
、
CSS3
、
JavaScript
)
HTML
5
基础与...
前言
CSS3
动画
animation
CSS3
动画
animation
子属性设置
CSS3
多列属性
CSS3
文本效果 1....
赞
踩
article
vue3
+
elementplus
后台
管理系统
,
实现
用户
登录
_
vue3
+
javascript
+ ...
我们本篇只是搭建了
登录
页面的一个框架,具体的逻辑我们在下一篇搭建nodejs的后端服务来真正
实现
验证用户名和密码并且写入...
赞
踩
article
华为OD机试-最大频率栈
java
&
c
++&
python
&
java
s
c
ript & gola...
华为OD机试-最大频率栈
java
&
c
++&
python
&
java
s
c
ript &
golang
&
c
# & ...
赞
踩
article
华为OD机试-查找和替换模式
java
&
c
++&
python
&
java
s
c
ript & go...
华为OD机试-查找和替换模式
java
&
c
++&
python
&
java
s
c
ript &
golang
&
c
# ...
赞
踩
article
华为
OD机试- 最小栈(
java
&
c
++&
python
&
java
s
c
ript & golan...
华为
OD机试- 最小栈(
java
&
c
++&
python
&
java
s
c
ript &
golang
&
c
# &
c
...
赞
踩
article
前端
研习录(32)——
JavaScript
基于
定时器
实现
防抖
、
节流
_
定时器
与
防抖
...
重拾
前端
记忆,记录学习笔记,现在进入
JavaScript
防抖
、
节流
部分_
定时器
与
防抖
定时器
与
防抖
...
赞
踩
article
【
华为
OD机考 统一考试
机试
C卷】
分割
均衡
字符串
(C++
Java
Java
Script Pyth...
均衡串定义:
字符串
只包含两种字符,且两种字符的个数相同。给定一个均衡
字符串
,请给出可
分割
成新的均衡子串的最大个数。约定...
赞
踩
相关标签
Flask mega-tutorial
ajax
flask
flask web
python web
javascript
学习
开发语言
bootstrap
java
JSP
mysql
前端
webstorm
华为od
c语言
c++