CTF逆向-[FlareOn1]Shellolololol-栈上执行,多层smc的动调得到最终结果

CTF逆向-[FlareOn1]Shellolololol-栈上执行,多层smc的动调得到最终结果

来源:https://buuoj.cn/

内容

附件:链接:https://pan.baidu.com/s/1juLLGgd1MSKeADO1uvAlXA?pwd=t7id 提取码:t7id

答案:such.5h311010101@flare-on.com

总体思路

进去以后发现分析失败了,原来是调用了call eax

全程逐步跟进,需要跳出循环的地方在循环外面按F4跳过

找到flag

详细步骤

  • 得到待执行的汇编指令

    • image-20220502151822284
  • 发现内部是一个smc,每个数据异或0x66

    • image-20220502152021933
  • 到下面断点,按F4执行

    • image-20220502152057585
  • 发现处理后的字符串and so it begins,以及执行指令

    • image-20220502152142055
  • 发现内部仍然是一个smc,每个数据异或dl(来自eax自增,是上一步骤的结果字符串and so it begins

    • image-20220502152245517
  • 继续让其执行,得到一个字符串get ready to get nop',27h,'ed so damn hard in the paint

    • image-20220502152337416
  • 发现内部仍然是一个smc,每个数据异或0x476C4F62

    • image-20220502152458803
  • 得到几个push,最后的结果是omg is it almost over?!?nopasaurus

    • image-20220502152644751
    • image-20220502152730283
  • 继续运行,发现仍然是一个smc,每个数据异或dl(来自eax自增,是上一步骤的结果字符串omg is it almost over?!?

    • image-20220502153348973
  • 同样的方法在出口出按f4让其运行完成,得到字符串such.5h311010101@flare-on.com

    • image-20220502153143258
  • 继续运行,发现几个push得到一个字符串 'waaaaaand i',27h,'m spent'

    • image-20220502153307122
  • 继续运行,发现仍然是一个smc,每个数据异或dl(来自eax自增,是上一步骤的结果字符串 'waaaaaand i',27h,'m spent'

    • image-20220502153348973
  • 继续运行,发现此处是比较看何时出现字符0x33

    • image-20220502153530917
    • image-20220502153524200
  • 继续运行,发现此处是找到字符串是FataExit
    -image-20220502153715746

  • 继续运行,发现将 BrokenByte字符串入栈以后调用了edi,此时edi的值是kernel32_FatalAppExitA是由上一步寻找而来的。从而程序弹窗错误框,整个程序结束。

    • image-20220502153857502
    • image-20220502153959008
  • 至此,全程没有任何需要用户输入的地方,但是根据description.txt的提示,可以对比看到中间步骤得到了一个such.5h311010101@flare-on.com和要求的flag格式一致,尝试提交,发现答案正确。

  • flag答案 such.5h311010101@flare-on.com

其他文档

更多CTF逆向题通用性做法和常用工具下载参考该博文内容:CTF逆向Reverse题的玩法

相关逆向CTF题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值