1、分析加密后的字符串特征:密码长度通常在12位以内,最多到16位,
a)MD5是文本摘要算法,提取结果通常是32位,不受明文长度影响
b)Base64编码结果末尾通常会出现一个或是二个等于符号,受明文长度影响
c)一长串无规律数字与字母组合的字符大概率是AES、DES、SHA相关算法
d)SHA1加密结果值为40位,不受明文长度影响
e)SHA256加密值为64位,不受明文长度影响
另外AES和RSA等对称和非对称加密都喜欢将结果值用Base64进行编码
2、定位加密算法位置
a)当你遇到可疑字符串时,可以通过全局搜索来找关键词,如果搜索不到就调看调用栈并逐个查看和分析,如下图
3、设置断点,验证猜想
4、Hook大法、 尝试对JSON.stringify或Base64.decode又或才Base.decrypt和Aes.decrypt等方法关键词处理
找到之后,根据情况捊清逻辑或依葫芦画瓢的抠下javascript代码 ,直到能够得到相同的输入输出
了解算法模式和填充方式:
AES算法几种模式:CBC、ECB
填充方式:PK7、PK5
密钥和向量