LitCTF2024——ezrc4

news/2025/4/2 0:44:08/文章来源:https://www.cnblogs.com/cia1lo/p/18229900

0x01 关于rc4

rc4简介

rc4的维基

具体实现

step1 rc4_init()

void rc4_init(unsigned char* s_box,unsigned char* key)
{int i=0,j=0;char k[256];int len=strlen(key);for(i=0;i<256;i++){//以256填充s盒s[i]=i;//使用key循环填充kk[i]=key[i%len];}//打乱s盒for(i=0;i<len;i++){j=(j+s_box[i]+k[i]);swap(s_box[i],s_box[j]);}
}

step3 rc4_crypt()

void rc4_crypt(unsigned char* s_box,char* data)
{int i=0,j=0;int result=0;int len=strlen(data);for(int k=0;k<len;k++){i=(i+1)%256;j=(j+s_box[i])%256;swap(s_box[i],s_box[j]);result=(s_box[i]+s_box[j])%256;data[k]^=s_box[i];}
}

0x02 rc4解密

rc4解密关键在于key的选取,只要有正确的key和密文,编写脚本再跑一遍密文即可

0x03 关于题目

关于密文

image
IDA的问题,没有识别出v8和v9,buf1数组共四个数据

关于key

image
追踪key
image

检查交叉,发现是假key
image

xor解密

key="fenkey?"
key=list(key)
key1=[10, 12, 26, 8, 17, 31, 30]
for i in range(len(key)):key[i]=chr(ord(key[i])^key1[i])
for i in range(0,len(key)):print(key[i],end="")
//litctf!

0x03 EXP

#include "string"
#include <cstring>
using namespace std;
long long buf[4];
unsigned char v10[256];
unsigned char v11[256];void rc4_init()
{char key[]="litctf!";unsigned int a3= strlen(key);for (int i = 0; i < 256; ++i) {v10[i]=i;v11[i]=key[i%a3];}int j=0;for (int i = 0; i < 256; ++i){j=(j+v10[i]+v11[i])%256;swap(v10[i],v10[j]);}
}void rc4_crypt(char* flag) {int i = 0, j = 0;int result;unsigned long len= strlen(flag);for (int k = 0; k < len; ++k) {i = (i + 1) % 256;j = (j+v10[i])%256;swap(v10[i], v10[j]);result = (v10[i]+v10[j])%256;flag[k]^=v10[result];}
}int main() {buf[0]=0x606EA290DC7CB2D5;buf[1]=0x3190B05971E41306;buf[2]=0xD71DC7B2;buf[3]=0x7F;rc4_init();rc4_crypt((char*) buf);printf("%s",buf);return 0;
}
//LitCTF{rc4_love_nice 少个“}”,O.o?

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

不存在的图片

流程 查看图片特征 --> 查看图片表面信息 --> 利用010查看二进制信息 --> 利用format检测 --> 利用Stegdetect检测 --> 解密图片16进制文件倒置脚本 整体字符反向输出 with open("n.png","rb") as f:t = f.read()for i in t[::-1]:a = hex(…

static和final关键字

一. static关键字1.被static修饰的变量/方法属于类变量/方法,可以通过类名.变量/方法直接调用,不用new一个类出来原因:静态方法是与类相关联的,而不是与类的实例相关联的。静态方法被加载到内存中的类区域,并且在类加载的过程中就会被初始化,不需要等到创建类的实例时才初…

hive搭建+问题解决

hive-3.1.2分布式搭建文档谷歌浏览器下载网址:Google Chrome – Download the fast, secure browser from Google 华为云镜像站:https://mirrors.huaweicloud.com/home1、上传解压配置环境变量 # 1、解压 tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /usr/local/soft/# 2、重…

e语言 获取重定向的location地址

demo本文来自博客园,作者:__username,转载请注明原文链接:https://www.cnblogs.com/code3/p/18229890

osg使用整理(11):延迟渲染

osg使用整理(11):延迟渲染 一、基础概念前向渲染流程:顶点着色器->图元装配成点线三角形->几何着色器->裁剪剔除->光栅化(片元着色器)->透明度测试、深度测试。延迟渲染流程:顶点着色器->图元装配成点线三角形->几何着色器->裁剪剔除->光栅化…

龙哥量化:期货软件中红红绿绿的多开,空开,空平,多平,多换,空换,双开,双平,换手是什么意思?(转载的)

期货投资者在看盘时,会看到红红绿绿的"多开,空开,空平,多平,多换,空换,双开,双平,换手",以快期专业版为例,如下图1所示:图1.红绿开平数据(快期专业版) 这些数据里面的红色和绿色是什么意思呢?红色表示主动买,绿色表示主动卖吗?多开,空开,多平,双…

6.3深圳安服面试

公司概况、企业文化、自己应聘职位的特点、工作内容 业务产品、研究领域,国家专精特新小巨人 安全咨询、培训、运营三位一体的网络安全综合服务,总部广州;业务: 等保,密评,风险评估,监测、巡检、渗透、应急、培训; 提供解决方案; 安全评估:包括主机漏扫、基线检查、渗…

CTFshow-Crypto(17-25)

17EZ_avbv(easy) 18贝斯多少呢 base62穷举分段 给了段编码,hint为base62 8nCDq36gzGn8hf4M2HJUsn4aYcYRBSJwj4aE0hbgpzHb4aHcH1zzC9C3IL随波逐流和Cyberchef都没梭哈出来 看了师傅们的wp大概意思是: 分组长度固定,但是不一定是被整除为整数,只要找到从头开始截取一个长度解…

平安-瀚景家族

三个月要求概要内容学习情况备注 三讲入司前:学习陈相妤(陈红梅)《讲“三讲”,赢得高端客户认同》 入司起第3个月:对所有人都适用的三讲,1分钟以上、3分钟以内,录视频发给推荐人 …

State设计模式上篇(理论篇)

State设计模式理论篇参考了王备战老师的ppt,相当于是一次期末复习总结吧 ⭐目标:目前的需求是我所制作的OJ项目在面临代码提交结果以及运行结果时对于其中的各个状态(如:通过!编译失败等等诸多状态进行代码开发时,很容易代码一不小心就写烂了,写到连自己都无法看懂的地步,所以尝…

vscode如何添加本地python解释器、解析器 Interpreter?(Python: Select Interpreter),并在vscode运行python代码

先安装python扩展 然后点ctrl+shift+p搜索python:select,选择解析器(或者也可以直接点左下方的) 然后360报毒了,允许通过,然后选择你想要的解释器 然后就好了 20230816 文章目录在VSCode中添加本地Python解释器 Python解释器简介为什么要在VSCode中设置Python解释器如…

红日靶场2

环境搭建 配置ip,web机有两张网卡,我对nat设置为192.168.11.0网段,仅主机为192.168.52.0网段,这三台机子都要改一下ip,官方给出要恢复快照3,恢复的时候有问题,不用恢复没有影响 web机的网络情况如下就可以了在这个目录下启动weblogic服务,以管理员身份运行startWebLogic…