【实战】文件加密器进行逆向

2024-08-17 157 0

前言

实战可以大大提高自己,学习技术的目的就是能够在实战中运用。

本次实战与实际息息相关,该软件具有加密某文件的功能。

【实战】文件加密器进行逆向插图

界面还挺好看的,功能很简单,输入文件和PIN(4位)进加解密。

这是被加密的文件

【实战】文件加密器进行逆向插图1

需要将其进行解密,拿到flag

思路

因为PIN是4位,因此可以写一个python脚本,对其进行爆破。

关键在于得出加密的算法,此时就需要我们进行逆向分析了

分析

先尝试进行加密

【实战】文件加密器进行逆向插图2

根据关键词:encrypted 进行定位

【实战】文件加密器进行逆向插图3

发现是我们需要的信息

【实战】文件加密器进行逆向插图4

跟踪进去,发现了花指令

【实战】文件加密器进行逆向插图5

去花指令

【实战】文件加密器进行逆向插图6

发现堆栈不平衡,将所有代码选中,然后C键,重新分析

发现了单指令花指令,无非nop掉即可

【实战】文件加密器进行逆向插图7

从头选到下一个函数开始的位置

【实战】文件加密器进行逆向插图8

按下C键

【实战】文件加密器进行逆向插图9

analyze即可

还是rust编译的

【实战】文件加密器进行逆向插图10

此时就可以分析函数了。处理其他函数也是相同的道理

初步分析

【实战】文件加密器进行逆向插图11

【实战】文件加密器进行逆向插图12

使用Fincrypto发现了salsa20加密


salsa20:32位字符构成的key,二是随机生成的8位nonce。算法使用key和nonce生成一个2^70长度的序列,并与明文进行异或加密


sub_140073A70

【实战】文件加密器进行逆向插图13

发现main_func就是获取我们的输入的文件内容

sub_140039890

而函数sub_140039890才是关键的加密函数

【实战】文件加密器进行逆向插图14

0x61707865、0x3320646E均为Salsa20算法的固定参数

【实战】文件加密器进行逆向插图15

解密

由于密码只有0000~9999这10000种可能

加密后文件名又是flag.png.enc,所以原文件是个png文件

使用png固有文件头89504E47来判断解密是否成功


Python

from Cryptodome.Cipher import Salsa20

cipher = open("flag.png.enc", "rb").read()
for i in range(10000):
key = str(i).rjust(4, '0').ljust(32, 'x00')
nonce = b'x24x24x24x24x24x24x24x24'
sal = Salsa20.new(key=key, nonce=nonce)
plain = sal.decrypt(cipher)
if plain.find(b"x89x50x4Ex47")>=0:
open("flag.png", "wb").write(plain)
break


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

webpack打包站点,js文件名批量获取思路
加密对抗靶场enctypt——labs通关
【论文速读】| 注意力是实现基于大语言模型的代码漏洞定位的关键
蓝队技术——Sysmon识别检测宏病毒
内网渗透学习|powershell上线cs
LLM attack中的API调用安全问题及靶场实践

发布评论