破了这几种爬虫加密算法后,我的路更近了「JS逆向3」( 二 )


在非对称加密算法中,加密与解密的密钥肯定是不一样的(一样的话,就不叫非对称加密算法了) 。牢记“十六字方针”后,我们只要找到‘公钥’和‘私钥’就能解密了 。当然python也有现成的库进行RSA解密 。

破了这几种爬虫加密算法后,我的路更近了「JS逆向3」

文章插图
 
识别方式:RSA公钥加密会进行类似MD5加盐的操作,所以相同的明文,用相同的公钥进行RSA加密会生成不同的密文 。
RSA的密钥对不仅可能存在JS代码中,还有很有可能会存在在html文件中 。这时我们进行全局搜索关键词RSA,KEY,encrypt一处处判别就会有意外收获 。
自定义加密函数顾名思义,这种加密解密形式是非常规的,每个程序员都可以写属于自己风格的加密方式 。对于逆向这种加密方式,我们还是抠出加密代码就行了 。
这种形式的加密方式应该算逆向中最难的,因为解密者需要去理解加密者的代码逻辑,并避开加密者设的各种坑 。最后就看谁JS玩得更6了 。
补充
在实际逆向项目中MD5、SHA、AES、RSA,自定义加密函数使用频率是最多的 。而且极有可能会碰到多种不同加密算法混合使用,例如:网页数据先base64再AES再进行base64,或者解密明文的RSA的密钥对被AES加密了等等情况 。
DES、3DES、AES、RSA、MD5、SHA传入的数据或者密钥都是bytes数据类型,不是bytes数据类型的需要先转换;密钥一般是8的倍数 。
附录参考下面表格是把明文123用不同算法加密后的密文 。相关的加密方法源码可以在下面的知识星球获得 。
破了这几种爬虫加密算法后,我的路更近了「JS逆向3」

文章插图




推荐阅读