首页 > 其他分享 >【实战】文件加密器进行逆向

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

时间:2024-08-07 11:07:01浏览次数:10  
标签:实战 nonce 加密 逆向 key 网安 加密器 png

前言

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

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

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

这是被加密的文件

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

思路

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

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

分析

先尝试进行加密

根据关键词:encrypted 进行定位

发现是我们需要的信息

跟踪进去,发现了花指令

去花指令

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

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

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

按下C键

analyze即可

还是rust编译的

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

【----帮助网安学习,以下所有学习资料免费领!加vx:dctintin,备注 “博客园” 获取!】

 ① 网安学习成长路径思维导图
 ② 60+网安经典常用工具包
 ③ 100+SRC漏洞分析报告
 ④ 150+网安攻防实战技术电子书
 ⑤ 最权威CISSP 认证考试指南+题库
 ⑥ 超1800页CTF实战技巧手册
 ⑦ 最新网安大厂面试题合集(含答案)
 ⑧ APP客户端安全检测指南(安卓+IOS)

初步分析

使用Fincrypto发现了salsa20加密


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


sub_140073A70

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

sub_140039890

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

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

解密

由于密码只有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

更多网安技能的在线实操练习,请点击这里>>

  

标签:实战,nonce,加密,逆向,key,网安,加密器,png
From: https://www.cnblogs.com/hetianlab/p/18346655

相关文章

  • 【项目实战】在前端开发中,集成了两款富文本编辑器(如 Quill Editor和 Froala Editor)可
    在前端开发中,集成富文本编辑器(如Quill和Froala)可以让用户在网页上编辑和格式化文本,就像使用桌面文字处理器一样。Quill和Froala都是非常流行的富文本编辑器,各有其特点和优势。下面分别介绍一下这两款编辑器以及如何在项目中集成它们。一、QuillEditor介绍Quill......
  • 设计模式实战:在线教育系统的设计与实现
    问题描述设计一个在线教育系统,支持课程选择、支付流程和用户身份验证。系统需要确保功能的灵活性和可扩展性。设计分析策略模式策略模式定义了一系列算法,并将每个算法封装起来,使它们可以互换。在线教育系统需要支持不同的支付方式(如信用卡支付、PayPal支付),使用策略模式......
  • 【项目实战】开源的即时通讯组件OpenIM入门介绍
    一、OpenIM是什么?IM,是即时通讯(InstantMessaging,简称IM)OpenIM,是一个开源的、强大的即时通讯组件。OpenIM,提供了完整的即时通讯服务功能。OpenIM,被设计为高并发、高可用、易于扩展的架构。OpenIM,适合构建企业级的即时通讯平台。OpenIM,由一群热爱开源技术的开发者创建......
  • 【项目实战】在 MyBatis Plus 中添加 `@TableLogic` 注解,以实现逻辑删除
    一,需求描述在MyBatisPlus中实现逻辑删除是一种常见的需求逻辑删除,通常用于避免直接从数据库中物理删除数据,而是标记这些数据为“已删除”。逻辑删除,可以通过在表中添加一个额外的字段(如deleted或is_deleted)来实现。逻辑删除,当该字段为某个值时(例如1或者true),表示这......
  • 【项目实战】整合阿里云短信服务到 Spring Boot 项目中,以实现短信发送功能
    一,需求描述整合阿里云短信服务到SpringBoot项目中,以实现短信发送功能短信商:阿里短信SDK:aliyun-java-sdk-core二,需求实现需要按照以下步骤进行操作:2.1第一步:注册阿里云账号并开通短信服务访问阿里云官网,注册账号并登录。进入短信服务页面,申请并开通短信服务。......
  • 微信小程序教程011-4:京西购物商城实战之分类页实现
    文章目录4、分类4.0创建cate分支4.1渲染分类页面的基本结构4.2获取分类数据4.3动态渲染左侧的一级分类列表4.4动态渲染右侧的二级分类列表4.5动态渲染右侧的三级分类列表4.6切换一级分类后重置滚动条的位置4.7点击三级分类跳转到商品列表页面4.8分......
  • Flink实战(10)-checkpoint容错保证
    0前言程序在Flink集群运行,某个算子因为某些原因出现故障,如何处理在故障恢复后,如何保证数据状态,和故障发生之前的数据状态一致?1什么是checkpoint(检查点)?Checkpoint能生成快照(Snapshot)。若Flink程序崩溃,重新运行程序时可以有选择地从这些快照进行恢复。Checkpoin......
  • 基于AUTOSAR架构的基础与实战
    AUTOSAR架构概述AUTOSAR分层架构AUTOSAR架构概述前言1.1微控制器抽象层(MCAL)1.2ECU抽象层1.3服务层1.4复杂驱动器(ComplexDrivers)1.5运行时环境(RTE)1.6应用层总结前言AUTOSAR的分层架构设计旨在提高汽车电子系统的模块化、可重用性和可扩展性。它将复杂的软件......
  • basic_pentesting_2靶场实战【超详细】
    下载链接:https://download.vulnhub.com/basicpentesting/basic_pentesting_2.tar.gz一、靶场配置网卡配置为nat二、主机探测与端口扫描nmap192.168.121.0/24 开放了22、80、31337端口nmap192.168.121.188-p--A-sV-Pn 访问80web服务 提示跟随白色兔子f12......
  • 最新雪王 type__1286 参数逆向分析,K哥带你免费喝一杯~
    声明本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作......