记:2023羊城杯-Ez加密器-题目复现和学习记录““

news/2024/5/19 22:15:50 标签: 学习, 网络安全, 密码学, python, CTF, Reverse

文章目录

  • 前言
  • 题目分析and调试过程
  • 完整exp

前言

前段时间的比赛,那会刚入门o(╥﹏╥)o都不会写,现在复现一下。

羊城杯题目复现:
第二题 知识点 :动态调试 : CSGO
第三题 虚假控制流 py字典 MD5加密“”“” Blast

题目分析and调试过程

在这里插入图片描述
查壳nie

进入IDA,shift+F12查找下字符串看看,定位过去

在这里插入图片描述
在这里插入图片描述
先用N重命名一下函数,方便阅读。这里就是要求我们输入 code 和 flag。 分别 放入 a1 和 a2 中,查看一下该函数被谁调用了。
在这里插入图片描述

跳到上一级函数。

在这里插入图片描述
发现俩个参数a000000,a11111111111111,有点奇怪,推测一下应该是输入的长度。长度分别是 6 和 40
在这里插入图片描述
在这里插入图片描述
接着分析 看看sub_1400036A0里面的东西,
在这里插入图片描述
这里移位 4 移位 6 有点像base64编码,接着下面看,
在这里插入图片描述
在这里插入图片描述
一个base64变表,可以动态调试验证一下,输入code 为 123456,构造flag : DASCTF{11111111111111111111111111111111}
在这里插入图片描述
在这里插入图片描述
验证成功,sub_1400036A0就是对code进行一个base64编码。

接着看sub_7FF6D8B93AE0,点进去发现实在看不懂是什么,借助一下插件Signsrch
在这里插入图片描述
在这里插入图片描述
发现DES加密,随便双击跟进一下,会发现跟进到sub_7FF6D8B93AE0里面去了,因此可以判断这里是DES加密。
在这里插入图片描述
关于DES加密的介绍,可以看一下博主总结的DES加密原理

这里如果明白DES加密,就知道会有一个key,key的长度为8个字节(64-bit),经由这个主钥匙进行密钥调度得到16个子钥匙,再对密文继续迭代加密,总共16轮,得到密文
在这里插入图片描述

这里就已经分析完了,str1是给出的,不过还有一步,程序在运行时对Str1进行了修改,动态调试到下图处,得到真正的Str1。

在这里插入图片描述

完整exp

python">from Crypto.Cipher import DES
import base64

encrypted_data = bytes.fromhex(
    "0723105D5C12217DCDC3601F5ECB54DA9CCEC2279F1684A13A0D716D17217F4C9EA85FF1A42795731CA3C55D3A4D7BEA")
print(encrypted_data)


def decrypt_DES(key, encrypted_data):
    cipher = DES.new(key, DES.MODE_ECB)
    decrypted_data = cipher.decrypt(encrypted_data)
    return decrypted_data


string1 = 'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ+/'
string2 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'

string = str.maketrans(string2, string1)

for i in range(1000000):
    key = base64.b64encode(str(i).zfill(6).encode()).decode().translate(string).encode()

    decrypted_data = decrypt_DES(key, encrypted_data)

    if b"DASCTF{" in decrypted_data:
        print(decrypted_data)
        exit()
# DASCTF{f771b96b71514bb6bc20f3275fa9404e}

http://www.niftyadmin.cn/n/5125422.html

相关文章

互联网产品说明书指南,附撰写流程与方法

产品说明书,对于普通产品而言,再常见不过。药物、电器、电子产品等产品在正式出售时,往往都会附带一份产品说明书,以此告诉用户这个产品的功能与特性,并指导用户如何来使用这个产品。 产品说明书 那么,对于…

springboot + redis实现签到与统计功能

在很多项目中都会有签到与统计功能,最容易想到的方案是创建一个签到表来记录每个用户的签到记录,比如设计一个mysql数据库表: CREATE TABLE tb_sign id bigint(20) unsigned NOT NULL AUTOINCREMENT COMMENT 主键, user_id bigint(20) unsig…

腾讯云学生专享云服务器介绍及购买攻略

随着互联网技术的不断发展,越来越多的人开始关注云计算领域。作为国内领先的云计算服务商,腾讯云推出了“云校园”扶持计划,完成学生认证即可购买学生专享云服务器。 一、活动对象 仅限腾讯云官网通过个人认证的35岁以下学生用户参与&#x…

卡巴斯基8(2009)杀毒软件

下载地址:https://user.qzone.qq.com/512526231/main https://user.qzone.qq.com/3503787372/main

09. 主频和时钟配置

09. 主频和时钟配置 硬件原理图分析7路PLL时钟源时钟树简介内核时钟系统主频设置CCM_CACRRCCSRCCM_ANALOG_PLL_ARMn代码实例 PFD时钟设置PLL2的4路设置PLL3的4路设置代码实例 AHB、IPG和PERCLK根时钟设置AHB_CLK_ROOT 和 IPG_CLK_ROOTPERCLK_CLK_ROOTCCM_CBCDRCCM_CBCMRCCM_CSC…

5G与医疗:开启医疗技术的新篇章

5G与医疗:开启医疗技术的新篇章 随着5G技术的快速发展和普及,它已经在医疗领域产生了深远的影响。5G技术为医疗行业提供了更高效、更准确、更及时的通信方式,从而改变了医疗服务的模式和患者的体验。本文将探讨5G技术在医疗领域的应用场景、优…

Creaform形创HandySCAN MAX l Elite三维扫描仪便携式3D测量解决方案

CASAIM中科院广州电子智能制造事业部连续多年荣获形创Creaform战略级代理商证书。战略级代理商是形创Creaform最高级别的合作伙伴。 2023年CASAIM中科院广州电子智能制造事业部的形创Creaform战略级代理商证书: Creaform 形创是便携式三维测量解决方案和工程服务领…

C使用指针注意事项(学习笔记)

一、数组使用指针 1、数组名是数组元素首地址。 2、只有在函数原型或函数定义头中,才可以用int arr[]代替int * arr int sum(int * arr,int n); int sum(int arr[],int n);//等效3、一个整形数组表名处理元素的个数有2种方式 /*方式1*/int sum(int * arr,int n); …