JS逆向笔记

JS逆向笔记下断点,按F11可进去函数内部,或者点击右上角的下标点进去函数内部md5加密长度固定32位;一、单向散列函数消息摘要算法加密后的密文定长明文不一样,散列后结果一定不一样不可逆一般用于签名MD5 32位SHA1 40位SHA256 64位SHA512 218位HmacMD5、HmacSHA1、HmacSHA256 (注:Hmac配合其他加密算法,传入两值,一加密参数,二公钥)二、加密加密和解密的过程是可逆的对称加密算法加密/解密使用相同的密钥DES数据加密标准3DES

大家好,欢迎来到IT知识分享网。JS逆向笔记"

下断点,按F11可进去函数内部,或者点击右上角的下标点进去函数内部
md5加密长度固定32位;

一、单向散列函数 消息摘要算法
加密后的密文定长
明文不一样,散列后结果一定不一样
不可逆
一般用于签名
MD5 32位
SHA1 40位
SHA256 64位
SHA512 218位
HmacMD5、HmacSHA1、HmacSHA256
(注:Hmac配合其他加密算法,传入两值,一加密参数,二公钥)

二、加密
加密和解密的过程是可逆的
对称加密算法
加密/解密使用相同的密钥
DES 数据加密标准 3DES
AES 高级加密标准
AES 共有ECB,CBC,OFE,CTR五种模式

非对称加密算法
RSA
使用公钥加密,使用私钥解密
公钥是公开的,私钥保密
加密处理安全,但是性能极差,单词加密长度有限制。

三、CryptoJS加密库的使用(注意区分大小写)
注:CryptoJS加密的结果为“对象”类型
alert输出时会自动转换为文本

console控制太输出的时候是对象,可+''变成字符串文本,
或者.toString()转换文本

搜索加密参数关键点:
一、搜索指定参数
二、搜索附近参数
三、搜索部分链接
四、搜索某些加密值

1、过掉定时器无限debugger:
1、鼠标移到debugger所在行断点数字处
2、右键点击“Never pause here”

2、AES加密(不属于哈希加密):
1、首先确定mode类型;
2、padding填充格式(注意Pkcs5格式也是属于Pkcs7格式);
3、Key值和iv值的Enc编码类型(注意key值和iv的值会存在函数附近上下方)
例子:CryptoJS加密库的AES加密方式:
var pwd = CryptoJS.enc.Utf8.parse(‘cjs122374’); // 解析明文
var key = CryptoJS.enc.Utf8.parse(‘asdqwwqwdqddq’); // 解析密钥
var iv = CryptoJS.enc.Utf8.parse(‘asdqwwqwdqddq’); // 解析偏移向量
var ciphertext = CryptoJS.AES.encrypt(pwd, key, {

mode: CryptoJS.mode.CBC // 加密模式
padding: CryptoJS.pad.Pkcs7 // 填充方式
iv: iv // 偏移向量
}).toString(); // 加密后的结果是对象,要转换为文本
console.log(ciphertext);

3、HMAC加密:
一般传入两个值,明文以及key值;

4、RSA加密:
公钥:用于加密;私钥:用于解密的,但是一般找不到
一般代码比较长,最好不去扣代码,使用软件生成js脚本代码即可
RSA加密注意点:一般会加密长度很长,以==双等号结尾,类似于base64,会出现两个数据包,一是带有一些key值的json数据,二是登录错误的密码等加密参数数据包。(套路:输入”10001″(加密字数)、‘’(空字符串为解密字数)以及密钥参与加密)

5、搜索加密关键参数出现众多文件或者无文件,则可以搜索url链接的一些特定后缀

6、出现windows未定义的:但是windows参与计算的,不可以直接设置为空,应该windows = this;出现navigator未定义:可以直接设置为空,var navigator = “”。

7、遇到(function(g){})的包裹类型的函数封装,需要在全局构建window = this,然后在函数末尾添加(window)即可。(注:在调试工具中能运行,在创建的js文件中不能运行,此问题还没解决。)

8、遇到特殊字符(例:字体图标显示的小框框)无法编译加载的情况,一、点击utf-8编码,或者使用发条js调试工具将此js文件copy到上方的搜索框,点击读取js代码,点击编码即可。

9、Base64/btoa/atob
alert(btoa(‘122374’));结果弹出:MTIyMzc0,即btoa是base64加密
alert(atob(‘MTIyMzc0’));结果弹出:122374,即btoa是base64解码

10、大文件加密方式:
var hasher = CryptoJS.algo.SHA256.create();
hasher.update(‘222’); # 分次添加加密内容
hasher.reset(); # 将之前添加加密内容重置为0
hasher.update(‘222’);
hasher.update(‘222’);
hasher.update(‘222’);
var hash = hasher.finaline(‘22’);
console.log(hash.toString());

11、不同加密解析方式(返回的是一个数组,可继续使用算法加密返回对象)
var = wordArray = CryptoJS.enc.Utf8.parse(‘cjs’);
// var = wordArray = CryptoJS.enc.Latin1.parse(latin1String);
// var = wordArray = CryptoJS.enc.Hex.parse(hexString);
// var = wordArray = CryptoJS.enc.Base64.parse(base64String);

var res = CryptoJS.SHA256(wordArray ) // 加密返回一个对象
console.log(res.toString()); // 将对象转换为字符串文本

12、DES加密的ECB模式中可以不要iv偏移向量值,反之CBC需要加粗样式

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/12370.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信