欢迎光临
我们一直在努力

NewStar CTF 2024 [SMc_math] wp

查壳无壳,C写的ELF

拖进IDA,获得了main函数的内容

在主函数内容中,要求输入明文,明文为28位,然后进入encrypt函数中进行加密处理。这里看到,mprotect函数修改了encrypt函数的内存权限,然后对encrypt函数的(3D5+1)字节进行了异或0x3E处理,也就是处理了3D6字节(982个)

点进encrypt函数看,果然被修改了,只能显示汇编以及被识别为db和dq的内容,并且出现了无限循环,loc_11FB下面就是短跳到自己这里来,loc_11FF也是

这里写脚本在python中恢复encrypt函数的逻辑

Shift+F2打开IDA的脚本界面,然后选成python,运行脚本后,把encrypt函数内所有部分U解除函数化,然后在encrypt头部(第一个内存字节)按C恢复代码话,最后在encrypt函数按P重构函数,重新进入函数就发现已经可以恢复成伪代码

这里的逻辑是,前面输入的28为明文传入函数中,然后被强行拆成了7部分,分别为a1数组的7部分,每部分16字节,最后进行运算后等于return的结果即可

这里可以明显的用z3去解决,写z3脚本

跑出来七部分为[1734437990, 1596998779, 1601515609, 1999662667, 1129149279, 1148073055, 2100517471],然后就只需要把这其部分都恢复成4字节就好了

获得flag{D0_Y0u_Kn0w_sMC_4nD_Z3}

验证一下

赞(0)
未经允许不得转载:171主机测评 » NewStar CTF 2024 [SMc_math] wp
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址