XYCTF2024

你真的是大学生吗?

用ida打开

无法反汇编出伪代码,只能从汇编代码下手。利用chatgpt得到汇编代码大概意思

其实就是将输入的字符串与后一位异或,最后再比较。写出脚本并运行

v = [0x76, 0x0E, 0x77, 0x14, 0x60, 0x06, 0x7D, 0x04, 0x6B, 0x1E,
     0x41, 0x2A, 0x44, 0x2B, 0x5C, 0x03, 0x3B, 0x0B, 0x33, 0x5]
s = ''
for i in range(len(v)-1):
    v[i] = v[i+1] ^ v[i]
    s += chr(v[i])
s += chr(v[len(v)-1] ^ v[0])
print(s)

xyctf{you_know_8086}

聪明的信使

32位无壳,拖入ida分析

输入的flag经过encrypt加密后与字符串相等,跟进encrypt函数

如果是大写之字母就进行v3 = (v3 + 9 - 65) % 26 + 65;如果是小写字母就进行v3 = (v3 + a9- 97) % 26 + 97;反过来对已知字符串进行第一个运算时可按结果分为两种,进行第二种运算时亦可分为两种,共可分为四种情况解密,脚本如下:

喵喵的flag碎了一地

64位无壳,用ida64打开

根据提示我们需要先找可疑字符串,按shift+F12

第一行是flag的第一段,第二行又是新提示,找到该句所在的函数

依据main函数第二条可知该函数名是第二段,依据这句话的意思要我们交叉引用,对选定该函数交叉引用

跟进第一个函数

把这段代码直接复制到Devc++里运行出第三段,到这里获得的flag是flag{My_fl@g_h4s_br0ken_4parT_Bu7_Y0u_c@n_这一句话似乎提到了被打散成了4段,而且这段字符没有”}“出现,不像完整的flag,猜测还有第四段,伪代码里面没有就去汇编代码里面找

这是最后一段,所以最后flag是flag{My_fl@g_h4s_br0ken_4parT_Bu7_Y0u_c@n_f1x_1t!}

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值