百炼成钢;JavaScript逆向九大专题详解

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算法是

  • 7
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值