首页 > 其他分享 >BUUCTF-SimpleRev

BUUCTF-SimpleRev

时间:2024-10-31 23:22:41浏览次数:4  
标签:BUUCTF text v1 key str2 SimpleRev ord ascii

BUUCTF-SimpleRev.md

查壳

linux64位,无壳,LE小端序储存

image-20241031220848503

进入 Decry()分析

image-20241031221213216

这种题直接寻找if判断条件

image-20241031223951070

可以看到比较了textstr2

但二者点进去都没赋值

先观察 text

text = join(key3, v9);

将key3和v9变量拼接起来

v9 : image-20241031224248344

key3:image-20241031224325550

由于v9这里是大端序展示,所以我们在拼接的时候得转换成小端序

则 text = 'killshadow'

接着是str2

image-20241031224552352

str2用这个if条件和while循环逐个赋值,当v1为10停止循环

可以看到,v1是我们的输入 v1 = getchar();,总共十个字节长度

先用if判断v1的值,其实就是如果是大写(v1 > 64 && v1 <= 90),就执行str2[v2] = (v1 - 39 - key[v3 % v5] + 97) % 26 + 97;

如果是小写( v1 <= 96 || v1 > 122,用了else来表示在这中间),也执行相同操作

(如果记不住ascii码,可以对判断的数字按R转换为ascii码来观察)

现在就是求key的值了

这里用两个函数对key进行赋值

image-20241031225741760

先用strcpy将key1赋值给key

然后用strcat将src拼接到key后面

key1 = image-20241031225850254

src = image-20241031230017675

同样,要将src换成小端序

所以 key = 'ADSFKNDCLS'

接着,对key进行for循环,对key进行加密

image-20241031230421075

但其实就是将key大写转小写,可以自己去用python将大写字母的ascii码加32转小写

所以key = 'adsfkndcls'

编写脚本

这里的加密逻辑很简单,因此我们可以用爆破脚本

text = 'killshadow'
key = 'adsfkndcls'
flag = ''
v5 = len(key)
for i in range(10):   #输入十次字符,所以循环十次
    for j in range(ord('A'), ord('z')+1):  #将所有字母进行尝试,寻找可以使if判断成功的字符
        str2 = (j -39 - ord(key[i % v5]) +97) % 26 + 97 #将原本的加密直接照搬过来,这里需要ord(key[i % v5])是因为python不能直接将字符串转成ascii码
        if chr(str2) == text[i]:  #将算出来的ascii码chr()转成ascii码与text内容比较
            flag += chr(j)    
            break   #这里的break作用是如果if判断成功了一次就结束这个内层循环,开始第二个外层循环,如果没有break会输出很多满足条件的别的字符
print(flag)

输出结果为KLDQCUDFZO

当然如果想逆向也可以,只是没有爆破那么简单无脑

标签:BUUCTF,text,v1,key,str2,SimpleRev,ord,ascii
From: https://www.cnblogs.com/murasame520/p/18519135

相关文章

  • BUUCTF:蜘蛛侠呀
    下载附件,给了一个流量包,拿到wireshark中进行流量分析看到除了上面的几个包,其它的都是ICMP的包,上面的几个包也没发现什么有用的信息,就随便点开几个ICMP包看了下,发现它们的尾部都有一串相同格式的信息使用tshark进行提取提取出的data.txt中有大量重复信息这里脚本参考大......
  • Misc_BUUCTF_WriteUp | 面具下的flag
    题目分析010Editor打开图片,发现末尾存在一段unknownPadding,有明显的zip文件特征,复制出来保存为zip文件1.zip。解压缩提示需要密码。010Editor重新查看1.zip,发现record(压缩源文件数据区)的reFlags为偶数0000,即未加密,但dirEntry(压缩源文件目录区)的deFlags......
  • BUUCTF pwn学习日记
    我是纯新手,零基础的开始学Pwn喽时间:2024年10月29日BUUCTFPwn学习日记1.test_your_nc下载附件,用IDA打开发现直接nc就可以获得flagcatflag得到flag{07c0b69c-dcbf-4991-8cc6-05660b1a2dd2}2.ripIDA打开发现没有看见有用信息,Shift+F12发现了/bin/sh初步怀疑是栈溢......
  • BUUCTF相册
    BUUCTF相册定位函数根据题目提示:邮箱全局搜索mail然后找到一个sendMailByJavaMail方法在这里定义了一个C2静态类,保存了发送邮件的一些常量跟进c2这里发现mailform未初始化,而在下面用base64解码初始化了mailform而这个使用了loadlibrary函数,加载了core.so文件中的内容......
  • 【BUUCTF】Youngter-drive
    Youngter-driveUPX脱壳分析这是一道多线程题,先来分析这个main函数::hObject=CreateMutexW(0,0,0);:创建一个互斥锁,使两个双线程能够使用共享资源hObject=CreateThread(0,0,StartAddress,0,0,0);Thread=CreateThread(0,0,sub_41119F,0,0,0);:创建两......
  • [BUUCTF]喵喵喵
    [BUUCTF]喵喵喵分析题目是一张图片,打开属性,放入010editor,无果;于是想到LSB隐写解题发现一张PNG,但开头不太对劲将其保存txt文件,发现放入010editor并不可以修改开头在某位大佬博客中学到一个方法,如下:首先,在notepad中打开txt文件Alt按列选择左侧复制,放入Cyberchef两者交......
  • BUUCTF_BUU SQL COURSE 1
    BUUCTF_BUUSQLCOURSE1打开实例发现“热点”及“登录”两个选项根据题目提示,sql注入,尝试在登录界面寻找注入点,无果接着进入热点界面,发现三篇新闻,依次点击发现url变化,burp抓包发现是通过对id值的控制访问不同界面,由此发现注入点1.判断注入类型,输入1,2-1?id=1?id=2-1......
  • BUUCTF_2020网鼎杯[朱雀组]phpweb
    BUUCTF_2020网鼎杯[朱雀组]phpweb启动环境页面出现warning,并且发现页面存在自动刷新,使用burpsuite抓包:发现两个参数func和p并且发现页面中有2024-10-2403:55:59am,判断执行了date函数,根据func和p的形式猜测函数执行,func输入函数,p输入语句获取源代码:func=highlight_file&p=......
  • [BUUCTF]丢失的MD5
    [BUUCTF]丢失的MD5分析打开,得到py文件importhashlibforiinrange(32,127):forjinrange(32,127):forkinrange(32,127):m=hashlib.md5()m.update('TASC'+chr(i)+'O3RJMV'+chr(j)+'WDJKX'+chr(k)+&......
  • [BUUCTF]RSA
    [BUUCTF]RSA分析得到一段文字:在一次RSA密钥对生成中,假设p=473398607161,q=4511491,e=17求解出d作为flga提交解题第一想法是python脚本,网上找到一个importgmpy2p=473398607161q=4511491e=17d=int(gmpy2.invert(e,(p-1)*(q-1)))print(d)得到flag{125631357777......