-
-
[原创]通俗易懂讲解-GandCrab勒索病毒加密原理
-
发表于:
2019-7-14 11:43
16328
-
[原创]通俗易懂讲解-GandCrab勒索病毒加密原理
笔者根据对“侠盗”勒索病毒V5.3新变种全面剖析
7bfK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6H3j5i4m8W2M7W2)9J5k6i4y4W2k6h3u0#2k6#2)9J5k6h3!0J5k6#2)9J5c8U0V1I4x3g2)9J5c8R3`.`."这篇文章的自我理解,隐掉一些细节之后,以大白话的方式来阐述GandCrab勒索病毒的加密原理,以及数据为什么无法解密。
1、RSA加密算法是一种非对称加密算法。所谓非对称,就是指该算法需要一对密钥(公私钥),使用其中一个加密(公钥),则需要用另一个才能解密(私钥)。
2、Salsa加密算法是一种对称加密算法,加密和解密双方使用相同的密钥,加密后数据长度不变。
关键字解释:关键字根据自己的理解做了稍许改变。
RsaHackerPrivateKey =
病毒作者预先生成的RSA私钥,只有病毒作者知道。
RsaHackerPublicKey =
病毒作者预先生成的RSA公钥,勒索病毒体内嵌的RSA公钥。
SalsaPrivateKey = 随机生成的Key,用于Salsa20加密算法的Key
RsaLocalPrivateKey = 本地随机生成RSA私钥
RsaLocalPublicKey = 本地随机生成RSA公钥
SalsaFileKey = 随机生成的Key,用于Salsa20加密算法的Key。(就是这个Key加密的文件)
SrcUserFile = 待加密的文件数据
Data3 = 加密后的文件数据 =
"随机生成的SalsaFileKey"
使用Salsa20算法加密"SrcUserFile"后形成的加密数据
RAS加密函数定义 = typedef RSA(Key,待加密数据
)
Salsa20加密函数定义 = typedef Salsa20(Key,
待加密数据
)
1、根据"勒索病毒体内嵌的RSA公钥(RsaHackerPublicKey )"使用RSA算法来加密"随机生成的SalsaPrivateKey",得到Data1
2、根据"随机生成的SalsaPrivateKey"使用Salsa20算法来加密"本地生成的RSA私钥RsaLocalPrivateKey",得到Data2
3、根据"本地生成的RSA公钥RsaLocalPublicKey "使用RSA算法来加密"随机生成的SalsaFileKey",得到Data4
4、根据"随机生成的SalsaFileKey"使用Salsa20算法来加密原始文件,得到Data3
[培训]科锐逆向工程师培训第53期2025年7月8日开班!
最后于 2019-7-15 20:40
被AYZRxx编辑
,原因: