首页 > 其他分享 >[SWPUCTF 2021 新生赛]简简单单的解密

[SWPUCTF 2021 新生赛]简简单单的解密

时间:2023-05-09 12:33:06浏览次数:48  
标签:box SWPUCTF C3% res 简简单单 urllib 2021 C2% 256

拿到一个.py的文件,查个壳:

进入看看是怎么个解密:

挺长,感觉还有点像RC4的加密方式(这个不讨论),往下看逻辑:

首根据输出,我们能知道,加密后的文档应该是enc,enc又是由crypt而来,crypt又是由cipher而来,而cipher又是由res而来:

看看res怎么来的:

res可以知道是由flag跟k异或而来的,

接着往下看,cipher = "".join(res) 简单来说就是讲res 赋给了 cipher,

?经过base64编码后 又解码? == 可有可无,即整个程序可以这样看:

经过urllib.parse.quote加密,(urllib.parse.quote这玩意是个啥?不懂就查:)

urllib.parse.quote:


查清楚了,那么可以开始写脚本了:

key = "HereIsFlagggg"
flag = "xxxxxxxxxxxxxxxxxxx"

s_box = list(range(256))
j = 0
for i in range(256):
    j = (j + s_box[i] + ord(key[i % len(key)])) % 256
    s_box[i], s_box[j] = s_box[j], s_box[i]
res = []
i = j = 0
enc1 = '%C2%A6n%C2%87Y%1Ag%3F%C2%A01.%C2%9C%C3%B7%C3%8A%02%C3%80%C2%92W%C3%8C%C3%BA'
Des = urllib.parse.unquote(enc1)
flag1 = ''
for s in Des:
    i = (i + 1) % 256
    j = (j + s_box[i]) % 256
    s_box[i], s_box[j] = s_box[j], s_box[i]
    t = (s_box[i] + s_box[j]) % 256
    k = s_box[t]
    flag1 += chr(ord(s) ^ k)
print(flag1)

拿到NSSCTF

标签:box,SWPUCTF,C3%,res,简简单单,urllib,2021,C2%,256
From: https://www.cnblogs.com/TFOREVERY/p/17384538.html

相关文章

  • [SWPUCTF 2021 新生赛]re1
    得到.exe,先查壳:么得壳,64位:运行一下看看:是个字符串的比较:进IDA:简单的一个加密(不多解释了)上个脚本就行:Des='{34sy_r3v3rs3}'flag=''foriinDes:iford(i)==51:flag+=chr(101)eliford(i)==52:flag+=chr(97)else:fla......
  • [SWPUCTF 2021 新生赛]简简单单的逻辑
    得到一个.py文件,一般是没壳的,不过还是要养成习惯,查个壳:意料之中,啥也没有,打开文件:给了我们一个加密逻辑,然后最后一行给了一个结果:那么就是根据上述的逻辑,反解密出flag就好了分析一下上述逻辑:首先对list进行变化得到key的值(怎么变化不用理,因为用不到,为啥因为是异或昂,异或的特......
  • 2021/5/8每日随笔
        今天,用下载了matlab软件,并用matlab编写了0.618直接法编写程序,完成了实验,下午上了不一样的软件工程,玩了两节课,我第一次理解了软件工程的课,这门课好像不是要教编程,而是要教会我们怎么编程注意什么,以后工作注意什么,是在我们进入社会前的新手指导,晚上一如往常的背单词,很迷......
  • 当前主机存在Sudo CVE-2021-3156漏洞:Sudo1.8.23升级1.9.5p2
    Sudo权限绕过漏洞(CVE-2019-14287)Sudo缓冲区溢出漏洞(CVE-2021-3156)根据安全漏洞CVE-2021-3156,受影响的Sudo版本:Sudo版本1.7.7到1.7.10p9、1.8.2到1.8.31p2和1.9.0到1.9.5p1受到影响。sudo官网:https://www.sudo.ws/sudo下载地址:https://www.sudo.ws/getting/do......
  • 2021-2022年度国际大学生程序设计竞赛第10届陕西省程序设计竞赛(正式赛)H-Cute Rabbit
    官方题解:https://blog.csdn.net/qq_62464995/article/details/127493921题目大意给出数组a[i],将a分成两个数组x和y,使得\(\forallx[i]\%y[j]\)都相等(\(|x|,|y|>0\))构造一组\(|y|\)最大的方案n<=1e5,1<=ai<=1e6题解神必结论题先假设a不是全部相等结论1:最小值一定只能全在x......
  • WPS2021 无法加载此加载项程序 解决办法
    我们多次安装WPS后容易导致WPS的默认加载项位置错误,打开word时提示如下错误1.此时可以通过如下步骤解决:开发工具——加载项——禁用——确定即可以正常使用 2.如果需要加载mathtype加载项,则通过加入正确的路径即可解决:添加——mathtype正确的路径——确定3.重新打开word......
  • 2021-2022年度国际大学生程序设计竞赛第10届陕西省程序设计竞赛(正式赛)A-Tree
    官方题解:https://blog.csdn.net/qq_62464995/article/details/127493921题目大意给出一棵边权为1的树,构造排列p,使得①p[1]=1②dis(p[i],p[i+1])<=k题解神必防ak题当k=1时,显然只能是从1开始的一条链当k>=3时,一定有解,考虑构造:把树上的点按层黑白黑白染色,dfs遍历整棵树,在第......
  • Java反射--2021面试题系列教程(附答案解析)--大白话解读--JavaPub版本
    >Java反射--2021面试题系列教程(附答案解析)--大白话解读--JavaPub版本前言序言再高大上的框架,也需要扎实的基础才能玩转,高频面试问题更是基础中的高频实战要点。适合阅读人群Java学习者和爱好者,有一定工作经验的技术人,准面试官等。阅读建议本教程是系列教程,包含Java基础,JVM,容器,......
  • 爬虫 202107【JavaPub版】
    写于2021071117:10北京朝阳区@[toc]方法:首先下载mitproxy,pip安装方法:>pipinstallmitmproxy基本使用方法:给本机设置代理ip127.0.0.1端口8001(为了让所有流量走mitmproxy)具体方法请百度。启动mitmproxy。windows:>mitmdump-p8001Linux:>mitmproxy-p80012.修改chromedriver......
  • 两极三相光伏逆变并网仿matlab2021a
    两极三相光伏逆变并网仿matlab2021a采用mppt算法,扰动观察法,采用spwm调制,控制环采用双环PI调节,逆变器采用三相桥式逆变器,坐标变换含PLL锁相环,逆变器输出端加设LCL滤波器。无需发货,联系发邮件。ID:7720681036198445......