返回介绍

26.3 文件解密

发布于 2024-10-10 22:32:24 字数 2891 浏览 0 评论 0 收藏 0

上面的锁机还不是重点,这个病毒的重点其实是文件加密。在本章开始的图 26-1 中,如果点击“注册使用”,会出现如图 26-6 所示的勒索界面。

图 26-6 勒索界面

点击“注册软件”,会等一会儿,其实这里他在做一些坏事,然后出现提示界面,如图 26-7 所示。

这就是 Wannacry 病毒界面,需要付钱才能对文件解密。而这时手机设备 SD 卡中的文件已经被全部加密了,如图 26-8 所示。

最糟糕的是,可能 SD 卡都打不开了,这是因为病毒制作者无限制地新建一些文件和文件夹到 SD 中。可以发现,每个文件都是 0 字节,然后文件对应一个空文件夹。

图 26-7 提示界面

图 26-8 文件加密界面

下面来分析病毒代码:

进入这个类看看,在 onCreate 方法中看到几个方法:

继续追踪:

有一个可怕的“爆炸”方法:

在这里会创造出很多空文件和空文件夹,这样你的 SD 卡到最后几乎打不开了,手机也就废了。

文件加密在程序启动的时候就做了,在 MainActivity 中:

然后跟踪这个方法:

这里会过滤他自己创建出来的空文件和空文件夹不进行加密,继续看代码:

这里通过方法的最后一个参数来判断是加密文件还是解密文件。加解密方法参数都是类似的,第一个参数是 AES 加解密的密钥。到这里我们大致清楚了这个病毒是用 AES 对文件进行加密的,而密钥又用 AES 加密。这时加密的 key 和内容是:

分析到这里,我们就可以开始手动解密文件了。当然有很多种方法:

第一种方法:借助 Xposed 工具直接 hook 他的 FormetFileSize 方法,因为从上面的分析知道,这个方法的最后一个参数标志着是解密文件还是加密文件,拦截这个方法之后,修改这个参数状态为 false 表示是解密文件:

第二种方法:把他的解密功能代码拷贝出来,自己写一个解密程序,这比较适合给中招的“小白”使用:

因为他的代码这几个类都比较独立,所以直接拷贝出来不会有太多的错误,而错误就是变量定义重复,自己手动改一下即可:

下面就开始运行这个程序,这里为了操作不浪费时间,把 SD 卡清空了,然后写入三个简单的文件,让他加密:

这时会发现,他加密之后的文件名就是原始文件名凭借一个串而已,请忽略乱码。因为只有这样,他在解密之后才能获取原始文件,从他的代码中也可以看到这点:

然后运行我们的解密程序,看到日志:

到这里,我们就成功进行解密了。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文