-
-
[原创]通俗易懂讲解-GandCrab勒索病毒加密原理
-
发表于:
2019-7-14 11:43
15890
-
[原创]通俗易懂讲解-GandCrab勒索病毒加密原理
笔者根据对“侠盗”勒索病毒V5.3新变种全面剖析
https://paper.seebug.org/911/"这篇文章的自我理解,隐掉一些细节之后,以大白话的方式来阐述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
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2019-7-15 20:40
被AYZRxx编辑
,原因: