JavaScript是一种脚本语言,通常用于在Web浏览器中编写交互式前端应用程序。它是一种解释性语言,可以在客户端(浏览器)和服务器端(Node.js)上运行。
JavaScript可以用于创建动态网页、Web应用程序、游戏、移动应用程序等。它是一种弱类型语言,意味着变量的类型可以在运行时动态更改。JavaScript具有丰富的内置函数和库,可以轻松地与HTML和CSS集成,使其成为Web开发的重要组成部分。
本系列将从九个方面讲解JavaScript逆向专题
1.浏览器调试
- js作用域
- 浏览器对象属性
- 浏览器控制台
2.国标哈希算法
- sha1算法
- sha256算法
- sha512算法
- md5
- hmac算法
- python和JavaScript实现
3.国标对称加密
- DES算法
- AES算法
- crypto-js模块使用
- pycryptodome
4. 国标非对称加密
- RAS算法原理
- 非对称特征
- JavaScript算法还原
- ras模块
- jesencrypt
5.webpack模块打包
- webpack打包原理
- webpack构造形式
- 全局导出加密函数
6.JS混淆
- JavaScript压缩 混淆原理
- OB混淆特性
- OB混淆JavaScript
7.cookie反爬处理
- cookie加解密原理
- cookie和session机制
- cookie hook技巧
- acw_sc_v2调试
9.AST抽象语法树
- AST 技术介绍
- 字符串和编码还原
- evaluate方法学习
- JavaScript实战解混淆
10.JS安全产品攻防
- 瑞数
- acw_sc_v2
专题文章较长,建议关注+收藏,以免找不到
关注公众号获取电子版+视频:
第一章:浏览器调试
JavaScript是一种在浏览器中运行的脚本语言,它可以通过浏览器对象来访问和操作浏览器的各种属性和方法。在进行JavaScript逆向分析时,了解浏览器对象的属性和方法是非常重要的。
1.JS作用域
在JavaScript中,作用域是指变量和函数的可访问范围。JavaScript中有两种作用域:全局作用域和局部作用域。
全局作用域是指在整个JavaScript程序中都可以访问的变量和函数,而局部作用域是指只能在函数内部访问的变量和函数。
2.浏览器对象属性
在JavaScript中,浏览器对象是指浏览器提供的一些对象,可以通过这些对象来访问和操作浏览器的各种属性和方法。以下是一些常用的浏览器对象属性:
- window:表示当前浏览器窗口或标签页。
- document:表示当前文档对象。
- location:表示当前文档的URL。
- navigator:表示当前浏览器的信息。
- history:表示当前浏览器的历史记录。
3.浏览器控制台
浏览器控制台是开发者工具中的一个重要组成部分,可以用来调试JavaScript代码、查看网络请求、分析页面性能等。以下是一些常用的浏览器控制台命令:
console.log()
:用于输出日志信息。console.dir()
:用于输出对象的属性和方法。console.error()
:用于输出错误信息。console.warn()
:用于输出警告信息。console.clear()
:用于清空控制台。
示例代码:
// 输出日志信息
console.log("Hello, world!");
// 输出对象的属性和方法
var obj = {name: "Tom", age: 18};
console.dir(obj);
// 输出错误信息
console.error("Something went wrong!");
// 输出警告信息
console.warn("This is a warning!");
// 清空控制台
console.clear();
以上是JavaScript逆向专题之浏览器介绍的一些基础知识,对于进行JavaScript逆向分析的开发者来说,了解这些知识是非常重要的。
第二章:国标哈希算法
国标哈希算法是一种将任意长度的消息压缩成固定长度摘要的算法,常用于数据完整性校验、数字签名等领域。本文将从sha1算法、sha256算法、sha512算法、md5算法、hmac算法以及Python和JavaScript实现六个方向详细介绍国标哈希算法。
1.sha1算法
sha1算法是一种安全性较高的哈希算法,将任意长度的消息压缩成160位的摘要。以下是Python实现sha1算法的示例代码:
import hashlib
def sha1(data):
sha1 = hashlib.sha1()
sha1.update(data.encode('utf-8'))
return sha1.hexdigest()
以下是JavaScript实现sha1算法的示例代码:
function sha1(data) {
const sha1 = crypto.createHash('sha1');
sha1.update(data);
return sha1.digest('hex');
}
2.sha256算法
sha256算法是一种更安全的哈希算法,将任意长度的消息压缩成256位的摘要。以下是Python实现sha256算法的示例代码:
import hashlib
def sha256(data):
sha256 = hashlib.sha256()
sha256.update(data.encode('utf-8'))
return sha256.hexdigest()
以下是JavaScript实现sha256算法的示例代码:
function sha256(data) {
const sha256 = crypto.createHash('sha256');
sha256.update(data);
return sha256.digest('hex');
}
3.sha512算法
sha512算法是一种更安全的哈希算法,将任意长度的消息压缩成512位的摘要。以下是Python实现sha512算法的示例代码:
import hashlib
def sha512(data):
sha512 = hashlib.sha512()
sha512.update(data.encode('utf-8'))
return sha512.hexdigest()
以下是JavaScript实现sha512算法的示例代码:
function sha512(data) {
const sha512 = crypto.createHash('sha512');
sha512.update(data);
return sha512.digest('hex');
}
4.md5算法
md5算法是