记一次逆向JS获取AES加密key和iv的过程

 decrypt: function(n, r, i) {
        return e(r).decrypt(t, n, r, i)
}

首先要先找到解密调用的函数, 在此处断点 , 获取到传参 , n  r  i  分别代表需要解密的字符, r 代表key , i 代表 {iv:iv} iv

断点之后, 通过请求获取到n r i ,但是r 和 i 是 wordarray形式, 需要转换为 字符串才能被其他语言使用

所以通过找到原来js中的crypto模块

var key = window.BasicService_H5module.CryptoJS.lib.WordArray.create([1431726435, 808875120, 1483165006, 1765896301]);
var iv = window.BasicService_H5module.CryptoJS.lib.WordArray.create([959920433, 808597299, 875640625, 825766201]);
iv.toString(window.BasicService_H5module.CryptoJS.enc.Utf8)
key.toString(window.BasicService_H5module.CryptoJS.enc.Utf8)
//尝试在控制台解析
var decrypted = window.BasicService_H5module.CryptoJS.AES.decrypt(chipertext,key,{iv:iv})
decrypted.toString(window.BasicService_H5module.CryptoJS.enc.Utf8)
// 能出来结果说明模式mode和参数是对的, 就可以使用其他语言解析了


标签:
作者:admin_rose
我只相信自己,终有一天会完成自己梦想中的事情
版权所有原创文章,转载请保留或注明出处:http://www.antvv.com/?id=29

已有 0 位网友参与,快来吐槽:

发表评论