CTFShow中BJDCTF2020的RE题

news2024/11/15 10:47:12

encode

写脚本时候发现了应该就是一个 base64 和 RC4 结合
在这里插入图片描述
base64
在这里插入图片描述
rc4的初始化S盒
在这里插入图片描述
rc4的异或加密
在这里插入图片描述
好久没有做题,有点忘记了,直接动调
可以把初始 S盒调出来,后面解总是出乱码,也是看了好久的wp才知道v6后面要赋值的字符串是十六进制bytes组成的
而IDA扫出来的这个字符串有点问题,它是加密后的hex,但是像01这种的它直接变成了1,所以bytes.fromhex的时候会出错,位数都对不上
在这里插入图片描述
这个之后也要问问
然后贴一个大佬的脚本吧,感觉脚本都学了很多

key0 = b'Flag{This_a_Flag}'   #密钥
c = bytes.fromhex('E8D8BD91871A010E560F53F4889682F961420AF2AB08FED7ACFD5E00')   #加密后的字符串
v9 = [i for i in range(256)]
v8 = (key0 * 50)[:256]
j = 0
for i in range(256):
    j = (v9[i] + j + v8[i]) % 256
    v9[i], v9[j] = v9[j], v9[i]
tab = [0] * 28
i, j = 0, 0
for t in range(28):
    i = (i + 1) % 256
    j = (v9[i] + j) % 256
    v9[i], v9[j] = v9[j], v9[i]
    tab[t] = v9[(v9[i] + v9[j]) % 256]
 
c = [tab[i] ^ v for i, v in enumerate(c)]
print(c)
v5 = "Flag{This_a_Flag}"
str_values = [35, 21, 37, 83, 8, 26, 89, 56, 18, 106, 57, 49, 39, 91, 11, 19, 19, 8, 92, 51, 11, 53, 97, 1, 81, 31, 16, 92]
result = []

for i in range(len(str_values)):
    result.append(chr(str_values[i] ^ ord(v5[i % len(v5)])))

print(''.join(result))

再 base 解密就可以了

问题:这个 v6 是如何看出是十六进制字节组成的,又如何还原成正常 1–>01,不去0的形式

想自己来提取数据,还是有一点问题

data=[0x38443845,0x31394442,0x41313738,0x36354531,0x46333546,0x39383834]
array=[]
for i in range(0,len(data),1):
    array.append((data[i]&0xff))
    array.append((data[i]>>8)&0xff)
    array.append((data[i]>>16)&0xff)
    array.append((data[i] >> 24) & 0xff)
print(len(array))
for i in range(24):
    print(chr(array[i]),end='')
#E8D8BD91871A1E56F53F4889

“D:\ctf附件2\BJD_hamburger_competition\BJD_hamburger_competition\BJD hamburger competition_Data\Managed\Assembly-CSharp.dll”
丢 dnspy
在这里插入图片描述
找到主要位置
应该是先 Sha1 再 Md5 加密了,解密反过来
之前做过还有点印象,还是要细心一点
在这里插入图片描述

JustRe

在这里插入图片描述
在这里插入图片描述
额,就这

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1908814.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于Mars3d的入门

关于Mars3d的入门 一. 创建地球,加载瓦片图层二 矢量图层2.1 常用矢量图层2.1.1 GraphicLayer2.1.2 GeoJsonLayer 2.2 矢量图层的点击事件 三 矢量数据四 事件机制 一. 创建地球,加载瓦片图层 // 1. 创建地球let map new mars3d.Map("mars3dContai…

FOC算法

如下图所示的,是FOC算法的整体流程图,下面图中最重要的部分就是SVPWM和3相全桥电路,和送给SVPWM进行运算,运算之后的结果为三个相差120的马鞍波,然后将这三相马鞍波作为控制全桥MOS开关的三个PWM波的占空比&#xff0c…

Vortex GPGPU的硬件设计和代码结构分析

文章目录 前言一、GPGPU是什么?1.1 GPU和GPGPU之间的差异1.2 GPU和CPU之间的集成方式1.3 GPU包含什么(列举和VMIPS向量体系结构的差异) 二、Vortex GPGPU是什么?2.1 Vortex GPGPU的技术边界和验证环境2.2 Vortex GPGPU的指令集设计…

Kubernetes基于helm部署jenkins

Kubernetes基于helm安装jenkins jenkins支持war包、docker镜像、系统安装包、helm安装等。在Kubernetes上使用Helm安装Jenkins可以简化安装和管理Jenkins的过程。同时借助Kubernetes,jenkins可以实现工作节点的动态调用伸缩,更好的提高资源利用率。通过…

C++ | Leetcode C++题解之第223题矩形面积

题目: 题解: class Solution { public:int computeArea(int ax1, int ay1, int ax2, int ay2, int bx1, int by1, int bx2, int by2) {int area1 (ax2 - ax1) * (ay2 - ay1), area2 (bx2 - bx1) * (by2 - by1);int overlapWidth min(ax2, bx2) - max…

使用void 0替代undefined

在很多大厂的规范里面,有这么一条规定:不让直接使用undefined关键字,而应该使用void 0来替代undefined。 一、void 0是什么意思? void是一个关键字,他后面跟的是一个表达式,不管这个表达式算的是啥&#…

you should not run configure as root, 升级tar出错

为了能用 tar 支持 zstd 的压/解缩包命令,需要升级 tar 到 1.3 以上,下面是下载和编译、安装命令: wget https://mirrors.aliyun.com/gnu/tar/tar-1.32.tar.bz2 tar -jxvf tar-1.32.tar.bz2 cd tar-1.32 ./configure make make install但在执…

Docker定时清理

一、循环调度执行 1、检查cron状态 systemctl status crond 2、创建要执行的shell脚本 vim /home/cleanup_docker.sh #! /bin/bash # 清理临时文件 echo $(date "%H:%M:%S") "执行docker清理命令..." docker system prune -af-a 清理包括未使用的镜像 …

PyJWT,一个基于JSON的轻量级安全通信方式的python库

目录 什么是JWT? JWT的构成 PyJWT库简介 安装PyJWT 生成JWT 验证JWT 使用PyJWT的高级功能 自定义Claims 错误处理 结语 什么是JWT? 在介绍PyJWT这个Python库之前,我们首先需要了解什么是JWT。JWT,全称JSON Web Token&am…

LabVIEW开发商业软件的多角度分析与注意事项

在使用LabVIEW开发商业软件时,有许多方面需要考虑和注意,包括项目管理、架构设计、性能优化、用户体验、安全性、维护与支持等。以下是从多个角度详细分析在LabVIEW中开发商业软件需要注意的事项。 项目管理 需求分析:确保深入了解客户需求&a…

如何在vue3中使用scss

一 要使用scss首先需要下载相关的包 可以在终端使用下面的命令下载相关包 npm install -D sass 二 在src文件下新建一个文件夹叫做styles 在文件夹下创建三个文件 index.scss主要用来引用其他文件 reset.scss用来清除默认的样式 variable.scss用来配置全局属性 三 需要在v…

生物素结合金纳米粒子(Bt@Au-NPs ) biotin-conjugated Au-NPs

一、定义与特点 定义:生物素结合金纳米粒子,简称BtAu-NPs或biotin-conjugated Au-NPs,是指通过特定的化学反应或物理方法将生物素修饰到金纳米粒子表面,形成稳定的纳米复合材料。 特点: 高稳定性:生物素的修…

上位机图像处理和嵌入式模块部署(mcu项目2:串口日志记录器)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 淘宝上面有一个商品蛮好玩的,那就是日志记录器。说是记录器,其实就是一个模块,这个模块的输入是一个ttl串口&am…

2024年信息素养大赛图形化编程小低组复赛真题-附答案 6547网

2024年全国青少年信息素养大赛图形化编程小低组复赛真题 题目总数:6 总分数:100 第1部分 第 1 题 问答题 【编程实现】点击小绿旗,实现将鱼的所有造型印到舞台区 【具体要求】 1. 将鱼显示出来 全部擦除所有内容 2. 将鱼的造型设…

vue学习day03-指令修饰符、v-bind对于样式控制的增强、v-model应用于其他表单元素

7、指令修饰符 (1)概念: 通过“.”指明一些指令后缀,不同后缀封装了不同的处理操作->简化代码 (2)按键修饰符 keyup.enter->键盘回车监听 (3)v-model修饰符 v-model.tri…

报修小程序论文(设计)开题报告

一、课题的背景和意义 近些年来,随着移动互联网巅峰时期的来临,互联网产业逐渐趋于“小、轻、微”的方向发展,符合轻应用时代特点的各类技术受到了不同领域的广泛关注。在诸多产品中,被誉为“运行着程序的网站”之名的微信小程序…

Linux学习笔记(二)账户和组

一、基本概念 用 户:用户id,被称为UID 基本组:账户id,被称为GID。用户只能加一个基本组。 0代表超级管理员,root账号。 附加组:用户能加多个基本组。 二、添加账户和组 创建用户名tom,失效…

千古雄文《渔樵问对》原文、译文、解析

邵雍《渔樵问对》:开悟奇文,揭示世界的终极意义 【邵雍《渔樵问对》:开悟奇文,揭示世界的终极意义】 邵雍(1011年1月21日-1077年7月27日,宋真宗大中祥符四年十二月二十五日戌时生至神宗熙宁十…

ctfshow web入门 nodejs web334--web337

web334 有个文件下载之后改后缀为zip加压就可以得到两个文件 一个文件类似于index.php 还有一个就是登录密码登录成功就有flag username:ctfshow password:123456因为 return name!CTFSHOW && item.username name.toUpperCase() && item.password passwor…

Python 处理Excel 文件, openpyxl 库的使用:

下载&#xff1a; pip install openpyxl 基本使用&#xff1a; 新建一个Excel 工作簿&#xff1a; 使用openpyxl 需要先导入一个Workbook 类&#xff0c; 使用它可以创建一个Workbook<工作簿>对象&#xff0c; 也就是创建一个Excel表文件&#xff0c; web.active 可用来…