首页 > 其他分享 >[SWPUCTF 2021 新生赛]easyapp

[SWPUCTF 2021 新生赛]easyapp

时间:2023-05-09 22:44:39浏览次数:42  
标签:SWPUCTF easyapp Des 异或 字样 flag 2021 key 128

查壳:

发现里边有个压缩包,弄出来看看:

再查壳看看:

啥也不是,把它扔进IDA:

没有伪代码,一个字‘找’,关键点(是否IDA能成功反编译,还是说用了java的反编译才行,是否有flag或者CTF之类的字样):

发现特殊字样,跟进:

大写String?大胆点进jadx:

成功,告诉我们什么?要大胆点,不然会浪费很多的时间:找我们的NSSCTF吧:

发现一个异或,先记下,继续

找到特殊字样的根源地,而且下面还有yes字样,证明这里是最终的判断:

分析程序能知道是将flag与key异或得到这特殊字样,那么我们反异或不就得到flag?

上脚本:

会给你报个越界的错误,那么怎么改呢?由于ASCII有效位最大位127,那么我们只用%128就好了

Des = '棿棢棢棲棥棷棊棐棁棚棨棨棵棢棌'
key = 123456789
flag = ''
for i in Des:
    flag += chr((ord(i) ^ key) % 128)
print(flag)

得到‘jwwgpb_ETO}}`wY’???说明啥,key不对,我们再找找,看看有没有人调用改变key的值:

在这发现有改变了key的值,最终的脚本如下:

Des = '棿棢棢棲棥棷棊棐棁棚棨棨棵棢棌'
key = 987654321
flag = ''
for i in Des:
    flag += chr((ord(i) ^ key) % 128)
print(flag)

得到NSSCTF{apkYYDS}

标签:SWPUCTF,easyapp,Des,异或,字样,flag,2021,key,128
From: https://www.cnblogs.com/TFOREVERY/p/17386578.html

相关文章

  • [SWPUCTF 2021 新生赛]fakebase
    查壳:双击吧:简单的逻辑,不要怕那个循环,也不要去纠结那个循环。首先看我们要找的是啥:b1嘛,也就是将flag每个字符转化成十进制后,再转成二进制,一个字符的二进制接后一个字符的二进制链接而成的字符串,再将这串字符串转为十进制。也就是b1由除法原则我们知道,要想还原b1,首先得倒着来,......
  • 2021 Summer Petrozavodsk Camp, Day 3 IQ test (XXII Open Cup, Grand Prix of IMO)
    AND先看最小值是不是所有的子集,如果不是就无解,否则把剩下的中间塞一个最小值就好了。submissionMath移项,平方差变成\(a_j=(k-a_i)(k+a_i)\),爆枚\(k-a_i\)和\(k+a_i\)就是\(O(A\lnA)\)的。submissionFancyFormulas首先我们发现操作不改变\((a+b)\bmodp\),因此如果......
  • [SWPUCTF 2021 新生赛]非常简单的逻辑题
    查壳:进入:不是很难的逻辑,浅浅来个爆破过了:(这里提醒一下,如果实在逆推不出来,可以考虑爆破,爆破应该是RE里人手一个的必备)result1='v0b9n1nkajz@j0c4jjo3oi1h1i937b395i5y5e0e$i'flag1=''num=0foriinrange(0,len(result1),2):forainrange(32,127):......
  • [SWPUCTF 2021 新生赛]re2
    查个壳:64位,运行:进IDA看看:简单加密函数,不多赘述上脚本就好:intmain(){stringDes="ylqq]aycqyp{";stringflag="";for(inti=0;i<Des.size();i++){for(intj=32;j<127;j++){if((Des[i]<=96||......
  • [SWPUCTF 2021 新生赛]简简单单的解密
    拿到一个.py的文件,查个壳:进入看看是怎么个解密:挺长,感觉还有点像RC4的加密方式(这个不讨论),往下看逻辑:首根据输出,我们能知道,加密后的文档应该是enc,enc又是由crypt而来,crypt又是由cipher而来,而cipher又是由res而来:看看res怎么来的:res可以知道是由flag跟k异或而来的,接着往下看......
  • [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......