2024 ImaginaryCTF re 部分wp

unoriginal

附件拖入ida

比较简单

 BF

文本编辑器打开附件

brainfuck,网上有脚本可以将brainfuck转python代码。脚本

简单的加减法

 Rust

附件拖入ida

rust程序,向下翻,有一个encrypt函数

调试发现关键部分

解释一下过程:输入的message中的每一个字符看成是128位的整数,key也是一个128位的大整数,经过移位、异或、取反后才得到的密文。具体的可以自己调试一遍就清楚了,里面那个异或是message的高64位异或key的低64位,低64位异或高64位,比较坑。脚本

 Absolute Flag Checker

附件拖入ida

相当多的等式,正则处理完考虑用z3爆。脚本。用BitVec跑了二十多分钟没出来,换Int然后又把移位换成乘法

 unconditional

附件拖入ida

比较简单,直接爆即可。脚本

 SVM Revenge

附件拖入ida

基本都在图里注释了,看懂指针操作就挺简单的。接下来就是写脚本打印过程

可以发现就一个乘法之后再累加起来。换种输出再用正则快速处理,用z3爆。脚本

 vokram

py文件用文本编辑器打开

这个脚本的作用就是加载check_flag程序。复制进IDE,下断点调试

发现program是三千多个tuple即元组。可以把这些个元组全写入到文件,最后部分是判断,判断是根据能否匹配到那一长串决定的,当text字符串中出现那一串中的第一个字符时,如果整串不能被完全匹配,就会进入到错误输出

这个题写了相当之久

这个题本质上是状态机的转换,核心就在于弄清楚输入字符串的长度,利用那个杯子换空字符串的特殊转换,一直在想那个菠萝怎么消掉。。。脚本 

 

总结

        有种For Fun的快感,就像在做智力题,不像是数学那种需要发散思维利用多种方式求解,更像是推理那种聚焦于一两个点层层推进然后求解。看wp和复现完全没这种感觉,或者说差点意思,一定得是在比赛中去钻,有过非常多次的尝试之后,哪怕最后还是因为某种原因没做出来,成功或者失败都很深刻

        玩服务器,找DK盾,QQ群:727077055

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值